Chen Di's Blog

Tailscale丨使用容器方案自建 DERP 节点


前提

  • 服务器的 80 443 端口未被占用
  • 已经安装好 docker
  • 做好域名解析

申请证书

docker run -it --rm --name certbot -v "/etc/letsencrypt:/etc/letsencrypt" -v "/var/lib/letsencrypt:/var/lib/letsencrypt" -p 80:80 certbot/certbot certonly

启动 DERP

docker run --restart always \
  --name derper -p 443:443  -p 3478:3478/udp \
  -e DERP_CERT_MODE=manual \
  -v /etc/letsencrypt/live/example.com/fullchain.pem:/app/certs/example.com.crt \
  -v /etc/letsencrypt/live/example.com/privkey.pem:/app/certs/example.com.key \
  -e DERP_ADDR=:443 \
  -e DERP_STUN=true \
  -e DERP_DOMAIN=example.com \
  -e DERP_HTTP_PORT=-1 \
  -d ghcr.io/fredliang44/derper:latest

配置 DERP

登录控制台:https://login.tailscale.com/admin/acls

{
...
//添加如下:
	"derpMap": {
		"OmitDefaultRegions": false, // 是否忽略默认的服务器,在测试时可以设为 true 方便观察。
		"Regions": {"902": {
			"RegionID":   902,
			"RegionCode": "hongkong", // 服务器区域代码,随便填
			"RegionName": "self-hosted", // 服务器名字,随便填
			"Nodes": [{
				"Name":     "1",
				"RegionID": 902,
				"HostName": "example.com", // 域名,不能错。
				"DERPPort": 443, // 端口,这里用的是 443
			}],
		}},
	},
}

查看状态

tailscale netcheck
tailscale status
sudo tailscale debug derp hongkong