My Documents · 2025/04/23 0

使用IP方式docker自建阿里云tailscale DERP中继服务加速国内访问 异地组网内网穿透

最近tailscale官方节点越来越慢了,之前上传种子到家里的nas上也挺快的,现在页面都要刷好久才能打开。。。

于是乎只能从公司的阿里云轻量服务器自建一个DERP中继服务,通过国内阿里云服务器进行流量中转,来加速网络。

使用中继效果对比,可以直接远程桌面到公司的电脑,丝滑无卡顿。在公司访问家里nas的服务也是秒开。

首先:登录云服务器拉取镜像

新建docker-compose.yaml内容如下

services:
  derper:
    image: ghcr.io/yangchuansheng/ip_derper:latest
    container_name: derper
    restart: always
    ports:
      - "11223:11223"
      - "5689:5689/udp"
    environment:
      - DERP_ADDR=:11223
      - DERP_CERTS=/app/certs
      - DERP_VERIFY_CLIENTS=false # 关闭验证

然后运行 docker compose up -d 启动

然后登录到Tailscale Access Controls 修改ACL

	// 添加DERP服务
	"derpMap": {
		"OmitDefaultRegions": true,
		"Regions": {
			"901": {
				"RegionID": 901,
				// 编号900-999依次递增
				"RegionCode": "CN-QD",
				// 区域代码,会在 `tailscale netcheck` 显示
				"RegionName": "中国-青岛",
				// 区域名称,会在 `tailscale netcheck` 显示
				"Nodes": [
					{
						"Name":     "CN-QD",
						"RegionID": 901,
						// 对应上方ID
						"HostName": "18.19.2.1",
						// DERP服务IP/域名
						"DERPPort": 11223,
						// DERP服务端口与部署时一致
						"InsecureForTests": true, // 必须为true,以跳过证书验证
					},
				],
			},
		},
	},

具体位置如图

保存后在装有 Tailscale 的机器上使用tailscale netcheck命令可查看,节点已经生效。

使用正常,虽然没有UDP直连,8.4ms的中继延迟也可以接受,凑合用。

这里直接采用的IP+端口方式进行连接,阿里云服务器上没有安装tailscale,没有进行验证,容易被扫,所以如果只是单一账号组网建议还是进行客户端验证,如果是多账号比如家里一个公司一个,那可以不用进行客户端验证,服务器做好防护就可以。

参考资料:
构建你的私有网络:Tailscale 节点搭建教程
自建免备案防偷 Tailscale 国内中继(DERP)教程 - Sleepstars 的记录室

如果部署在openwrt或者nas上,用来实现整个内部局域网,可以参考:
极空间NAS docker部署tailscale远程异地组网映射内网IP实现内网穿透 - N把刀