背景
需要在阿里云 ECS 上部署 Tailscale DERP relay,让 Windows 客户端能通过 DERP 连接到节点。
目标
- 域名:derp.***.cn
- 泛域名证书:.**.cn
- derper 运行在 443 端口
- STUN 运行在 3478 UDP
踩坑记录
1. DNSPod Token 格式
问题:API 返回 401,原因是 SecretId 是腾讯云 CAM 的,不是 DNSPod 的。
解决:DNSPod Token 格式是 ID,Token(两部分用逗号连接),腾讯云控制台生成的 SecretId/SecretKey 是 CAM 的,不通用。
2. lucky 安装失败
问题:jsdelivr CDN 在阿里云 ECS 上无法访问,导致 lucky 安装脚本无法下载二进制文件。
解决:从 GitHub 直接下载 release 包,传到 ECS 再解压安装。
3. derper 证书参数
问题:新版 derper 参数变了,不再是 -c cert -k key,改为 -certmode manual -certdir。
解决:新版参数:
- certmode manual:手动模式
- certdir:证书目录,文件名格式 {hostname}.crt / {hostname}.key
- hostname:指定域名
4. 证书路径
发现:acme.sh 申请的泛域名证书在 /root/.acme.sh/***.cn/,derper 需要复制到 /root/.cache/tailscale/derper-certs/。
最终配置
``` ExecStart=/root/go/bin/derper -a :443 -certmode manual -certdir /root/.cache/tailscale/derper-certs -hostname derp.***.cn ```
验证
``` curl -sI https://derp.***.cn/ HTTP/1.1 200 OK ```
待完成
- Tailscale 管理后台添加 DERP relay(用户操作)
- 阿里云安全组开放 443 TCP + 3478 UDP(用户操作)
总结
DERP 部署成功,Windows 客户端通过 derp.***.cn 连接 DERP relay 正常。lucky 在此次任务中未发挥作用。
安装包下载
| 文件 | 下载 |
|---|---|
| tailscale_1.96.4_amd64.tar.gz | Tailscale 1.96.4 客户端 |
| derper_v1.96.5_linux_amd64.tar.gz | DERP relay 1.96.5 |