侧边栏壁纸
博主头像
土拨鼠说Halo 博主等级

行动起来,活在当下

  • 累计撰写 42 篇文章
  • 累计创建 3 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

[转载]在 Tailscale 中搭建自建 DERP 中继节点

土拨鼠
2025-03-01 / 0 评论 / 0 点赞 / 1 阅读 / 0 字

在 Tailscale 中搭建自建 DERP 中继节点可以帮助提升网络连接的可靠性和性能。以下是详细步骤:

1. 准备服务器

  • 服务器要求
    • 公网 IP(必须开放 TCP 443UDP 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. 手动部署二进制

  1. 下载 DERP 二进制:
wget https://github.com/tailscale/tailscale/releases/download/v1.56.1/derper_linux_amd64
chmod +x derper_linux_amd64
  1. 运行:
./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 节点

  1. 在客户端执行:
tailscale netcheck
输出中应显示 `my-derp` 区域已激活。

2. 查看连接日志:

tailscale status --json

注意事项

  1. 防火墙规则:确保开放 TCP 443 和 UDP 3478(STUN)端口。
  2. 域名解析derp.yourdomain.com 必须解析到服务器公网 IP。
  3. 证书续期:Let's Encrypt 证书需每 3 个月续期,建议配置 cron 任务。
  4. 性能监控:可通过 tailscale ping 测试延迟,或用 derper --debug 查看日志。

高级配置

  • 多节点负载均衡:重复上述步骤部署多个 DERP 节点,并在 ACL 中配置优先级。
  • 隐藏 DERP 节点:在配置中设置 "InsecureForTests": true 可跳过 TLS 验证(仅限测试)。

如果遇到问题,可以通过 tailscale debug --derp 生成诊断报告进一步排查。

0

评论区