
### 技术备忘录：解决 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 部署时，需挂载证书目录并指定域名。
```yaml
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 客户端会因为证书不合法而拒绝连接。

```json
"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: