Contents

部署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。

其他注意事项
  • 如果是运行在旁路由,不用设置防火墙规则。