thảo luận Tailscale - Giải pháp P2P nhanh gọn nhẹ nhất hệ mặt trời.

Mình cũng setup tailscale lên vps rồi active exit node rồi, giờ check kiểu gì để biết pc mình đang chạy qua con vps nhỉ bro
Anh có thể dùng lệnh tracert để check xem đang ra bằng gateway nào.

Thí dụ như hình bên dưới:

  • zing.vn em ra trực tiếp
  • speedtest.net ra bằng Nord Sing
  • google.com em ra bằng SS US

2023-01-30_221203.png
 
Nó là một đó . Wireguard là kết nối đầu cuối, còn tailscale là ngang hàng .
Mình chỉ ko hiểu cái " running exit node" để làm gì ? Tắt hay bật cái " exit node" , mình thấy cũng giống hệt nhau
Exit node là để bạn chỉ định node nào kết nối ra ngoài mạng network do tailscale tạo ra. Ví dụ bạn cài tailscale ở VPS và máy tính ở nhà. VPS bạn bật exit node, máy tính của bạn kết nối tailscale thì khi lướt web trên máy tính, traffic sẽ chạy qua VPS rồi kết nối với Internet.
 
Last edited:
Em chưa hiểu ý của anh ạ? Em đang kết nối mik với 1 cái l2tp server.
Em chưa hiểu ý của anh ạ? Em đang kết nối mik với 1 cái l2tp server.

Trong mạng lan thì e chuyển hướng đi các đường vpn e mong muốn.
Ví dụ e ở ngoài đường dùng mà 4G/wifi e đang dùng bị chặn web medium.com thì e kết nối vpn về con mik ở nhà để xài thì có vào dc web medium.com dc ko?
Như thế này là VNPT chặn theo DNS.
CPdw8Ow.jpg
 
Trong mạng lan thì e chuyển hướng đi các đường vpn e mong muốn.
Ví dụ e ở ngoài đường dùng mà 4G/wifi e đang dùng bị chặn web medium.com thì e kết nối vpn về con mik ở nhà để xài thì có vào dc web medium.com dc ko?
Như thế này là VNPT chặn theo DNS.
CPdw8Ow.jpg
À, em chưa thử setup con Mik làm l2tp server nên không biết thế nào anh ạ. Trước giờ em chỉ dùng nó làm client l2tp thôi.

Nhưng em nghĩ là chắc được, vì khi client kết nối vào server l2tp. Nó nhận được IP do server cấp. Khi đó mình routing như 1 ip trong LAN.
 
Last edited:
Trong mạng lan thì e chuyển hướng đi các đường vpn e mong muốn.
Ví dụ e ở ngoài đường dùng mà 4G/wifi e đang dùng bị chặn web medium.com thì e kết nối vpn về con mik ở nhà để xài thì có vào dc web medium.com dc ko?
Như thế này là VNPT chặn theo DNS.
CPdw8Ow.jpg
Thay vì dùng:
Phone —-l2tp——>Mikrotik—-l2tp—->VPN server (quốc tế)

Thì thử thay thành:
Phone —-WireGuard ——>Mikrotik—-l2tp—->VPN server (quốc tế)

Hoặc (là nhanh và nhàn nhất)
Phone —-WireGuard ——>Mikrotik—-WireGuard —->VPN server (quốc tế)
 
Sao mình connect qua exit node là mạng nó chậm đi hẳn vậy chủ thớt, có phải chỉnh gì thêm ko bác

Sent from Samsung SM-G996B using vozFApp
 
Vừa setup subnet vừa là exit node thì có được ko các bác? Mình đã setup vừa subnet vừa exit node rồi mà trên iphone nó báo ISP là vào mạng của 4G chứ không phải của exit node
 
Last edited:
Sao mình connect qua exit node là mạng nó chậm đi hẳn vậy chủ thớt, có phải chỉnh gì thêm ko bác

Sent from Samsung SM-G996B using vozFApp

Tailscale ưu tiên dùng ipv6 để 2 máy có thể ping trực tiếp với nhau mà ko bị dính nat. Nếu ko có ipv6 thì nó sẽ dùng ipv4, còn các bác mà bị dính cgnat thì xác định là traffic từ máy này sẽ đi qua server derp của tailscale mới đến máy còn lại.

