配置headscale的出口节点

in 云服务器 with 0 comment

之前有配置好headscale+tailscale+derp,当时的需求是要组建自己的虚拟局域网。

最近在查资料的时候,还可以将headscale的某个节点配置为出口路由,这样可以供局域网内所有的设备走这台节点访问网络。具体是什么就很清楚了。

配置Headscale Exit Nodes(出口节点)

你可以将接入到Headscale网络内的任意节点(设备)设置为Exit Nodes(出口节点)。

这有什么用呢?打个最简单的比方,假设你的Headscale网络内接入了一台境外的VPS,你把这台境外的VPS设置为Exit Nodes,之后你所有接入到Headscale网络内的节点(设备)都可以直接翻墙。

也就是说如果我把自己的这台甲骨文ARM设置为Exit Nodes,那么我之前接入的Windows10、iPhone等设备就可以通过这台甲骨文ARM来翻墙了。下面简单演示一下。

设置Exit Nodes的机器要开启IP转发:

echo 'net.ipv4.ip\_forward = 1' | tee \-a /etc/sysctl.d/99\-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | tee \-a /etc/sysctl.d/99\-tailscale.conf
sysctl \-p /etc/sysctl.d/99\-tailscale.conf

宣告自己想成为Exit Nodes:

tailscale set \--advertise\-exit\-node

回到Headscale控制服务器,执行如下命令:

headscale routes list

可以看到有两条路由但还没有启用:

ID | Machine    | Prefix    | Advertised | Enabled  | Primary
1  | moonbridge | ::/0      | true       | false    | -
2  | moonbridge | 0.0.0.0/0 | true       | false    | -

再通过执行如下命令来启用这两条路由:

headscale routes enable \-r 1 headscale routes enable \-r 2

再次查看路由就是启用的状态了:

ID | Machine    | Prefix    | Advertised | Enabled | Primary
1  | moonbridge | ::/0      | true       | true    | -
2  | moonbridge | 0.0.0.0/0 | true       | true    | -

现在我们就可以配置客户端来使用这个出口节点了.

Responses