Tailscale DERP Server 简明部署教程(纯 IP 方式)
编辑
              
              964
            
            
          2025-07-03
          前言
本篇通过最简单的方式部署一个 Tailscale DERP Server,不需要域名、备案、反代、证书。本教程面向已经有一定 Tailscale 使用经验的用户,不讲解一些原理及基础操作,跟着教程复制粘贴操作即可。
部署 DERP Server
用 docker compose 运行以下即可。
version: '3.8'
services:
  derper:
    image: ghcr.io/yangchuansheng/ip_derper
    container_name: derper
    restart: always
    environment:
      - DERP_ADDR=:13477
      - DERP_VERIFY_CLIENTS=true
    ports:
      - "13477:13477"
      - "13478:3478/udp"
    volumes:
      - /var/run/tailscale/tailscaled.sock:/var/run/tailscale/tailscaled.sock  # tailscale 客户端进程,用于验证客户端身份
如果你选择不启用客户端验证,把 DERP_VERIFY_CLIENTS 设为 false,并删掉 volumes 的挂载即可。但是这样会导致服务可能会被白嫖,建议还是启用。
如果你的服务器没有安装并且登录 tailscale,执行下面两条命令,按提示操作即可。
> curl -fsSL https://tailscale.com/install.sh | sh
> tailscale login
最后,如果你的服务器有防火墙,需要放通 TCP 13477 和 UDP 13478 端口。
配置 ACL
在 Access controls 中,编辑以下内容,然后点击保存。
...
"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 // 去掉域名证书检测
			}],
		}},
	}
...
保存后,最后客户端断开再重新连接一下,以便收到新的配置下发。
调试和验证
有几个命令可以在过程中帮助你调试。
netcheck 命令可以查看具体的 DERP 节点连接状态,以及本机的 NAT 状态等,具体含义解析可以看这里。
> tailscale netcheck
Report:
        * Time: 2025-07-03T07:42:24.617968Z
        * UDP: true
        * IPv4: yes, [REDACTED]
        * IPv6: no, but OS has support
        * MappingVariesByDestIP: true
        * PortMapping:
        * CaptivePortal: false
        * Nearest DERP: Guangzhou
        * DERP latency:
                -  gz: 25.1ms  (Guangzhou)
                - sfo: 174.8ms (San Francisco)
                - lax: 176.8ms (Los Angeles)
                - sea: 199ms   (Seattle)
                - hel: 219.2ms (Helsinki)
status 命令可以查看网络中的机器连接状态,以及连接方式等。如下分别是通过 DERP 连接和直连的情况,relay 为通过 DERP 连接,direct 为直连。
> tailscale status
[REDACTED]   macmini              LeslieLeung@ macOS   active; relay "gz", tx 1546756 rx 47066984
[REDACTED]   macmini              LeslieLeung@ macOS   active; direct [REDACTED]
ping 命令可以通过 tailscale 网络执行 ping。如下则说明通过了自建的 DERP 节点连接。
> tailscale ping [ip/machine]
pong from macmini ([REDACTED]) via DERP(gz) in 81ms
References
Tailscale 基础教程:部署私有 DERP 中继服务器 · 云原生实验室
GitHub - yangchuansheng/ip_derper: 无需域名的 derper
- 1
 - 0
 - 
              
              
  
赞助
                微信赞赏码
               - 
              
              
  
分享