Server derp của tailscale gần nhất là ở hồng kông hoặc sing, nên ping sẽ trên 100ms như ảnh của chủ thớt. Nếu có direct connection (ipv6, hoặc ipv4 ko bị dính cgnat) thì ping sẽ giống như ping máy chủ trong nước thôi, tầm 2-10ms cho mạng dây và 10-30ms cho mạng ko dây.

Bác nên bật ipv6 để cải thiện độ trễ, còn tốc độ mạng thì tuỳ thuộc vào việc mạng và exit node của bác có bị chậm ko nữa. Exit node có mạng với cpu mạnh thì tốt hơn, vì tailscale dùng wireguard nên encryption sẽ phụ thuộc vào cpu, còn mạng mạnh để ko bị nghẽn khi được dùng làm exit node.

1676140927074.png

1676140999944.png

Tailscale hoạt động dựa trên wireguard nên traffic giữa 2 máy chỉ có 2 máy đó biết cách (private key) để decrypt thôi. Server derp của tailscale chỉ forward traffic khi 2 máy ko có direct connection; nó ko có private key để decrypt traffic này nên các bác ko phải lo vấn đề bảo mật nhé, vấn đề ping quan trọng hơn.

Vừa setup subnet vừa là exit node thì có được ko các bác? Mình đã setup vừa subnet vừa exit node rồi mà trên iphone nó báo ISP là vào mạng của 4G chứ không phải của exit node

Được nhé bác, tailscale subnet chỉ hoạt động khi nào bác có exit node chạy subnet đó. Ko cần chọn exit node khi truy cập vào subnet, vì Tailscale sẽ tự route traffic của subnet đó tới exit node tương ứng.

Bác muốn dùng exit node như vpn thì bác setup một máy là exit node và vô trang admin tailscale cho phép máy này làm exit node thì máy còn lại mới xài exit node của máy này được.

Chạy subnet router thông qua ipv6 (4via6 subnets)​

Nếu các bác muốn dùng nhiều subnet trùng nhau cùng một lúc cũng ko sao, tailscale có tính năng 4via6 subnet routers: https://tailscale.com/kb/1201/4via6-subnets/

Đây là tính năng rất mạnh của tailscale subnet, nó cho phép một mạng tailscale có nhiều subnet trùng nhau cùng một lúc, và truy cập chúng thông qua ipv6.

- Đầu tiên các bác cần có sẵn một exit node chạy trên mạng có subnet cần truy cập qua tailscale. Sau đó các bác cần xác định:
1) subnet cần advertise là gì? Ví dụ 192.168.1.0/24
2) id bất kỳ từ 0-255, để xác định exit node này là exit node thứ mấy đã advertise subnet này. Ví dụ subnet này mới xuất hiện lần đầu nên em đặt id là 1. id ko nên để trùng nhé các bác.

- Lúc này thì các bác mở mở terminal lên rồi chạy:
Bash:
$ tailscale debug via 1 192.168.1.0/24
fd7a:115c:a1e0:b1a:0:2:c0a8:100/120
với 1 là id và 192.. là subnet mà các bác chọn hồi nãy. Lệnh này sẽ sinh ra một subnet ipv6 từ id và subnet ipv4 tương ứng. Trong ví dụ này thì nó là fd7a:115c:a1e0:b1a:0:2:c0a8:100/120.

- Lúc này các bác chạy lệnh advertise route với subnet ipv6 vừa nhận. Trên exit node cần chạy subnet router, các bác chạy:
Bash:
$ tailscale up --advertise-exit-node --advertise-routes=fd7a:115c:a1e0:b1a:0:2:c0a8:100/120

- Sau đó các bác vô trang admin tailscale chọn tên của exit node > edit route setting > bật "Use as exit node" > bật chọn subnet ipv6 lúc nãy.

- Vậy là xong, các bác có thể thử trên điện thoại rồi thử ping một máy trên subnet qua domain có dạng Q.R.S.T.via-X, tức là địa.chỉ.ip.via-id. Các bác cũng có thể dùng Q-R-S-T-via-X trong trường hợp các bác ko được dùng subdomain.

