配置 Tailscale Peer Relay
tailscale peer-relay relay-server NAT DERP在某些网络环境中(如严格 NAT 或防火墙限制),Tailscale 无法建立设备间的直连,会自动回退到使用其全球分布的 DERP 中继服务器。虽然 DERP 可靠,但可能引入较高延迟,影响大文件传输或高清视频串流等高吞吐场景。
Tailscale 自 v1.86 起支持 Peer Relay 功能:允许你指定 tailnet 内的某台设备作为中继节点,在无法直连时优先使用该节点转发流量,从而获得更低延迟与更高带宽。
本文将手把手教你完成 Peer Relay 的完整配置。
快速配置(推荐新手)
如果你从未修改过 ACL 策略(即当前策略仍为默认的“所有设备互访”模式),可以直接使用以下完整配置覆盖现有策略,无需单独执行步骤一和步骤三:
{
"tagOwners": {
"tag:relay-server": ["autogroup:admin"]
},
"grants": [
// 1. 允许所有节点互访(原本的规则)
{
"src": ["*"],
"dst": ["*"],
"ip": ["*"]
},
// 2. 核心:授权 tag:relay-server 节点作为 Peer Relay 运行
{
"src": ["*"],
"dst": ["tag:relay-server"],
"app": {
"tailscale.com/cap/relay": []
}
}
],
"ssh": [
{
"action": "check",
"src": ["autogroup:member"],
"dst": ["autogroup:self"],
"users": ["autogroup:nonroot", "root"]
}
]
}
✅ 此配置保留了默认的全通行为,同时安全地启用了 Peer Relay 能力。
🔁 若你已有自定义 ACL 规则,请勿直接覆盖,应按后续分步指南手动添加。
前提条件
- Tailscale 账户具备 Owner / Admin / Network Admin 权限。
- 至少一台设备运行 Tailscale 1.86+,且操作系统非 iOS 或 Apple TV。
- 该设备需具备公网可达性(或至少对 tailnet 内其他设备可访问)并拥有稳定网络带宽。
- 需开放一个 UDP 端口(例如
40000)用于中继流量。
步骤一:在 ACL 策略中定义新标签 tag:relay-server(仅当未使用快速配置时)
在 Tailscale 控制台的 ACL 策略编辑器(JSON 模式)中,添加以下内容:
{
"tagOwners": {
"tag:relay-server": ["autogroup:admin"]
}
}
这表示只有管理员组可以为设备分配 tag:relay-server 标签。
步骤二:为中继节点打上 tag:relay-server 标签
- 访问 Machines 页面。
- 找到你计划用作 Peer Relay 的设备,点击右侧 “…” → “Edit ACL tags…”。
- 在 Add tags 下拉框中选择
tag:relay-server。 - 点击 Save 保存。
✅ 建议选择具有公网 IP 或位于稳定网络环境(如云服务器、家庭主路由)的设备作为中继节点。
步骤三:授权所有设备使用该中继节点(仅当未使用快速配置时)
在 ACL 策略的 grants 数组中添加以下规则:
{
"src": ["*"],
"dst": ["tag:relay-server"],
"app": {
"tailscale.com/cap/relay": []
}
}
⚠️ 注意:虽然此处
src使用了*(方便测试),但在生产环境中建议限定为特定标签或 IP 段(如tag:office),避免不必要的流量绕行。
步骤四:在中继节点上启用 Peer Relay 功能
登录到已打标签的中继设备,执行以下命令启用 UDP 40000 端口作为中继端口:
tailscale set --relay-server-port=40000
同时,请确保该设备的防火墙或安全组 放通 UDP 40000 入站流量(来源为 tailnet 内其他设备)。
步骤五:验证 Peer Relay 是否生效
选择两台原本走 DERP(即无法直连)的普通客户端设备(不要用中继节点本身,因其可能有公网 IP 能直连),执行:
tailscale status | grep peer-relay
若输出类似如下内容,说明已成功通过 Peer Relay 通信:
100.x.x.x my-device user@ linux active; peer-relay y.y.y.y:40000:vni:1, tx ... rx ...
其中 y.y.y.y:40000 即为你配置的中继节点地址和端口。
你也可以使用 tailscale ping <目标设备> 观察连接路径是否变为 peer-relay。
总结
通过配置 Tailscale Peer Relay,你可以在不依赖外部 DERP 服务器的情况下,利用自有设备构建低延迟、高吞吐的内网中继通道,特别适合:
- 企业内网设备访问
- 大文件同步(如 rsync、Syncthing)
- 局域网媒体串流(如 Jellyfin、Plex)
📚 参考文档:Tailscale Peer Relays 官方指南
如需进一步优化策略安全性,建议结合 IP Sets、设备标签和最小权限原则精细化控制中继访问范围。