TailGuard xuất hiện như một giải pháp thông minh để kết nối các máy chủ WireGuard hiện có với mạng Tailscale thông qua một container Docker đơn giản. Công cụ này giải quyết một vấn đề phổ biến khiến người dùng VPN bực bội khi họ muốn truy cập nhiều mạng mà không phải liên tục chuyển đổi kết nối, đặc biệt trên các thiết bị di động chỉ hỗ trợ một VPN tại một thời điểm.
Dự án này đến từ nhà phát triển Juho Vähä-Herttua, người đã tạo ra TailGuard để giải quyết các thách thức mạng thực tế. Thay vì thay thế cơ sở hạ tầng WireGuard hiện có, nó hoạt động như một cầu nối giúp các mạng WireGuard có thể truy cập được thông qua mạng mesh của Tailscale.
Vấn đề chuyển đổi VPN trên di động được khắc phục
Một trong những điểm đau lớn nhất mà TailGuard giải quyết là hạn chế VPN trên di động. Cả thiết bị Android và iOS chỉ có thể chạy một kết nối VPN tại một thời điểm, buộc người dùng phải liên tục ngắt kết nối và kết nối lại khi họ cần truy cập các mạng khác nhau. Điều này tạo ra sự gián đoạn và khiến việc duy trì truy cập liền mạch đến cả mạng gia đình và các exit node trở nên khó khăn.
Cuộc thảo luận cộng đồng cho thấy đây là một vấn đề phổ biến. Dịch vụ VPN của Android cụ thể nêu rõ rằng chỉ có thể chạy một kết nối VPN đồng thời, vô hiệu hóa các giao diện hiện có khi tạo giao diện mới. Người dùng Linux không gặp phải hạn chế này, nhưng người dùng di động đã bị mắc kẹt với ràng buộc này.
TailGuard giải quyết vấn đề này bằng cách đưa mọi thứ dưới một ô VPN. Người dùng kết nối với Tailscale trên thiết bị di động của họ, sau đó cung cấp quyền truy cập vào các mạng WireGuard thông qua cầu nối, loại bỏ nhu cầu chuyển đổi giữa các ứng dụng VPN khác nhau.
Quản lý khóa và thiết lập thiết bị được đơn giản hóa
Các thiết lập WireGuard truyền thống yêu cầu phân phối khóa riêng tư cho từng thiết bị cần truy cập. TailGuard tập trung hóa điều này bằng cách lưu trữ khóa WireGuard trên một máy duy nhất trong khi cho phép các thiết bị mới tham gia thông qua hệ thống SSO của Tailscale.
Cách tiếp cận này giảm gánh nặng quản trị của việc quản lý khóa. Khi ai đó có thiết bị mới, họ chỉ cần đăng nhập vào tài khoản Tailscale của mình thay vì chuyển các tệp cấu hình WireGuard và khóa riêng tư. Hệ thống cũng giúp việc chuyển đổi giữa các exit node khác nhau dễ dàng hơn mà không cần kết nối lại với các dịch vụ VPN riêng biệt.
Tham số cấu hình TailGuard
Tham số | Mô tả | Giá trị mặc định |
---|---|---|
WG_DEVICE |
Tên thiết bị WireGuard , phải khớp với tệp cấu hình | wg0 |
TS_DEVICE |
Tên thiết bị Tailscale | tailscale0 |
TS_PORT |
Số cổng Tailscale (nên được Docker expose) | 41641 |
TS_AUTHKEY |
Khóa xác thực Tailscale | - |
TS_DEST_IP |
IP đích để định tuyến lưu lượng Tailscale | - |
TS_HOSTNAME |
Tên máy chủ Tailscale cho thiết bị | - |
Ứng dụng thực tế và các trường hợp sử dụng
Cộng đồng đã xác định một số ứng dụng thực tế cho TailGuard. Một trường hợp sử dụng thú vị liên quan đến việc kết nối với các dịch vụ đám mây như Fly.io, cung cấp quyền truy cập WireGuard vào các mạng riêng của họ. Thay vì cấu hình trực tiếp các client WireGuard, người dùng có thể chạy TailGuard để làm cho các mạng riêng này có thể truy cập được thông qua thiết lập Tailscale hiện có của họ.
Một tình huống phổ biến khác liên quan đến việc kết nối các mạng gia đình thông qua các router hỗ trợ WireGuard nhưng không hỗ trợ Tailscale. Nhiều router tiêu dùng có hỗ trợ WireGuard tích hợp nhưng thiếu tích hợp Tailscale. TailGuard bắc cầu khoảng cách này, cho phép toàn bộ mạng gia đình tham gia vào các mesh Tailscale.
Công cụ này cũng chứng tỏ có giá trị để truy cập các mạng đằng sau địa chỉ IP động hoặc kết nối CGNAT, nơi các kết nối trực tiếp truyền thống có thể không đáng tin cậy.
Các Khả năng và Cài đặt Docker Cần thiết
--cap-add NET_ADMIN
- Khả năng quản trị mạng--device /dev/net/tun
- Truy cập thiết bị TUN cho việc tạo đường hầm VPN--sysctl net.ipv4.ip_forward=1
- Kích hoạt chuyển tiếp gói tin IPv4--sysctl net.ipv6.conf.all.forwarding=1
- Kích hoạt chuyển tiếp IPv6--sysctl net.ipv4.conf.all.src_valid_mark=1
- Kích hoạt đánh dấu xác thực nguồn- Cổng
41641/udp
- Mở cổng UDP mặc định của Tailscale
Triển khai kỹ thuật và các trường hợp đặc biệt
Mặc dù khái niệm nghe có vẻ đơn giản, việc triển khai xử lý nhiều thách thức kỹ thuật. Nhà phát triển đã gặp phải các vấn đề với mạng dual-stack IPv4/IPv6, phân giải DNS cho các endpoint động, tích hợp tường lửa và masquerading lưu lượng giữa các phân đoạn mạng khác nhau.
Ban đầu nó chỉ là một hack mà tôi thậm chí không nghĩ đáng để chia sẻ, nhưng nhiều thứ bị hỏng hơn tôi tưởng tượng.
Container tự động phân tích các cấu hình WireGuard để quảng cáo các subnet thích hợp trên mạng Tailscale. Tuy nhiên, để đạt được định tuyến hai chiều thực sự cần cấu hình thủ công ở phía WireGuard để định tuyến các không gian địa chỉ của Tailscale trở lại thông qua tunnel.
TailGuard đại diện cho một giải pháp thực tế cho các vấn đề quản lý VPN phổ biến, đặc biệt đối với người dùng phải đối phó với hạn chế thiết bị di động hoặc thiết lập đa mạng phức tạp. Mặc dù nó thêm một lớp khác vào kiến trúc mạng, nó đơn giản hóa trải nghiệm người dùng và giảm độ phức tạp của việc quản lý nhiều kết nối VPN trên các thiết bị khác nhau.
Tham khảo: TailGuard