在多数情况下,如果 Tailscale 的打洞(NAT traversal)成功,就可以直接通过 Parsec 实现远程访问。但在某些复杂网络环境下,打洞可能失败,此时 Tailscale 会自动退回到 DERP(中继)服务器传输。

为什么要自建 DERP 服务器?

Tailscale 官方的 DERP 节点遍布全球,但并不包含中国大陆节点,这会导致国内用户在打洞失败时通过官方中继连接时延较高。因此,建议自建 DERP 服务器,以改善国内网络环境下的远程连接体验。

快速部署(Docker)

使用镜像 javaow/tailscale-derp,无需域名,部署非常简单。

1. 启动容器

在你的国内服务器上执行以下命令:

docker run -d --name tailscale-derp -p 36666:36666 -p 3478:3478/udp --restart=always javaow/tailscale-derp

容器将自动监听 DERP 的 HTTP 和 STUN 端口。

2. 测试访问

在浏览器中访问 https://<你的服务器IP>:36666,显示如下即成功

3. 添加自建 DERP 节点到 Tailscale

进入 Tailscale 管理后台,编辑网络设置中的 DERP 节点配置:

"derpMap": {
		"OmitDefaultRegions": false,
		"Regions": {
			"999": {
				"RegionID":   999,
				"RegionCode": "can",
				"RegionName": "Guangzhou",
				"Nodes": [
					{
						"Name":             "derp.selfhost",
						"RegionID":         999,
						"HostName":         "127.0.0.1",
						"DERPPort":         36666,
						"InsecureForTests": true,
					},
				],
			},
		},
	},
  • 添加 derpMap 设置项;

  • 添加你的服务器信息;

  • HostName 填写服务器公网 IP;

  • 确保已开启防火墙端口 366663478/udp

4. 测试

在终端上输入下面命令,即可看到已搭建的 derp 节点

tailscale netcheck