Tailscale 自建 DERP 中转

前言

官方文档,链接
DERP 指的是中转服务器
需要先安装 golangInstruction URL

步骤

1、安装

如果此步无法进行,请使用goproxy
go install tailscale.com/cmd/derper@main

2、启动

可能需要sudo,a参数自定义地址(端口)
截止v1.18.2,自定义端口貌似有bug
derper --hostname your-hostname.com -a ":8080"

3、配置

打开 Tailscale 控制台,找到Access Controls,编辑配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// Access Controls原来的部分
// ...
// ...
// 在原有部分下面添加下面这部分代码
"derpMap": {
// 此行可选,设定为true将会忽略tailscale官方中转站
"OmitDefaultRegions": true,
// Region ID必须在900-999之间
"Regions": { "900": {
"RegionID": 900,
"RegionCode": "myderp",
"Nodes": [{
"Name": "1",
"RegionID": 900,
"HostName": "your-hostname.com",
// 自定义的端口
"DERPPort": 8080
}]
}}
}

4、重启tailscale client

1
2
tailscale down
tailscale up

推荐操作

1、DERP中转的自启动

创建systemd配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# /etc/systemd/system/derper.service
[Unit]
Description=Tailscale Derper Service
After=network.target

[Service]
Type=simple
User=root
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/derper -c /etc/derper/derper.json --hostname DERPHOSTNAME -stun

[Install]
WantedBy=multi-user.target

2、DERP Server保持更新

为了保持与client相同版本,使用以下命令更新derp server
go install -u github.com/tailscale/cmd/derper@main