一元网络论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 135|回复: 0

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

[复制链接]

2万

主题

2万

帖子

8万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
85860
发表于 2024-8-30 05:39:30 | 显示全部楼层 |阅读模式
在国内部署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` 文件,以便后续方便迁移。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|一元网络论坛

GMT+8, 2024-11-10 09:26 , Processed in 0.073072 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表