DERP
只是一些个人踩完坑部署完之后的碎碎念

随着第二台 DERP 中继服务器的启用,服务域名全部迁移到了对应的三级域名,原有的二级域名(即当前站点derp.brightsu.cn)闲置。

当前运行的DERP服务器

地域 节点名 峰值带宽 线路
上海 CN-SHA1 200M 腾讯云BGP
CN-SHA2 200M 阿里云BGP
CN-SHA0 100M 电信CN2
香港 HK-HKG1 50M 电信CN2+联通CUG+移动CMI
HK-HKG2 50M
HK-HKG3 30M
台北 TW-TPE1 30M 环球观光线路
东京 JP-TYO1 300M 环球观光线路

最初的目的是为了实现家与宿舍网络的互联。一开始使用 Zerotier 的服务并部署了 Moon,然而其免费套餐仅支持10台设备无法满足需求,因此转而使用 TailScale 进行了组网。与 Zerotier 类似,TailScale 也没有境内的中继服务器,一测试动辄500ms的延迟实在一言难尽,因此转而自行部署 DERP 服务。

2025.4.11:得知腾讯云上线了200M峰值的轻量应用服务器遂入手,参考自建 Tailscale 的 DERP 节点一文很快就完成了无 Docker 安装(记得换Go国内源)。注意除了自备SSL证书的文件名要求<hostname>.crt,对应密钥文件也要改成<hostname>.key,可以软链接到现有文件。默认占用443端口影响同服务器的网站服务,但使用常用的nginx反向代理配置时,虽然 DERP 在线,但连接上的节点之间 ping 不通,tailscale netcheck 显示无法连接到 DERP 服务器。经过搜索使用 Derp-China 的 nginx 反代配置可以成功解决反代HTTPS流量还是有各种玄学问题,索性直接用非443端口了。

2025.4.14:新增了一台成都电信的 Windows 机器,从官网下载 Go 的 msi 安装包后按照上面的教程同样能完成部署。由于是NAT机器没有独立公网IP,需要在启动脚本中指定另外的DERP端口和STUN端口:-a :<DERP端口> -http-port -1 -stun-port <STUN端口>其实离太远一般也用不上,纯属看不得它吃灰随便跑点东西罢了。

2025.4.15:给香港和台北的机器也装上了,顺手的事

2025.12.13:新增了一台阿里云的服务器做中继,发现Tailscale使用的100.64.0.0/10网段与阿里云的内网DNS服务器、软件源等冲突,参考解决阿里云和 Tailscale 的 100 网段冲突的问题一文,tailscale set --netfilter-mode=nodivert得以解决。

总之这么一番折腾下来,现在基本能够实现上海市内跨运营商(电信-联通)8ms左右延时了……