soarli

阿里云搭建 Tailscale DERP 节点终极避坑指南:告别 SNI 阻断,实现 30ms 极速直连!
如果你是一个 Tailscale 重度用户,你一定经历过官方海外 DERP 节点那让人抓狂的高延迟和高丢包率。为了...
扫描右侧二维码阅读全文
22
2026/02

阿里云搭建 Tailscale DERP 节点终极避坑指南:告别 SNI 阻断,实现 30ms 极速直连!

如果你是一个 Tailscale 重度用户,你一定经历过官方海外 DERP 节点那让人抓狂的高延迟和高丢包率。为了实现设备间的极速直连(P2P),在国内云服务器上自建一个专属于自己的 DERP 中继节点,几乎是唯一的出路。

但在国内云服务商(如阿里云、腾讯云)上搭建 DERP 节点,并非一条坦途。由于国内特殊的网络环境(未备案域名拦截 80/443 端口),传统的一键部署教程往往会让你陷入死胡同。

经过长达数小时的排错与折腾,我终于摸索出了一套“真实域名 + 手动证书 + 非标准端口 + 防火墙全通”的最强完美形态。今天,就把这套可以直接抄作业的避坑指南分享给大家。

💡 核心架构思路(为什么标准教程行不通?)

通常的教程会让你直接用 Docker 映射 443 端口,并让程序自动申请 Let's Encrypt 证书。但在国内服务器上,这会导致三个致命问题:

  1. 80 端口被封死: 自动申请证书依赖 80 端口验证,导致申请失败,程序只能生成自签名证书。而 Tailscale 极其严格,绝对拒收自签名证书
  2. 443 端口 SNI 阻断: 即便你搞到了真实证书,只要你的域名没有在工信部备案,当你通过 443 端口访问时,阿里云防火墙会立刻识别出未备案域名的 SNI 并强制阻断(ERR_CONNECTION_CLOSED)。
  3. UDP 测速包有去无回: 配置好一切后,网页能打开,但 tailscale netcheck 死活测不出延迟,因为服务器内部防火墙(ufw)拦截了 3478 UDP 端口。

我们的终极破局方案:
抛弃 443 端口!使用申请好的真实 SSL 证书,配合非标准 TCP 端口(例如 42465)绕过域名备案检测,并彻底打通系统与云盘的双层防火墙。


🛠️ 终极部署教程(四步通车)

第一步:准备真实 SSL 证书

既然服务器自己申请不到,我们就手动“喂”给它。

  1. 去你的域名注册商(如阿里云、腾讯云、Cloudflare)申请一张免费的 SSL 证书(通过 DNS 验证即可,无需备案)。
  2. 下载 Nginx 格式的证书,你会得到公钥(.crt.pem)、证书链(chain.crt)和私钥(.key)。
  3. 将公钥和证书链合并为一个完整的 .crt 文件。
  4. 将合并后的 你的域名.crt你的域名.key 上传到服务器的 /root/certs/ 目录下。

第二步:双重防火墙放行(极其关键!)

这是无数人栽倒在终点线前的一步。 你不仅要在阿里云网页控制台的安全组中放行端口,还要在 Ubuntu 系统内部放行!

在服务器终端执行:

# 放行自定义的 TCP 端口(用于 HTTPS 通讯)
sudo ufw allow 42465/tcp

# 放行原生的 STUN 端口(用于 UDP 打洞测速,极其重要!)
sudo ufw allow 3478/udp

注:同时确保在阿里云网页后台的“安全组”中也放行了这两个端口。

第三步:Docker 终极启动命令

清理掉环境里占用端口的其他服务(如宝塔面板残留),然后使用以下命令启动 DERP 容器。

这里我们使用了 yangchuansheng/derper 镜像,并关闭了客户端验证(因为使用了非标准端口,属于天然的伪装,不用担心被轻易白嫖,同时也免去了复杂的 Socket 权限挂载)。

docker run -d \
--name derper \
--restart always \
--network host \
-v /root/certs:/app/certs \
-e DERP_DOMAIN=derp.你的域名.com \
-e DERP_CERT_MODE=manual \
-e DERP_VERIFY_CLIENTS=false \
-e DERP_ADDR=:42465 \
ghcr.io/yangchuansheng/derper:latest

参数解析:

  • -v /root/certs:/app/certs:挂载我们刚刚上传的真实证书。
  • -e DERP_CERT_MODE=manual:强制程序使用本地手动证书,不再向外部申请。
  • -e DERP_ADDR=:42465:将原本的 443 端口替换为 42465,完美绕过备案 SNI 阻断!

第四步:配置 Tailscale ACL

进入 Tailscale 网页端控制台(Access Controls),在 JSON 配置文件中添加你的专属节点:

  "derpMap": {
    "OmitDefaultRegions": false,
    "Regions": {
      "901": {
        "RegionID": 901,
        "RegionCode": "Aliyun",
        "RegionName": "My Aliyun DERP",
        "Nodes": [
          {
            "Name": "901a",
            "RegionID": 901,
            "HostName": "derp.你的域名.com", 
            "IPv4": "你的服务器真实公网IP", 
            "DERPPort": 42465,
            "STUNPort": 3478
          }
        ]
      }
    }
  }

🎉 见证奇迹的时刻

保存配置后,请务必重启你本地电脑/手机上的 Tailscale 客户端(强制刷新缓存)

打开你的本地终端,敲下神圣的测速命令:

tailscale netcheck

不出意外,你将会看到属于你的节点登顶榜首,享受几十毫秒的极致低延迟:

* Nearest DERP: My Aliyun DERP
* DERP latency:
  - Aliyun: 35.2ms  (My Aliyun DERP)
  - tok: 82.9ms  (Tokyo)
  - sin: 109.2ms (Singapore)
...

📝 排错自查清单 (Troubleshooting)

如果你依然遇到问题,请对照以下症状“对号入座”:

  1. 浏览器访问 https://域名:端口 提示 ERR_CONNECTION_CLOSED 100% 是由于域名未备案被云服务商阻断了。解决:换一个冷门端口。
  2. Mac/Windows 报错 remote error: tls: unknown certificate Tailscale 拒收了伪造证书。解决:检查容器是否正确读取了挂载的真实证书。
  3. 网页访问显示 "This is a Tailscale DERP server." 但 netcheck 列表里死活没有延迟: UDP 测速包被拦截了。解决:立刻去检查系统 ufw 防火墙的 3478/udp 是否放行!

折腾虽苦,但看着 35.2ms 延迟出现的那一刻,一切都值了。祝大家都能早日打通属于自己的网络高速公路!

最后修改:2026 年 02 月 22 日 05 : 28 AM

发表评论