Lưu ý là có một số service ko hoạt động được khi dùng 4via6 subnet, điển hình là trang router viettel luôn trả về 400 bad request :(
 
Tailscale ưu tiên dùng ipv6 để 2 máy có thể ping trực tiếp với nhau mà ko bị dính nat. Nếu ko có ipv6 thì nó sẽ dùng ipv4, còn các bác mà bị dính cgnat thì xác định là traffic từ máy này sẽ đi qua server derp của tailscale mới đến máy còn lại.

Server derp của tailscale gần nhất là ở hồng kông hoặc sing, nên ping sẽ trên 100ms như ảnh của chủ thớt. Nếu có direct connection (ipv6, hoặc ipv4 ko bị dính cgnat) thì ping sẽ giống như ping máy chủ trong nước thôi, tầm 2-10ms cho mạng dây và 10-30ms cho mạng ko dây.

Bác nên bật ipv6 để cải thiện độ trễ, còn tốc độ mạng thì tuỳ thuộc vào việc mạng và exit node của bác có bị chậm ko nữa. Exit node có mạng với cpu mạnh thì tốt hơn, vì tailscale dùng wireguard nên encryption sẽ phụ thuộc vào cpu, còn mạng mạnh để ko bị nghẽn khi được dùng làm exit node.



Tailscale hoạt động dựa trên wireguard nên traffic giữa 2 máy chỉ có 2 máy đó biết cách (private key) để decrypt thôi. Server derp của tailscale chỉ forward traffic khi 2 máy ko có direct connection; nó ko có private key để decrypt traffic này nên các bác ko phải lo vấn đề bảo mật nhé, vấn đề ping quan trọng hơn.



Được nhé bác, tailscale subnet chỉ hoạt động khi nào bác có exit node chạy subnet đó. Ko cần chọn exit node khi truy cập vào subnet, vì Tailscale sẽ tự route traffic của subnet đó tới exit node tương ứng.

Bác muốn dùng exit node như vpn thì bác setup một máy là exit node và vô trang admin tailscale cho phép máy này làm exit node thì máy còn lại mới xài exit node của máy này được.

Chạy subnet router thông qua ipv6 (4via6 subnets)​

Nếu các bác muốn dùng nhiều subnet trùng nhau cùng một lúc cũng ko sao, tailscale có tính năng 4via6 subnet routers: https://tailscale.com/kb/1201/4via6-subnets/

Đây là tính năng rất mạnh của tailscale subnet, nó cho phép một mạng tailscale có nhiều subnet trùng nhau cùng một lúc, và truy cập chúng thông qua ipv6.

- Đầu tiên các bác cần có sẵn một exit node chạy trên mạng có subnet cần truy cập qua tailscale. Sau đó các bác cần xác định:
1) subnet cần advertise là gì? Ví dụ 192.168.1.0/24
2) id bất kỳ từ 0-255, để xác định exit node này là exit node thứ mấy đã advertise subnet này. Ví dụ subnet này mới xuất hiện lần đầu nên em đặt id là 1. id ko nên để trùng nhé các bác.

- Lúc này thì các bác mở mở terminal lên rồi chạy:
Bash:
$ tailscale debug via 1 192.168.1.0/24
fd7a:115c:a1e0:b1a:0:2:c0a8:100/120
với 1 là id và 192.. là subnet mà các bác chọn hồi nãy. Lệnh này sẽ sinh ra một subnet ipv6 từ id và subnet ipv4 tương ứng. Trong ví dụ này thì nó là fd7a:115c:a1e0:b1a:0:2:c0a8:100/120.

- Lúc này các bác chạy lệnh advertise route với subnet ipv6 vừa nhận. Trên exit node cần chạy subnet router, các bác chạy:
Bash:
$ tailscale up --advertise-exit-node --advertise-routes=fd7a:115c:a1e0:b1a:0:2:c0a8:100/120

- Sau đó các bác vô trang admin tailscale chọn tên của exit node > edit route setting > bật "Use as exit node" > bật chọn subnet ipv6 lúc nãy.

- Vậy là xong, các bác có thể thử trên điện thoại rồi thử ping một máy trên subnet qua domain có dạng Q.R.S.T.via-X, tức là địa.chỉ.ip.via-id. Các bác cũng có thể dùng Q-R-S-T-via-X trong trường hợp các bác ko được dùng subdomain.

Lưu ý là có một số service ko hoạt động được khi dùng 4via6 subnet, điển hình là trang router viettel luôn trả về 400 bad request :(
Mình đang dùng moonlight để stream game 4k từ con máy bàn sang laptop trong Lan. Đợt này đi công tác nhiều nên muốn stream over internet. Tuy nhiên con router ở nhà dùng chung với hàng xóm nên không mở port đc, dùng tailscale thấy ping rất cao toàn trên 400. Bây giờ setup như thế nào để giảm ping vậy bác ?
 
Mình đang dùng moonlight để stream game 4k từ con máy bàn sang laptop trong Lan. Đợt này đi công tác nhiều nên muốn stream over internet. Tuy nhiên con router ở nhà dùng chung với hàng xóm nên không mở port đc, dùng tailscale thấy ping rất cao toàn trên 400. Bây giờ setup như thế nào để giảm ping vậy bác ?

Bác có thể chạy derp server để làm trung gian giữa 2 máy kết nối qua tailscale. Chi tiết bác có thể xem link github bác này gửi:
Các bạn có thể tự server derp tailscale tại nhà trên SBC nếu không muốn dùng IPv6 theo hướng dẫn bên dưới
Code:
https://github.com/tijjjy/Tailscale-DERP-Docker

Chạy derp server hay headscale đều yêu cầu ip tĩnh và domain nên bác có thể thuê vps ở trong nước rồi chạy docker trong link.

Domain thì bác xài duckdns nó có domain free, bác set dns record là địa chỉ public ip (ipv4 và ipv6) của vps là được. Bác có thể chạy 2 lệnh sau trên vps:
Code:
curl https://ipv4.icanhazip.com
để lấy ipv4 public
Code:
curl https://ipv6.icanhazip.com
để lấy ipv6 public.

Code:
https://github.com/juanfont/headscale

Headscale là phiên bản viết lại trang admin của tailscale nên còn thiếu nhiều tính năng của bản tailscale chính thức. Thường thì dùng trang admin mặc định của tailscale là được rồi, còn bác muốn vọc vạch thì có thể dùng headscale vì nó cũng có derp server tích hợp sẵn.

Tạm thời chưa có web ui chính thức nên em khuyên bác ko nên xài nhé. Khi nào có web ui + đủ feature như bên official thì hẵn dùng.
 
Bác có thể chạy derp server để làm trung gian giữa 2 máy kết nối qua tailscale. Chi tiết bác có thể xem link github bác này gửi:


Chạy derp server hay headscale đều yêu cầu ip tĩnh và domain nên bác có thể thuê vps ở trong nước rồi chạy docker trong link.

Domain thì bác xài duckdns nó có domain free, bác set dns record là địa chỉ public ip (ipv4 và ipv6) của vps là được. Bác có thể chạy 2 lệnh sau trên vps:
Code:
curl https://ipv4.icanhazip.com
để lấy ipv4 public
Code:
curl https://ipv6.icanhazip.com
để lấy ipv6 public.



Headscale là phiên bản viết lại trang admin của tailscale nên còn thiếu nhiều tính năng của bản tailscale chính thức. Thường thì dùng trang admin mặc định của tailscale là được rồi, còn bác muốn vọc vạch thì có thể dùng headscale vì nó cũng có derp server tích hợp sẵn.

Tạm thời chưa có web ui chính thức nên em khuyên bác ko nên xài nhé. Khi nào có web ui + đủ feature như bên official thì hẵn dùng.
Ai dà vậy lại tốn 1 khoản thuê vps trong nước rồi. Bực thật vps hongkong và sing mình đều có. Có lẽ thử honkong trước xem ping có ok không chứ nếu đứt cáp chắc lại phải mua vps vietnam thật
 
Cho hỏi cái này có áp dụng cho hệ thống camera được k ạ. Giống như đầu ghi ở 1 nơi còn cam ở 1 nơi. Chúng thấy nhau qua đường hầm

via theNEXTvoz for iPhone
 
Back
Top