使用 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]