在之前的文章Tailscale子网路由部署中介绍了如何使用子路由来访问没有安装tailscale的设备,这个功能用到了系统的流量转发能力,即把流量转发给子网的机器。tailscale除了子网路由功能,还有一种功能是出口节点功能,即把流量转发给外部。

举一个我们经常会用到的场景。在这么一个网络环境中,家里的设备希望访问google.com, 由于某些原因,网络无法直接访问。但是我们有一台处于境外的VPS,可以直接访问到google.com。这时,我们可以将这个VPS加入tailscale节点,并设置为Exit Node, 那么网络中的其他设备就可以将这个VPS节点作为Exit Node,所有的流量都会发送到这个Exit Node, 再由Exit Node转发到目标服务器。
20260325_tailnet_exit_node

除了这个场景,Exit Node还能起到隐私保护,流量安全等不敌

部署步骤

关于如何安装tailscale,请参考Headscale搭建过程实录

开启转发功能

开启转发功能,可以参考: Tailscale子网路由部署

重启tailscale服务开启Exit Node

如果你是自己部署的headscale服务,使用命令:

1
2
# 192.168.0.0/24 需要根据实际情况修改
tailscale up --advertise-exit-node --login-server=https://hs.example.com

如果是使用tailscale官方服务,使用命令:

1
2
# 192.168.0.0/24 需要根据实际情况修改
tailscale up --advertise-exit-node

在网页批准子网路由

连接成功后,进入对应节点的配置页面,点击“编辑”:
20260325_tailscale_exit_approve
然后Approve并保存,就成功开启了Exit Node~~

验证

在任意一台开启tailsale的设备中,选择对应的Exit Node并启动连接,尝试进行访问
20260325_tailscale_exit_client