tailscale官方支持纯ip部署derp中继服务器
Contents
#网络/tailscale
前言
tailscale提供了官方的derp服务器,但是在国内没有部署,如果家庭内网穿透无法成功的话,有必要自己建立一个中继服务器来保证传输速度和质量。之前很长一段时间tailscale要求使用域名和证书进行部署(现在也没有提供用ip部署的官方文档),域名在国内需要备案,证书还要设置续期,都比较麻烦。网上提供了魔改的版本可以使用纯ip进行docker部署,由于不是官方版本,不知道会不会有什么bug。好在最近官方进行修改,可以直接使用ip和自签名进行部署,无需域名和申请证书,将部署方式记录一下,操作系统为ubuntu 18.04.6。
安装步骤
-
安装go-lang,版本要求1.23以上。
snap install go --classic
-
安装derper。
go install tailscale.com/cmd/derper@latest sudo cp ~/go/bin/derper /usr/bin/
-
安装tailscale并运行后台程序tailscaled, 无需执行tailscale up和登陆验证。
sudo systemctl enable tailscaled sudo systemctl start tailscaled
-
启动derper,ip88.88.88.88替换为自己的vps公网ip。修改derp和stun的默认端口,需要在vps的防火墙放行9003(TCP)和9004(UDP)端口。 执行后自动在当前目录下生成证书。
derper --hostname="88.88.88.88" -certmode manual -certdir ./ -http-port -1 -a :9003 -stun-port 9004 -verify-clients
这个命令会生成一系列信息,用于下一步填入Access controls。
-
在tailscale的控制界面->Access controls添加如下脚本:
"derpMap": { "OmitDefaultRegions": true, //true表示只用自己的节点不用官方节点。 "Regions": { "900": { "RegionID": 900, "RegionCode": "hongkong", "RegionName": "TX Cloud", "Nodes": [ { "Name": "custom", //复制自derper的输出信息 "RegionID": 900, //复制自derper的输出信息 "HostName": "88.88.88.88", //复制自derper的输出信息 "DERPPort": 9003, "STUNPort": 9004, "CertName": "sha256-raw:****", //复制自derper的输出信息 "IPv4": "88.88.88.88", //改成自己的IP },],},}, },
-
使用
tailscale netcheck
查看derp服务器延时。 -
从家里电脑ping使用移动信号的手机。
tailscale ping
,可以看出连接采用的是我们部署的derp服务器进行的中转。
其他说明
- derper运行时候加入了
-verify-clients
,这样可以保证只有自己tailscale内网的设备可以使用derp服务器,避免被其他人白嫖。 - 本次部署使用的是香港的VPS,国内VPS没有尝试过,不知道会不会遇到什么问题,这里有一些讨论。