
[!NOTE] Tailscale 让我们实现了无公网 IP 下的多设备互联,但当两台设备打洞(P2P 直连)失败时,流量就会自动通过 Tailscale 官方的 DERP 中继服务器 转发。因为官方中继都在国外,这就导致传输延迟飙升到 300ms 以上,速度慢得像蜗牛。今天老周带大家彻底解决这个痛点:用一台国内便宜的云服务器,搭建专属的私有 DERP 中继,体验延迟瞬间暴降到 20ms 以内的快感!
相信很多小伙伴都遇到过这个问题:明明在家里连 NAS 速度飞快,但一旦到了办公室、或者出差用手机流量连接,速度就突然慢得无法忍受,甚至连 SSH 都会频繁断联。
怎么诊断?
在客户端终端敲入以下命令查看连接状态:
tailscale status
如果看到你的设备后面显示的不是 direct(直连),而是 relay (via derp-xxx),说明两台设备之间的直接通道被防火墙或 NAT 阻断了,流量正在通过官方的 DERP 服务器绕道传输。因为官方中继在美国或欧洲,来回数据包跨越太平洋,延迟不卡才怪!
Tailscale 的底层通信依赖于 WireGuard 协议,它会尽最大努力进行 NAT 穿透(打洞),让两台设备直接建立点对点(P2P)连接。
但在复杂的网络环境(如小区的对称型 NAT、企业级严苛防火墙)下,打洞可能会 100% 失败。此时,为了保证网络不中断,Tailscale 会启用DERP (Detour Encrypted Routing Protocol)协议,通过中继服务器来中转双方的加密数据。
[设备 A] ──(国内宽带)──► [自建国内 DERP (20ms)] ──(国内宽带)──► [设备 B]
既然中继是最后的防线,只要我们把这个中继节点从“大洋彼岸”搬回“国内云机”,延迟和带宽问题就会瞬间迎刃而起!
为了搭建 DERP,你需要准备:
一台国内云服务器 (VPS)
: 不需要多高配置,1核 1G 内存、带宽 3-5M 的国内轻量云主机即可,延迟极低。
一个域名
: Tailscale 官方的 DERP 协议强制要求 HTTPS 证书进行身份校验。你需要准备一个子域名(如 derp.yourdomain.com)解析到该服务器的公网 IP。
安全组放行端口
: 在服务器安全组中放行以下两个端口:
443/tcp
(HTTPS 服务端口,用于验证和数据传输)
3478/udp
(STUN 端口,用于辅助客户端获取自身公网 IP,极重要)
为了省去配置 Go 语言环境和申请 SSL 证书的繁琐流程,老周推荐使用社区已经封装好的开箱即用 Docker 镜像(已内置 Let's Encrypt 自动证书申请)。
⚙️ 实操步骤:
安装 Docker
: 确保你的云服务器已经安装了 Docker: curl -fsSL https://get.docker.com | bash systemctl enable --now docker
一键运行容器
: 运行以下命令(将域名和邮箱替换为你自己的,容器会自动帮你申请证书并续期): bash
docker run -d \ --name derp \ --restart always \ -p 443:443 \ -p 3478:3478/udp \ -e DERP_DOMAIN=derp.yourdomain.com \ -e DERP_CERT_MODE=letsencrypt \ -e DERP_EMAIL=your_email@example.com \ fredliang/derper验证是否运行成功
: 在浏览器输入 https://derp.yourdomain.com,如果页面显示: DERP -> Detour Encrypted Routing Protocol,说明中继服务器已经在正常工作了!
最后一步,我们需要告诉 Tailscale 官方控制台:“以后请优先用我自建的这个中继服务器”。
⚙️ 配置步骤:
登录 Tailscale 网页后台,点击Access Control标签页。
在 JSON 配置文件中,找到或者添加 derpMap 段落(通常在配置文件底部):
"derpMap": { // 禁用官方的所有国外中继节点(可选,如果你想完全隔离国外节点) "OmitDefaultRegions": true, "Regions": { "901": { "RegionID": 901, "RegionCode": "my-custom-derp", "RegionName": "My Domestic VPS DERP", "Nodes": [ { "Name": "1a", "RegionID": 901, "HostName": "derp.yourdomain.com", "DERPPort": 443, "STUNPort": 3478 } ] } } }
点击Save保存。
客户端验证
: 在手机或电脑终端重新运行 tailscale netcheck,如果输出结果里出现了你自建的 My Domestic VPS DERP 节点,且延迟在 10ms ~ 30ms 左右,说明大功告成! 此时即使两台内网设备打洞失败,走中继传输文件也能跑满你自建服务器的带宽上限,延迟低到完全没有感知。
自建国内 DERP 是榨干 Tailscale 性能的最后一块拼图。它不仅拯救了高山险阻中的网络连接,更让我们在任何恶劣的网络环境下都有了一条稳定、低延迟的“绿色安全通道”。
赶快给你的服务器装上这枚强心针吧!