tailscale内网穿透之自建的derper服务器,无需域名,无需备案,全流程教程
tailscale的默认中转节点全都在境外,延迟很高,但官方提供了自建中赚服务器的方法,可参阅官方参考文档。 官方提供的教程仅适用于已经有域名的用户搭建,但通常我们所购买的云服务器只提供了一个固定的IP,这就需要在官方提供的教程基础上做一下修改。
第一步:购买云服务器
云服务器尽量买在离自己所在地附近的城市,可大大减少延迟;带宽根据自己的需求选择,仅需要SSH的话1Mbps即可,若有远程桌面的需求,请最少选择4Mbps带宽;服务器的核数最低即可,derper中继对性能要求不高。我购买的是腾讯云的4Mbps带宽的轻量应用服务器,活动时仅需112元/年,腾讯云链接 选择系统Ubuntu 20.04 LTS 等待系统创建完成后,控制台会出现刚刚创建的系统,记录下公网IP地址,后面会用到
安装go环境
在控制台进入服务器控制界面,依次运行以下命令。
安装go
apt install -y wget git openssl curl
wget https://golang.google.cn/dl/go1.21.0.linux-amd64.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.21.0.linux-amd64.tar.gz
将go的路径添加到环境变量
export PATH=$PATH:/usr/local/go/bin
检查go是否安装成功
go version
将添加环境变量输出到profile文件内,这样每次开机可以自动添加环境变量
echo "export PATH=$PATH:/usr/local/go/bin" >> /etc/profile
source /etc/profile
以下命令都要在管理员账户下运行,先进入管理员账户
su -
增加go安装的国内镜像,加快go install的安装速度(国内必要)
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
安装derper
下载derper
go install tailscale.com/cmd/derper@main
进入~/go/pkg/mod/[tailscale]/cmd/derper文件夹内,执行go编译
go build -o /etc/derp/derper
编译完成后要修改cert.go文件,注释以下三行代码。 cert.go文件位于~/go/pkg/mod/[tailscale]/cmd/derper 然后再次进入derper文件夹内编译一次
go build -o /etc/derp/derper
检查derper是否安装成功,成功的话会有derper文件夹
ls /etc/derp
配置derper服务器
生成ssl证书,其中CN=derp.test.com中的网址可以任意填写
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes -keyout /etc/derp/derp.test.com.key -out /etc/derp/derp.tset.com.crt -subj "/CN=derp.test.com" -addext "subjectAltName=DNS:derp.test.com"
生成derper的配置文件
sudo nano /etc/systemd/system/derp.service
将以下内容写入到derp.service文件中
[Unit]
Description=TS Derper
After=network.target
Wants=network.target
[Service]
User=root
Restart=always
ExecStart=/etc/derp/derper -hostname derp.test.com -a :12345 -http-port 33446 -certmode manual -certdir /etc/derp --verify-clients
RestartPreventExitStatus=1
[Install]
WantedBy=multi-user.target
启动derper
systemctl enable derp
systemctl start derp
检验是否设置成功 在启动derp后可以在浏览器中进入https://IP:PORT,如果看到以下网页则说明成功。其中IP是第一步中记录的服务器公网IP,PORT是derp.service中设置的,默认为12345
在服务器上安装taiscale
运行自动安装脚本
curl -fsSL https://tailscale.com/install.sh | sh
启动tailscale并登陆
tailscale up
进入登陆网页登陆tailscale账号
重启derp服务
systemctl daemon-reload
systemctl restart derp
在tailscale中增加derper服务器
打开tailscale的网页console,在access control里的’ssh’之前粘贴以下内容:
"derpMap": {
//"OmitDefaultRegions": true,
"Regions": {
"900": {
"RegionID": 900,
"RegionCode": "test",
"RegionName": "Test Derper",
"Nodes": [
{
"Name": "900a",
"RegionID": 900,
"DERPPort": 12345, //更换为自己的PORT
"IPv4": "192.168.1.1", //这里更换为自己的PI
"InsecureForTests": true,
},
],
},
"1": null,
"2": null,
"3": null,
"4": null,
"5": null,
"6": null,
"7": null,
"8": null,
"9": null,
"10": null,
"11": null,
"12": null,
"13": null,
"14": null,
"15": null,
"16": null,
"17": null,
"18": null,
"19": null,
//"20": null,
"21": null,
"22": null,
"23": null,
"24": null,
"25": null,
},
},
检测是否配置成功
在自己的电脑上输入以下命令:
tailscale netcheck
如果在DERP latency中出现自己刚才设置的服务器Test Derper,即为安装成功。
至此自建derper服务器已全部搭建完成,该教程还参考了B站视频教程,里面有操作视频。