自建 Tailscale DERP 服务器指南Tailscale 是一个基于 WireGuard 的 VPN 服务提供简单的点对点加密网络连接。DERPDetour Encrypted Routing for Packets是 Tailscale 的中继服务器用于在 NAT 或防火墙后无法直接建立点对点连接时转发流量。自建 DERP 服务器可以提升网络性能减少对 Tailscale 官方服务器的依赖。准备工作确保拥有一台具备公网 IP 的服务器推荐使用 Ubuntu 20.04 或更高版本。服务器需要开放以下端口UDP 3478STUN 服务TCP 443HTTPS 服务安装必要的工具sudo apt update sudo apt install -y curl git golang部署 DERP 服务器克隆 Tailscale 官方仓库并构建 DERP 服务git clone https://github.com/tailscale/tailscale.git cd tailscale/cmd/derper go build -o derper生成 TLS 证书推荐使用 Lets Encryptsudo apt install certbot sudo certbot certonly --standalone -d your-domain.com创建配置文件derper.conf{ CertDir: /etc/letsencrypt/live/your-domain.com, Hostname: your-domain.com, STUNPort: 3478, HTTPPort: 443, VerifyClients: true }启动 DERP 服务./derper -c derper.conf客户端配置在 Tailscale 客户端配置中添加自定义 DERP 服务器。编辑 Tailscale 的偏好设置文件通常位于~/.config/tailscale/tailscale.conf{ DERP: { Regions: { 900: { RegionID: 900, RegionCode: myderp, Nodes: [ { Name: 1, RegionID: 900, HostName: your-domain.com, IPv4: your-server-ip, DERPPort: 443 } ] } } } }重启 Tailscale 客户端以应用配置sudo systemctl restart tailscaled验证连接在客户端机器上运行以下命令测试 DERP 服务器tailscale netcheck输出应显示自定义 DERP 服务器已启用并可用。通过 Tailscale Admin 控制台可以查看连接状态和流量统计。性能优化启用 TCP 快速打开TCP Fast Open以降低延迟echo 3 | sudo tee /proc/sys/net/ipv4/tcp_fastopen调整内核参数提升吞吐量sudo sysctl -w net.core.rmem_max4194304 sudo sysctl -w net.core.wmem_max4194304安全加固启用客户端验证确保只有授权设备可使用 DERP 服务器。在derper.conf中设置VerifyClients: true并在客户端配置中添加共享密钥{ DERP: { Regions: { 900: { RegionID: 900, RegionCode: myderp, SecretKey: your-shared-secret } } } }监控与维护使用 systemd 管理 DERP 服务创建/etc/systemd/system/derper.service[Unit] DescriptionTailscale DERP Server Afternetwork.target [Service] ExecStart/path/to/derper -c /path/to/derper.conf Restartalways Userderper Groupderper [Install] WantedBymulti-user.target启用并启动服务sudo systemctl enable derper sudo systemctl start derper设置日志轮转以管理日志文件sudo nano /etc/logrotate.d/derper添加以下内容/var/log/derper.log { daily rotate 7 compress missingok notifempty }故障排除常见问题及解决方法证书错误确保证书路径正确且权限可读。端口冲突检查 443 和 3478 端口未被占用。连接超时验证防火墙规则允许入站流量。使用以下命令检查服务状态sudo systemctl status derper tail -f /var/log/derper.log高级配置对于高可用部署可在多区域设置多个 DERP 服务器。在客户端配置中定义多个节点{ DERP: { Regions: { 901: { RegionID: 901, RegionCode: myderp-fallback, Nodes: [ { Name: 1, RegionID: 901, HostName: backup-domain.com, IPv4: backup-server-ip, DERPPort: 443 } ] } } } }参考架构典型生产环境架构包括负载均衡器如 Nginx处理 TLS 终止。多台 DERP 服务器分布在不同地理位置。数据库存储连接状态可选。Nginx 配置示例server { listen 443 ssl; server_name your-domain.com; ssl_certificate /etc/letsencrypt/live/your-domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/your-domain.com/privkey.pem; location / { proxy_pass http://localhost:8080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; } }客户端跨平台配置Windows 客户端通过修改注册表添加 DERP 服务器打开regedit并导航至HKEY_LOCAL_MACHINE\SOFTWARE\Tailscale创建字符串值DERPConfig内容为 JSON 配置。macOS 客户端通过命令行配置sudo defaults write /Library/Preferences/com.tailscale.tailscaled.plist DERPConfig -string {Regions:{900:{RegionID:900,RegionCode:myderp}}}自动化部署使用 Ansible 自动化部署 DERP 服务器。创建 playbookderp.yml- hosts: derp_servers tasks: - name: Install dependencies apt: name: [golang, certbot] state: present - name: Clone Tailscale repo git: repo: https://github.com/tailscale/tailscale.git dest: /opt/tailscale - name: Build derper command: go build -o derper args: chdir: /opt/tailscale/cmd/derper - name: Create config file copy: content: | { CertDir: /etc/letsencrypt/live/{{ domain }}, Hostname: {{ domain }}, STUNPort: 3478, HTTPPort: 443, VerifyClients: true } dest: /opt/tailscale/cmd/derper/derper.conf成本估算自建 DERP 服务器的典型成本构成云服务器2 vCPU, 4GB RAM$10-$20/月带宽费用1TB 传输$5-$10/月域名和 SSL 证书$15/年对比 Tailscale 官方服务自建服务器在流量较大时可显著降低成本。法律与合规确保遵守当地法律法规数据隐私法规如 GDPR通信监控相关法律加密技术出口管制建议咨询法律顾问确保合规特别是跨国部署时。扩展阅读Tailscale 官方文档https://tailscale.com/kbWireGuard 协议详解https://www.wireguard.com/protocol网络性能优化指南https://github.com/trimstray/nginx-admins-handbook通过以上步骤可以完成 Tailscale DERP 服务器的自建和客户端验证。根据实际需求调整配置平衡性能、安全性和成本。