在 Tailscale 中搭建自建 DERP 中继节点可以帮助提升网络连接的可靠性和性能。以下是详细步骤:
1. 准备服务器
- 服务器要求:
-
公网 IP(必须开放 TCP 443、UDP 3478 端口)
-
推荐配置:1 核 1G 内存以上(流量大需更高配置)
-
安装 Docker(推荐)或直接运行 DERP 二进制
-
2. 生成 SSL 证书
DERP 需要 HTTPS,可选择以下方式:
A. 使用 Let's Encrypt 证书
# 安装 certbot
sudo apt install certbot
# 申请证书(需提前将域名解析到服务器)
certbot certonly --standalone -d derp.yourdomain.com
证书路径:/etc/letsencrypt/live/derp.yourdomain.com/
B. 自签名证书(仅测试用)
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
3. 配置 DERP 服务
A. 通过 Docker 部署(推荐)
docker run -d \
--name derper \
-p 443:443 \
-p 3478:3478/udp \
-v /path/to/certs:/app/certs \
-e DERP_DOMAIN=derp.yourdomain.com \
-e DERP_CERT_MODE=manual \
-e DERP_CERT_DIR=/app/certs \
--restart always \
fredliang/derper:latest
B. 手动部署二进制
- 下载 DERP 二进制:
wget https://github.com/tailscale/tailscale/releases/download/v1.56.1/derper_linux_amd64
chmod +x derper_linux_amd64
- 运行:
./derper_linux_amd64 \
-a :443 \
-certdir /path/to/certs \
-hostname derp.yourdomain.com \
-stun
4. 配置 Tailscale ACL
在 Tailscale 管理后台的 Access Controls 配置文件中添加 DERP 节点:
{
"derpMap": {
"Regions": {
"900": { // 自定义区域ID(需>900)
"RegionID": 900,
"RegionCode": "my-derp",
"Nodes": [
{
"Name": "my-derp-1",
"RegionID": 900,
"HostName": "derp.yourdomain.com",
"IPv4": "your.server.ip",
"DERPPort": 443
}
]
}
}
}
}
5. 验证 DERP 节点
- 在客户端执行:
tailscale netcheck
输出中应显示 `my-derp` 区域已激活。
2. 查看连接日志:
tailscale status --json
注意事项
- 防火墙规则:确保开放 TCP 443 和 UDP 3478(STUN)端口。
- 域名解析:
derp.yourdomain.com必须解析到服务器公网 IP。 - 证书续期:Let's Encrypt 证书需每 3 个月续期,建议配置 cron 任务。
- 性能监控:可通过
tailscale ping测试延迟,或用derper --debug查看日志。
高级配置
- 多节点负载均衡:重复上述步骤部署多个 DERP 节点,并在 ACL 中配置优先级。
- 隐藏 DERP 节点:在配置中设置
"InsecureForTests": true可跳过 TLS 验证(仅限测试)。
如果遇到问题,可以通过 tailscale debug --derp 生成诊断报告进一步排查。
评论区