使用 Headscale 和 Exit Node 转发流量
2024-09-30#Headscale
是使用 Headscale 搭建网格网络时,除了能让网络中的各个节点互联互通,还可以将网络中的某个节点当作中转站,用于转发流量。比如,在家里只需搭建一台 Tailscale 节点,然后将其设置为路由中转节点,就可以访问家里其他的电脑了。这个中转节点叫做 Exit Node (退出节点)。 Tailscale 的官网网站里有一篇《Exit nodes (route all traffic)》 对它进行了介绍。
启用 Exit Node 🔗
Headscale 的 《Exit Nodes》 页面介绍了配置的步骤。包括如下几步:
- 在中转节点上启用 Exit Node。然后,开启 IP 转发。如果只有 IPv4 流量,那么也可不开启 IPv6 的转发。
- 在控制服务器上启用中转节点的路由。当启用了
0.0.0.0/0
和::/0
时,该节点会转发所有目的地的流量。但是,如果只想是转发某个网段的流量,那么可以先使用tailscale up
命令与--advertise-routes
选项创建路由,再进行启用。具体见文档 《Advertise subnet routes 》。
配置 ACL 🔗
ACL 的配置可参考 Tailscale 的文档 《Add access rules for the advertised subnet routes》。目的地为子网网段,与--advertise-routes
的值相同。
如果期望使用中转流量转发互联网请求,那么可以在 dst
中使用 autogroup:internet:*
。比如:
{
"action": "accept",
"src": ["group:users"],
"dst": ["autogroup:internet:*"]
}
autogroup:internet
是 Headscale 所支持的仅有的 autogroup
(也可能是“之一”)。
配置完成后,重启 Headscale。
使用 Exit Node 🔗
headscale
运行后,等待一小会儿,配置信息就会被推送到各个客户端。在图形界面的客户端上,找到 Exit Nodes
,选中刚刚配置的节点。此后的网络流量,就会按照配置好的路由,进行转发了。
加载中...