部署tailscale非443端口derper中继

准备工作

  • 一台拥有公网 IP 的服务器
  • 一个域名

服务器准备工作

安装 Golang ,版本最好为1.20以上

安装Caddy2

进入网站了解安装方式:caddy2中文网

Caddyfile配置

caddy的作用仅用于申请tls证书
证书目录:/var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/example.com

example.com {
  tls 邮箱
  respond "Hello, world!"
  }
}

安装 tailscale

curl -fsSL https://tailscale.com/install.sh | sh

启动并登录

tailscale up

安装 derper 服务

go install tailscale.com/cmd/derper@main

配置derper service

[Unit]
Description=derper service
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
RestartSec=1
User=root
ExecStart=/derper路径/derper --hostname example.com -a ":8082" -http-port -1 --verify-clients -certdir /var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/example.com -certmode manual -stun

[Install]
WantedBy=multi-user.target

启动derper: service derper start

判断derper是否启动成功

浏览器访问example.com:8082, 如果出现以下画面则部署成功
example.com:8082

修改tailscale配置

将tailscale的配置增加为自己的中继节点

{
// 已有配置
...
// 中继节点配置
"derpMap": {
        // 禁用官方中继服务器
        //"OmitDefaultRegions": true,
        "Regions": {"900": {
            "RegionID":   900,
            "RegionCode": "myderp",
            "Nodes": [{
                "Name":     "1",
                "RegionID": 900,
                "HostName": "example.com",
                // 自定义端口
                "DERPPort": 8082,
            }],
        }},
    },
}

验证

重启每台机器的tailscale,然后使用tailscale分配的ip访问,能够访问则部署成功