Tailscale 官方的 DERP 中继服务器全部在境外,距离最近的香港节点在国内的网络环境中也不一定能稳定连接。所以,还是很有必要建立自己的 DERP 服务器的。好在,操作起来并不难。
准备工作
安装自定义derp服务
假设你的域名为 xiao.nu,对应的证书为 xiao.nu.crt,私钥为 xiao.nu.key,DERP 对外提供服务的端口为 8443。
一行 docker 命令即可创建 DERP 服务器:
docker run -d \
--name derp \
--restart=always \
-p 0.0.0.0:3478:3478/udp \
-p 0.0.0.0:8443:8443 \
-v /path/to/xiao.nu.crt:/app/certs/xiao.nu.crt \
-v /path/to/xiao.nu.key:/app/certs/xiao.nu.key \
#防止被人白漂,映射一下tailscaled.sock
-v /var/run/tailscale/tailscaled.sock:/var/run/tailscale/tailscaled.sock \
-e DERP_DOMAIN=xiao.nu \
-e DERP_ADDR=:8443 \
-e DERP_CERT_MODE=manual \
#防白漂处方
-e DERP_VERIFY_CLIENTS=true \
fredliang/derper:latest
启动 3478 端口不要修改(服务器如果有防火墙,记得放行3478 UDP 数据),8443 端口(),DERP_ADDR 变量后面的端口好需要与之前的保持一致,但是这里的冒号不能丢。
接下来来到 Tailscale 管理页面 – Access controls 标签页中,将编辑区域的内容清空,并填入以下内容:
{
"derpMap": {
"Regions": {
"900": {
"RegionID": 900,
"RegionCode": "bj",
"RegionName": "Beijing",
"Nodes": [
{
"Name": "xiao.nu",
"RegionID": 900,
"HostName": "xiao.nu",
"DERPPort": 8443
}
]
}
}
}
}
RegionCode 与 RegionName 可以自定义,建议使用纯字母。DERPPort 需要与启动 docker 时设置的端口一致。点击保存之后即可。
当使用 tailscale ping 命令去 ping 一个客户端的时候,就可以看到真正使用上了我们自己的节点。
pong from (...*) via DERP(bj) in 60ms
pong from (...) via ...: in 58ms
在本地终端或者命令提示符中运行 tailscale netcheck
命令检查一下,看你设置的节点是否出现在下方的列表之中。
大神,求分享pdf2mp4,感恩
@love 已经失效了,语音接口无了。
真棒!