Tailscale中继节点(DERP服务器)主要目的是在无法建立直接P2P连接时,通过一个低延迟、高可用的中继服务器来转发流量,从而显著改善国内网络环境下Tailscale的连接质量和稳定性
一、 部署前的核心准备与环境要求
自建DERP中继节点前,需要明确几个关键点。首先,您需要一台具有公网IP地址的服务器,这是最传统和稳定的方案。
其次,根据部署方式的不同,对域名和证书的要求也不同:
使用域名部署:需要拥有一个已备案的域名,并为其申请SSL证书(例如通过1Panel面板自动申请或使用阿里云等提供的免费证书);这种方式兼容性最好。
使用公网IP部署:这是Tailscale官方新支持的特性,不需要域名和备案,但需要自行生成包含IP地址信息的自签名证书
在系统环境上,推荐使用Linux发行版,如Debian或Ubuntu。硬件配置要求不高,1核512MB内存即可运行,但网络带宽和稳定性更为关键
二、 两种主流部署方式
您可以根据自身条件,在以下两种方式中选择其一。
方式一:使用公网IP地址部署(无需域名) ,会有证书验证问题,此处不做介绍。
方式二:使用容器化部署(推荐,尤其适合NAT主机) 容器化部署更为简洁和标准化,能屏蔽环境差异。您可以使用他人预构建的专门支持IP部署的镜像。
1、安装容器运行时:在服务器上安装Docker或Podman
2、编写Compose配置文件:创建一个docker-compose.yml文件,指定镜像、端口映射和环境变量。关键端口需要映射:将容器内的**443端口(TCP+UDP)和3478端口(UDP)**映射到主机的高位端口(如50443和53478),因为NAT主机通常只能使用映射端口
services:
derper:
image: ppcelery/derper:latest
restart: unless-stopped
dns:
- 8.8.8.8
logging:
driver: "json-file"
options:
max-size: "10m"
volumes:
- /root/nginx/letsencrypt/live/npm-1/fullchain.pem:/etc/live/derper.xiaoxiaowangcai.com.crt:ro
- /root/nginx/letsencrypt/live/npm-1/privkey.pem:/etc/live/derper.xiaoxiaowangcai.com.key:ro
ports:
- 3478:3478/udp
- 12444:12444
entrypoint: /app/derper -c=$HOME/derper.conf --hostname=derper.xiaoxiaowangcai.com -a :12444 -stun -certdir=/etc/live -certmode=manual3、配置与启动:在环境变量中设置DERP_VERIFY_CLIENTS=true可以开启客户端验证,防止中继服务被他人滥用。然后使用docker-compose up -d命令启动容器。
三、 防火墙与Tailscale控制台配置
无论采用哪种部署方式,确保服务器的防火墙和安全组规则开放了必要的端口:TCP 123443(或您自定义的HTTPS端口)和UDP 3478
服务启动后,您需要将自建的中继节点信息添加到Tailscale的管理控制台(Admin Console)中。在Access Controls的derpMap部分,添加一个新的Region(例如ID设为901),并在Nodes中填写您服务器的公网IP(或域名)和端口
配置完成后,Tailscale客户端会自动探测并优先使用延迟最低的节点,包括您自建的服务器。
通过以上步骤,您就可以成功搭建一个专属的Tailscale中继节点,有效解决因官方海外节点延迟过高导致的连接缓慢或失败问题,提升整个虚拟局域网的通信质量。