技术备忘录:解决 Tailscale 在 5G 网络下 Exit Node 失效问题

技术备忘录:解决 Tailscale 在 5G 网络下 Exit Node 失效问题

1. 问题现象

环境: 腾讯云服务器(出口节点)、iPhone(客户端)、5G 移动网络。 症状: 在家里 Wi-Fi 环境下代理正常;切换到 5G 后,开启 Exit Node 导致手机无法上网,甚至无法访问服务器内网 IP。 根因: 5G 运营商对 UDP 协议 进行了严格限制或阻断(Tailscale 默认走 UDP),且官方海外中继节点延迟过高。

2. 核心解决方案:自建 DERP 中继服务器

通过 Docker 部署私有 DERP 节点,强制流量走 TCP (443端口) 转发,绕过运营商的 UDP 干扰。

部署方式: Docker 容器。 证书方案: 自签名证书 (Self-signed Certificate)。 关键端口:

TCP 443: DERP 流量传输。 如果使用非433,需要保证腾讯服务器的防火墙配置打开了对应的端口 UDP 3478: STUN 服务(协助打洞)。

3. 关键配置步骤回顾

A. 服务端 (Docker 启动参考): 使用 Docker 部署时,需挂载证书目录并指定域名。

services:
  derper:
    image: ghcr.io/yangchuansheng/ip_derper:latest
    container_name: derper
    restart: always
    ports:
      - "12345:12345" # 这里的12345请改成你自己想要的10000以上的高位端口,或者就443
      - "3478:3478/udp" # 3478 为stun端口,如果不冲突请勿修改
    volumes:
      - /var/run/tailscale/tailscaled.sock:/var/run/tailscale/tailscaled.sock # 映射本地 tailscale 客户端验证连接,用来验证是否被偷
    environment:
      - DERP_ADDR=:12345 # 此处需要与上面的ports同步修改
      - DERP_CERTS=/app/certs
      - DERP_VERIFY_CLIENTS=true # 启动客户端验证,这是防偷的最重要的参数

docker-compose up起来就可以了。用托管的session启动就可以了

B. Tailscale 控制台配置 (ACL Edit): 在 derpMap 中必须手动指定 InsecureForTests: true,否则 Tailscale 客户端会因为证书不合法而拒绝连接。

"derpMap": {
    "OmitDefaultRegions": false,
    "Regions": {
        "901": {
            "RegionID":   901,
            "RegionCode": "tencent-derp",
            "Nodes": [
                {
                    "Name":             "1",
                    "RegionID":         901,
                    "HostName":         "你的域名或IP",
                    "DERPPort":         443,
                    "InsecureForTests": true, // 关键:允许自签名证书
                    "STUNPort":         3478,
                    "IPv4":             "腾讯云公网IP"
                }
            ]
        }
    }
}

4. 其他辅助优化(防止断流)

如果未来遇到“能连接但大网页打不开”的情况,需检查:

MSS Clamping (服务器执行): 解决 5G 网络 MTU 限制。    sudo iptables -t mangle -A FORWARD -p tcp –tcp-flags SYN,RST SYN -j TCPMSS –clamp-mss-to-pmtu

IP 转发: 确保服务器 net.ipv4.ip_forward = 1。 iPhone 设置: 关闭“iCloud 私密转送”和“限制 IP 地址跟踪”。

5. 验证命令

手机保持5G无WIFI,此时tailscale开启 Exit Node,流量将稳定通过腾讯云中继转发。

备忘记录时间: 2026年 状态: 已解决 :white_check_mark: