tailscale内网穿透之自建的derper服务器,无需域名,无需备案,全流程教程

avatar
作者
筋斗云
阅读量:0

tailscale的默认中转节点全都在境外,延迟很高,但官方提供了自建中赚服务器的方法,可参阅官方参考文档。
官方提供的教程仅适用于已经有域名的用户搭建,但通常我们所购买的云服务器只提供了一个固定的IP,这就需要在官方提供的教程基础上做一下修改。

第一步:购买云服务器

  • 云服务器尽量买在离自己所在地附近的城市,可大大减少延迟;带宽根据自己的需求选择,仅需要SSH的话1Mbps即可,若有远程桌面的需求,请最少选择3Mbps带宽;服务器的核数最低即可,derper中继对性能要求不高。我购买的是阿里云的3Mbps带宽的轻量应用服务器,一年99元,如果想要更高画质可选择一年199元的5Mbps带宽服务器。打开链接第一个就是:阿里云链接
    在这里插入图片描述

  • 选择距离自己最近的服务器地址
    在这里插入图片描述

  • 选择系统Ubuntu 20.04 64位
    在这里插入图片描述

  • 其余设置保持默认,点击确认下单。等待系统创建完成后,控制台会出现刚刚创建的系统,记录下公网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站视频教程,里面有操作视频。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!