本教程推荐使用debian,里面的域名、端口等注意改成自己想要的,并前后保持一致。
1. 首先搭建好go环境
wget -c https://go.dev/dl/go1.20.6.linux-amd64.tar.gz
tar -xzf go1.20.6.linux-amd64.tar.gz -C /usr/local
编辑 /etc/profile 文件加入下面几行:
export PATH=$PATH:/usr/local/go/bin
export GOROOT=/usr/local/go
export GOPATH=/home
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOROOT/bin
export PATH=$PATH:$GOPATH/bin
然后测试一下是否安装好了:
source /etc/profile
go version
2. 准备工作
假设你的域名是 tail.qq.com,把 fullchain.cer 改名为 tail.qq.com.crt ,与 tail.qq.com.key 放在一个文件夹里面,比如 /etc/nginx/ssl/
中继服务需要开放两个端口,一个udp一个tcp,默认是3478和443,可以自定义,比如这次我们把443换成11443(3478一般不会被占用吧)。
3. 安装derper
go install tailscale.com/cmd/derper@main
测试一下是否正常没报错
derper /?
没问题的话先启动试一下:
derper -c=/root/derper.conf -hostname=tail.qq.com -a :11443 -http-port -1 -certmode manual -certdir /etc/nginx/ssl -stun
现在访问 https://tail.qq.com:11443,如果正常会出现 This is a Tailscale DERP server 页面。
4.收尾工作
正常使用的话需要守护一下进程,比如用supervisor,增加一个常驻服务。
安装supervisor并增加一个服务:
apt -y install supervisor
nano /etc/supervisor/supervisord.conf
[program:derper]
priority=1
directory=/home/bin
command=/home/bin/derper -c=/root/derper.conf -hostname=tail.qq.com -a :11443 -http-port -1 -certmode manual -certdir /etc/nginx/ssl -stun
autostart=true
autorestart=true
redirect_stderr=true
启动服务
supervisorctl update
supervisorctl restart derper
最后去官网配置文件,访问 Tailscale
可以参考下面,全部复制粘贴改几个地方就行,其中 “OmitDefaultRegions”: true 代表只走自己的中继服务器。
{
"Groups": {
"group:example": ["[email protected]", "[email protected]"],
},
"Hosts": {
"example-host-1": "100.100.100.100",
},
"DERPMap": {
"OmitDefaultRegions": true,
"Regions": {
"900": {
"RegionID": 901,
"RegionCode": "mytail",
"RegionName": "mytail",
"Nodes": [{
"HostName": "你的域名",
"Name": "1",
"RegionID": 900,
"IPv4": "域名的IP",
"DERPPort": 11443,
}],
},
},
},
"ACLs": [
{"Action": "accept", "Users": ["*"], "Ports": ["*:*"]},
],
}
最后,因为自建的时常会崩(不知道现在怎么样了),可以做个定时重启服务。另外客户端还可以用计划任务每隔几分钟就ping一下其他主机,保持打洞状态。