阿里云 Tailscale DERP 中继部署
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_f9be8d90/tailscale-derper-aliyun。
技能介绍
要解决什么问题
在阿里云 ECS 上自建 Tailscale DERP 中继时,常见场景是静态公网 IP、没有域名。这时节点往往出现:peer 在 tailscale status 里在线却互 ping 不通、tailscale debug derp 证书报错或超时、以及本机访问自己公网 IP 一直失败。根因通常不在「装没装 derper」,而在 Hairpin NAT、Go TLS 对 SAN 的要求、ACL 对自签名证书的信任,以及 Tailscale 使用的路由表 52 丢失。
技能如何帮你落地
本技能按实战顺序组织从 SSH 到验收的完整流程,核心包括:
- 内核与网络预处理:为后续 DERP/STUN 打基础,并处理阿里云特有的回环问题(
iptablesDNAT 把访问自身公网 IP 的流量导向本地)。 - Go 与 derper 编译:用国内镜像装 Go,从
tailscale/tailscale官方仓库编译derper。 - 证书与服务:生成含 SAN 的自签名证书(客户端连接的 IP 必须出现在 CN/SAN 中);
systemd托管进程,并强调-http-port -1、-certmode manual、-hostname设为公网 IP 等参数。 - 控制台与客户端:在 admin 控制台 ACL 中配置自定义 DERP 区域,
InsecureForTests: true用于信任静态 IP 自签名证书;必要时修复100.64.0.0/10等路由。 - 诊断顺序:先
tailscale status/ 进程与端口检查,再tailscale debug derp、tailscale netcheck,配合journalctl缩小范围。
适用边界与注意点
- 面向阿里云 ECS + 安全组(TCP 443、UDP 3478 等);UDP 仍可能被云平台侧策略影响,需单独核对。
- 自签名 +
InsecureForTests属于测试/内网组网取向,生产环境应评估证书与 ACL 的安全含义。 - 文中 IP、密钥等敏感信息应使用占位符,勿写入可分享的技能正文。
使用场景
- 多台阿里云 ECS 已加入同一 Tailnet,官方 DERP 延迟高或不可达,需在自有 EIP 上部署 derper 作为自定义中继区域
- 仅有静态公网 IP、没有域名,要在 ECS 上编译 derper 并配置自签名 SAN 证书与 systemd 开机自启
- `tailscale status` 能看到 peer 但 `tailscale ping` 超时,需按技能流程检查路由表 52、Hairpin NAT 与 ip_forward
- `tailscale debug derp` 报 x509 或本机 curl 公网 IP 失败,需核对 ACL 的 InsecureForTests 与 iptables DNAT 回环规则
适合人员
- 在阿里云维护 Tailscale 组网、计划把 DERP 从公共服务迁到自有 ECS 的运维工程师
- 负责零信任内网接入、环境只有 EIP 无域名、必须 IP 直连 DERP 的基础设施工程师
- 线上 peer 可见但互不通,需要按 debug derp / netcheck / journalctl 系统化排错的 SRE
- 跨地域阿里云实例经 Tailscale 互联、对中继延迟与 UDP 3478/443 安全组有明确要求的平台负责人