使用 Tailscale 旅行

主要观点:作者即将前往欧洲,为确保依赖的关键应用(如银行门户)在国外仍能工作,设置了 Tailscale 出口节点。部署了 DigitalOcean droplet 并按步骤设置,可通过tailscale status确认节点已作为出口节点,客户端配置后可通过出口节点发送流量,遇到工作需用 Netbird VPN 导致内部流量路由改变的问题,深入研究 Tailscale 路由传播机制,通过添加更高优先级的 IP 规则(如sudo ip rule add to 10.0.0.0/16 pref 5000 lookup main)使内部流量经由 Netbird VPN ,还创建了 shell 脚本自动化添加/删除规则。

关键信息:

  • BLR区域部署 DigitalOcean droplet 并设置 Tailscale 出口节点,步骤可参考这里
  • tailscale status可确认出口节点状态,如100.108.220.87为出口节点且活跃。
  • 连接 Tailscale 出口节点后内部流量路由改变,需添加更高优先级规则。
  • 可通过ip route show table 52查看 Tailscale 的路由表,default dev tailscale0为默认路由,throw 127.0.0.0/8特殊路由丢弃本地主机地址流量。
  • 通过ip rule show查看路由规则优先级,默认 Linux 有本地(优先级 0)、主(优先级 32766)、默认(优先级 32767)三个主要路由表,添加的规则优先级为 5000 。
  • 创建 shell 脚本add函数添加 IP 规则,remove函数删除指定优先级的规则。

重要细节:

  • 部署 DigitalOcean droplet 时执行的命令(echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf等)。
  • 客户端连接出口节点的命令(sudo tailscale up --exit-node=100.108.220.87)。
  • 验证流量路由的命令(ip route get 10.0.1.100等)。
  • shell 脚本中添加和删除规则的具体实现细节。
阅读 9
0 条评论