admin 发表于 2024-8-30 05:39:30

使用 Tailscale 和 Docker Compose 部署基于 IP 的 Derp 节点,并实现身份验证。

在国内部署Derp节点可以显著提升连接效果,但无需域名或占用443端口,可使用基于IP的部署方案。为进一步提升安全性并防止滥用,可结合本地Tailscale进行鉴权检测。以下提供可行的配置方案:
**Docker Compose 配置文件:**
```yml
services:
derper:
    image: ghcr.io/yangchuansheng/ip_derper:latest
    container_name: derper
    restart: always
    volumes:
      - /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime:ro
      - ./data/tailscale/tmp:/var/run/tailscale
    ports:
      - "10043:443"
      - "10078:3478/udp"
    environment:
      DERP_VERIFY_CLIENTS: "true" #使用tailscale客户端鉴权
    depends_on:
      - tailscale
tailscale:
    image: tailscale/tailscale:latest
    container_name: tailscale
    restart: always
    hostname: XXX
    network_mode: host#注释本行可使VPS主机不可通过tailscale网络访问
    environment:
      TS_STATE_DIR: /var/lib/tailscale
      TS_USERSPACE: false
    volumes:
      - /dev/net/tun:/dev/net/tun
      - ./data/tailscale/state:/var/lib/tailscale
      - ./data/tailscale/tmp:/tmp
    cap_add:
      - net_admin
      - sys_module
```
**Tailscale 控制台 Access controls 配置:**
```json
    "derpMap": {
      "OmitDefaultRegions": false, // 设置为 true不下发官方derp节点
      "Regions": {
            "900": {
                "RegionID":   900,
                "RegionCode": "XXX",
                "RegionName": "XXX_Beijing",
                "Nodes": [
                  {
                        "Name":             "900",
                        "RegionID":         900,
                        "HostName":         "0.0.0.0", // 你的公网IP地址
                        "IPv4":             "0.0.0.0", // 你的公网IP地址
                        "DERPPort":         10043,
                        "InsecureForTests": true, // 客户端不做校验
                        "STUNPort":         10078,
                  },
                ],
            },
      },
    },
```
容器启动后,使用 `docker logs tailscale` 查看 Tailscale 容器日志,获取 `https://login.tailscale.com/a/xxxxxxxxxxxxxx` 样式的链接,并将其粘贴到浏览器完成授权添加节点。
节点添加后,可在控制台中禁用密钥过期,并备份 `docker-compose.yml`、`./data/tailscale/state` 中的 `tailscaled.state` 和 `tailscaled.log.conf` 文件,以便后续方便迁移。
页: [1]
查看完整版本: 使用 Tailscale 和 Docker Compose 部署基于 IP 的 Derp 节点,并实现身份验证。