部署tailscale节点作为exit node
#网络/tailscale
前情提要
前段时间在家中部署了一台openwrt虚拟机作为旁路由,用openclash进行流量分流,效果还不错,打算让手机在外面也能直接用这台机器作为代理进行上网。tailscale提供一个功能,可以让tailscale组网的设备选取其中一台作为上网的出口,可以完美的实现我的需求。 本来想直接在这台旁路由上安装tailscale,但是发现官方没有支持,需要用第三方提供的插件。因为有洁癖,于是打算再开一台虚拟机(fedora server)安装tailscale,并配置subnet routes和exit node。记录一下部署过程如下。
部署步骤
-
安装tailscale过程省略。
-
运行tailscale:
tailscale up --advertise-routes=192.168.0.0/24 --accept-dns=false --advertise-exit-node
,会提示一个网址,点击网址可以进入网页登陆,进行验证和设置。勾选subnet routes和exit node。 -
禁用密钥到期。
-
设置IP forwarding
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.conf sudo sysctl -p /etc/sysctl.conf
-
防火墙设置
firewall-cmd --permanent --add-masquerade
-
每次启动自动运行tailscale up
sudo nano /etc/systemd/system/tailscale-up.service
填入如下内容
[Unit] Description=Run tailscale up on boot After=network-online.target Wants=network-online.target Requires=tailscaled.service [Service] Type=oneshot ExecStart=/usr/bin/tailscale up RemainAfterExit=yes [Install] WantedBy=multi-user.target
sudo systemctl daemon-reexec sudo systemctl daemon-reload sudo systemctl enable tailscale-up.service
-
将这台机器的网关和DNS设置为旁路由的ip。
-
在手机端打开tailscale并选择exit node, 如果还想访问局域网其他机器,可以打开Allow Local Network Access。
其他注意事项
- 如果是运行在旁路由,不用设置防火墙规则。