Tailscale无域名搭建derp中继节点
系统信息
阿里云 Debian 12 (64-bit)
Tailscale
1.90.8
tailscale commit: edc9d22455eb839bd411d1b0555da979d1fb4d75
long version: 1.90.8-tedc9d2245-ged5c52ee2
other commit: ed5c52ee2e5854e3bf8c3c06229198b17f0d3a77
go version: go1.25.3
安装tailscale
- 如果不需要开启
--verify-clients防止被蹭就无需安装tailscale
Install Tailscale on Linux
启动
- 因为tailscale和阿里云有dns冲突问题所以不能直接
sudo tailscale up
1
|
sudo tailscale down && sudo tailscale up --netfilter-mode=nodivert --accept-dns=false
|
安装golang
1
|
wget https://go.dev/dl/go1.25.4.linux-amd64.tar.gz -O ./go.linux-amd64.tar.gz
|
1
|
rm -rf /usr/local/go && tar -C /usr/local -xzf go.linux-amd64.tar.gz
|
给当前用户添加golang环境变量
末尾添加
1
|
export PATH=$PATH:/usr/local/go/bin
|
当即生效
能显示go version go1.25.3 linux/amd64表示环境变量添加正常
配置golang代理
1
|
go env -w GOPROXY=https://goproxy.cn,direct
|
安装derper
1
|
go install tailscale.com/cmd/derper@main
|
拷贝derper到任意目录
1
|
sudo cp ~/go/bin/derper /usr/local/go/bin/
|
创建目录
生成ip证书 DERP_IP为自己ip
1
2
3
4
5
|
DERP_IP="1.1.1.1"
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes \
-keyout cert/${DERP_IP}.key \
-out cert/${DERP_IP}.crt \
-subj "/CN=${DERP_IP}" -addext "subjectAltName=IP:${DERP_IP}"
|
使用Systemd运行derper
创建 Systemd 服务文件
1
|
sudo vim /etc/systemd/system/derper.service
|
填入配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
[Unit]
Description=Tailscale Derper Relay Server
After=network.target
[Service]
# Type=simple 是最常用的类型,适用于大多数服务
Type=simple
# **** 替换为您的 derper 绝对路径和参数 ****
# ExecStart 必须使用绝对路径
# 注意:我们这里不需要 sudo,因为 systemd 默认会以 root 权限运行服务
ExecStart=/usr/local/go/bin/derper --hostname="1.1.1.1" -certmode manual -certdir /home/ecs-user/cert -c /home/ecs-user/cert/derper.key
# 工作目录,确保相对路径(如果使用)能找到文件
WorkingDirectory=/home/ecs-user
# 可选:如果服务失败,自动重启
Restart=always
RestartSec=5
# 可选:降低权限运行(如果不需要 root 权限)
# User=derperuser
# Group=derpergroup
[Install]
WantedBy=multi-user.target
|
重新加载 systemd 配置
1
|
sudo systemctl daemon-reload
|
启动服务
1
|
sudo systemctl start derper.service
|
检查服务状态 (查看日志):
1
2
|
sudo systemctl status derper.service
sudo journalctl -u derper.service -f
|
设置开机自启 (持久化):
1
|
sudo systemctl enable derper.service
|
- 需要打开服务器TCP的80、443端口,UDP的3478端口
- 访问浏览器可以看到derp页面就代表部署成功了
在tailscale控制台添加配置
1
|
https://login.tailscale.com/admin/acls/file
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
"derpMap": {
//"OmitDefaultRegions": true, //加入这个会只用自己的节点
"Regions": {
"901": {
"RegionID": 901,
"RegionCode": "hz",
"RegionName": "阿里云",
"Nodes": [
{
"Name": "901a",
"RegionID": 901,
"HostName": "aaa", //这个随便写
"IPv4": "1.1.1.1", //改成自己的IP
"InsecureForTests": true,
},
],
},
},
},
|
现在在节点终端运行tailscale netcheck可以看到自己部署的derp服务器
References