< OS 有关 > 阿里云:轻量应用服务器 的使用 :Tailscale 出口节点完整配置指南:路由概念、Tailscale 安装配置、出口节点设置、安全 故障排查

created by Dave on 23Jan.2025

阿里云,昨天刚充值,今天就断网。
在写这个文章时,什么也没做主机挂了。

环境:

出口节点(Exit Node)要求:

  • Linux 系统 (阿里云 vpm.jp)   
  • 启用 IP 转发
  • 配置正确的 NAT 规则

其它非出口节点要求:

  • 能安装 Tailscale 的操作系统
  • 在安装了 Tailscale 的系统中指定 “出口节点” 即可

默认系统有安装 curl 工具。

所需知识:路由

路由:在计算机网络中负责数据包转发的核心,它决定了数据从源地址到目标地址的传输路径。在 ISO/OSI 参考模型里的第三层:网络层,进行数据包转发。它是基于 IP 地址工作的,特点:

  • 根据目标(目的地址)IP 决定转发路径
  • 可以跨网段通信
  • 有一个叫 “路由表” 的文件在内存中,系统凭 “路由表” 中设定的规则来转发数据包。

完整配置步骤:

一、安装 Tailscale 

在 Debian/Ubuntu 系统上安装

1)添加 Tailscale 的 GPG 密钥
命令:
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/jammy.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
解释:
1. curl -fsSL 执行下载:
  • f: 失败时静默
  • s: 静默模式
  • S: 显示错误
  • L: 跟随重定向
2. | sudo tee 

通过管道,将输出传递并写入文件 /usr/share/keyrings/tailscale-archive-keyring.gpg

3. >/dev/null

输出不在终端显示

以上,可以参考官网:

https://pkgs.tailscale.com/stable/

2)添加 Tailscale 的软件源
命令:
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/jammy.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list
3) 更新软件包列表并安装
命令:
sudo apt-get update
sudo apt-get install tailscale

二、配置出口节点 (主机 jpn)

在阿里 vpm.jp上:

1) 基本设置

a. 启用 IP 转发,并让系统重新加载内核参数
命令:
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
b. 验证 IP 转发状态
命令与正常返回:
root@jpn:~# cat /proc/sys/net/ipv4/ip_forward
1

2) 配置 NAT (路由)

要使用的工具是 iptables-persistent, 用于保存和恢复 iptables 规则,确保系统重启后防火墙规则不会丢失。

a. 安装 iptables-persistent
sudo apt install iptables-persistent
b. 清除现有规则
sudo iptables -t nat -F ts-postrouting
sudo iptables -t filter -F ts-forward

清空 NAT 表中的 ts-postrouting 链儿
清空 filter 表中的 ts-forward 链儿

c. 添加 NAT 规则
sudo iptables -t nat -A ts-postrouting -o eth0 -j MASQUERADE

从 tailscale 到外网的流量进行地址伪装

d. 添加转发规则
sudo iptables -t filter -A ts-forward -i tailscale0 -o eth0 -j ACCEPT
sudo iptables -t filter -A ts-forward -i eth0 -o tailscale0 -m state --state 

允许从 tailscale 接口到外网接口的流量 (单向)
允许已建立连接的返回流量 (双向)

注: tailscale0  eth0 是主机网口

e. 保存 iptables 规则
sudo netfilter-persistent save

永久保存规则,重启后也会生效

3) 启用出口节点

sudo tailscale up
sudo tailscale up --advertise-exit-node

启用,配置为出口节点

三、配置客户端节点 (主机 ub3)

1)安装 Tailscale

同上述安装步骤

2)连接网络、查看网络状态

sudo tailscale up
tailscale status

3)使用出口节点

sudo tailscale up --exit-node=jpn --exit-node-allow-lan-access

我用的是主机名:jpn ,也可以用 IP 地址。

4) 校验连接
curl ifconfig.me

四、故障排查命令

1) 检查连接状态

tailscale status

2) 网络接口状态

ip a

3) 路由表查看命令

ip route show

4)NAT 规则查看命令 (在出口节点)

sudo iptables -t nat -L

5) 可能的问题

a. 连接失败:
  • 检查防火墙设置
  • 确认 IP 转发状态
  • 验证 NAT 规则
b. 路由有关:
  • 备份当前路由表:
ip route show > route_backup.txt
  • 恢复默认路由:
sudo dhclient
c.备份 iptables 规则
sudo iptables-save > iptables_backup.txt

6)软件更新

sudo apt update
sudo apt install tailscale

7)监控

a. 监控网络流量
sudo tcpdump -i tailscale0
b.查看连接日志
sudo journalctl -u tailscaled

五、网络优化(实践扩展)

1)使用子网路由

a. 配置 Tailscale 子网路由

在出口节点 jpn 上操作,比如 jpn 有连接到网段 192.168.0.0./24

sudo tailscale up --advertise-routes=192.168.19.0/24
解释:

在出口节点 jpn 上宣告它可以路由到 192.168.0.0/24 网段,允许其他 Tailscale 节点通过此节点访问该子网。 

b. 接受来自出口节点通告的路由
sudo tailscale up --accept-routes
解释:

在客户端上接受来自出口节点通告的路由,使客户端可以通过出口节点访问其子网。默认客户端不会自动接受路由,需要启用

2)增强安全性

控制 Tailscale 的网络访问权限
sudo tailscale up --exit-node=jpn --exit-node-allow-lan-access=false
解释:

阻止通过出口节点访问本地网络。防止未授权访问 LAN。

这里会使用在 Tailscale 控制台配置的 ACL(访问控制列表),具体见官网。

六、日常维护建议(尤其是商业使用)

  1. 定期更新系统和 Tailscale
  2. 监控网络性能和连接状态
  3. 维护日志
  4. 定期备份配置
  5. 使用标签管理设备权限

总结:

之前发小文章有些凌乱,也可能是很久没有写作。这篇详细介绍 Tailscale 的安装配置、出口节点设置、安全和如何排查故障等内容。
按照文章的配置,可以构建安全、高效的私有网络,灵活的路由控制。
如果有网络环境的变化,建议定期检查配置、更新系统,并根据实际需求调整网络策略等。

最重要的是:安全性与可用性是同等重要的,在部署时要考虑两者之间的平衡。一个好的定期维护计划,平时的监控记录是网络稳定运行的关键。

之前写的有关文章:

< OS 有关 > 阿里云:轻量应用服务器 的使用 配置 tailscale 出口_warning: udp gro forwarding is suboptimally config-优快云博客

< OS 有关 > 阿里云:轻量应用服务器 的使用 安装 Tailscale 后DNS 出错, 修复并替换 apt 数据源_tailscale dns unavailable-优快云博客

<OS 有关>Ubuntu 24 安装 openssh-server, tailscale+ssh 慢增加-优快云博客

<QNAP 453D QTS-5.x> 日志记录:利用 tailscale app 让个人的设备在 internet 上,组成私有网络-优快云博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值