1. 什么是 Tailscale

Tailscale 是基于 WireGuard 构建的现代 VPN,通过 NAT 穿越实现设备点对点互联。

Linux发型版安装脚本
curl -fsSL https://tailscale.com/install.sh | sh
安装后运行此命令,复制链接登录账号
tailscale up --accept-dns=false

2. 子网路由(Subnet routers)

子网路由用于让 Tailscale 设备访问内网非 Tailscale 设备(Tailscale充当网关)。

2.1 Linux启用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

​### 2.2 广告子网路由

启用IP转发后,通过--advertise-routes设置子网路由表。逗号分隔添加多个子网。

tailscale set --advertise-routes=192.0.2.0/24,198.51.100.0/24

​ 2.3 在管理控制台启用子网路由

image-20251230170924339

​ 2.4 在控制面板可以看到该设备被标记为Subnets,然后在其它Linux客户端允许访问

tailscale up --accept-routes

​ 2.5 测试连通性ping 192.168.88.1

3. Exit nodes出口节点

出口节点可将所有流量通过该节点转发,实现全局代理。

​ 3.1 Linux启用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

​ 3.2 设置VPS为Exit Node

tailscale set --advertise-exit-node && \
tailscale up --accept-dns=false

​ 3.3 在管理控制台允许此设备为出口节点,然后可以看到该设备被标记为Exit Node

image-20251230180310278

​ 3.4 其他客户端通过VPS转发流量,并且允许访问本地网络

tailscale set --exit-node=100.104.66.71 --exit-node-allow-lan-access=true

​ 3.5 停止使用出口节点,且重载配置

tailscale set --exit-node= && \
tailscale up --reset --accept-dns=false --accept-routes

4. 对等中继(Peer Relay)

配置 Tailscale 对等中继(最好是有公网的云服务器)

4.1 开放 UDP 端口

通过 SSH 或远程终端登录到该节点,执行以下命令:

tailscale set --relay-server-port=40000

4.2 为设备添加中继标签

为设备打标签:登录Tailscale控制台 ,找到目标设备,为其添加标签 relay。(Edit ACL tags)

4.3 配置访问控制列表(ACL)

打开 Tailscale Admin Console ,在 ACL 文件中添加 grants 规则:

"grants": [
    // 允许所有连接的基础策略(可根据需要调整)
    {
        "src": ["*"],
        "dst": ["*"],
        "ip": ["*"],
    },
    // 对等中继专用策略
    {
        "src": ["*"], // 源:允许所有节点
        "dst": ["tag:relay"], // 目标:所有带有 relay 标签的设备
        "app": {
            "tailscale.com/cap/relay": [], // 授予“中继”应用权限
        },
    },
],

https://yunpan.plus/t/14248-1-1

其它开源参考

GitHub - juanfont/headscale:Tailscale 控制服务器的开源自架设实现