UP | HOME

🔙回到目录 | 🔻 本网页更新于 [2025-11-18 周二 11:13]

自建免域名Tailscale DERP Server的补充

Tailscale官方中介服务器不在大陆,所以我们可以租用云服务器然后自建一个,提供低延迟服务。

自建免备案防偷 Tailscale 国内中继(DERP)教程

Tailscale DERP Server 简明部署教程(纯 IP 方式)

以上两篇文章已经说得很全面了,我这里补充几个萌新可能遇见问题的地方(以第二篇文章为例)。

1. 端口设置

docker-compose.yml 中,需要设置连接的端口:

services:
  derper:
    environment:
      - DERP_ADDR=:13477
    ports:
      - "13477:13477"
      - "13478:3478/udp"

这里的三个 13477 是可以自己填的,随便怎么设置,只要保持一致,且在服务器防火墙上开通对应端口的 tcp 就好。 13478 也可以自定义,不过需要开通对应端口的 udp 权限。 3478/udp 别动,是绑定死的docker内端口。

如果发现自定义了端口也无法连接,考虑更换更高位的端口,有的国内云厂商会一刀切封禁低位端口。

2. ACL规则

derpMap 开头的那段规则存放的位置是在最底部,不可直接覆盖,具体位置如下:

{
//……上略
//Test asccess rules every time they're saved.
//"tests": [
//{
// ……
//},
//],
//直接复制,粘贴在上面这段话的下面
"derpMap": {
        "OmitDefaultRegions": false,
        "Regions": {"900": {
            "RegionID":   900,
            "RegionCode": "gz", // 按需要填
            "RegionName": "Guangzhou", // 按需要填
            "Nodes": [{
                "Name":      "myderper", // 按需要填
                "RegionID":  900,
                "HostName":  "IP/HOST", // 改成自己的 IP/域名
                "DERPPort":  13477,
                "STUNPort":  13478,
                "CanPort80": false,
                "InsecureForTests": true // 去掉域名证书检测
            }],
        }},
    }
}

3. 使用peer-relay

参考这篇博客 还有另一篇博客,但是其中ACL的部分需要根据实际修改。

首先是这部分,按照官方文档的说法,需要允许其他设备把中转设备当成relay:

{
  "grants": [
    {
      "src": ["tag:us-east-vpc"], // Devices that can be accessed through the peer relay
      "dst": ["tag:us-east-relays"], // Devices functioning as peer relays for the src devices
      "app": {
        "tailscale.com/cap/relay": [] // The relay capability doesn't require any parameters
      }
    }
  ]
}

根据我们的实际,可以把 src 换成星号,以便所有设备都尝试来访问peer-relay。 注意 dst 需要是tailscale内网的IP

然后我们需要允许设备间相互访问,按照allow-all的文档,是这样:

{
  "grants": [
    {
      "src": ["*"],
      "dst": ["*"],
      "ip": ["*"]
    }
  ]
}

最终合并的结果:

    "grants": [
        /* ① srv 允许用 celay 作为中继 */

        {
            "src": ["*"],
            "dst": ["100.109.5.42"],
            "app": {"tailscale.com/cap/relay": []},
        },
        {
            "src": ["*"],
            "dst": ["*"],
            "ip":  ["*"],
        },
    ],

© Published by Emacs 31.0.90 (Org mode 10.0-pre) | RSS 评论