惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Hackread – Cybersecurity News, Data Breaches, AI and More
宝玉的分享
宝玉的分享
月光博客
月光博客
爱范儿
爱范儿
阮一峰的网络日志
阮一峰的网络日志
酷 壳 – CoolShell
酷 壳 – CoolShell
Recent Announcements
Recent Announcements
A
About on SuperTechFans
T
The Blog of Author Tim Ferriss
博客园 - 叶小钗
U
Unit 42
aimingoo的专栏
aimingoo的专栏
Y
Y Combinator Blog
Martin Fowler
Martin Fowler
N
Netflix TechBlog - Medium
博客园 - 司徒正美
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
云风的 BLOG
云风的 BLOG
M
MIT News - Artificial intelligence
大猫的无限游戏
大猫的无限游戏
J
Java Code Geeks
V
Visual Studio Blog
腾讯CDC
IT之家
IT之家

动物的光合作用

内网穿透下 NAS 使用 DNS 轮循作为负载均衡 <众安车保>上当指南 - 动物的光合作用 JS 中的 Shebang/Hashbang - 动物的光合作用 我的自建 NAS - 动物的光合作用 React 组件中复用代码的方式 - 动物的光合作用 负载均衡下的前端资源更新策略 - 动物的光合作用 CSS 基于视区的长度单位 - 动物的光合作用 Excalidraw 支持自定义字体 - 动物的光合作用 我用 Docker 部署的一些服务 - 动物的光合作用 CSS 书写模式和逻辑属性 - 动物的光合作用 大量活动页面持续性维护的解决方案 - 动物的光合作用 Mac mini 搭建外网可访问的简易 NAS - 动物的光合作用 React Fragment 添加事件监听? - 动物的光合作用 如何在 React 解决竞态条件 - 动物的光合作用 使用脚本备份 Github 仓库 - 动物的光合作用 高性能 React 应用的几个小技巧 - 动物的光合作用 复习 DOM 事件 - 动物的光合作用 我的博客架构变迁之路 - 动物的光合作用 浏览器和 JavaScript 的一些新特性 - 动物的光合作用 useCallback 的误区 - 动物的光合作用 在 React 中使用事件分离状态 - 动物的光合作用 如何处理 RESTFUL 数据异常导致的前端错误 - 动物的光合作用 基于 Node.js 的 WebFont 解决方案
使用 Peer Relay 提高 Tailscale 的速度
mebtte · 2026-03-13 · via 动物的光合作用

最近 Tailscale 推出了 Peer Relay [1] [2], 当节点间无法直连时, Peer Relay 能够充当隧道加速节点间的连接速度.

在 Peer Relay 之前, 当 Tailnet, 即一个虚拟局域网中, 两个节点无法直连(P2P)时, 会回退到依靠官方 DERP 中继. 但是官方 DERP 服务器数量有限并且拥挤, 最重要的大陆并没有官方 DERP 服务器, 所以只要不是直连, 流量必须要绕海外一圈, 延迟高且速度慢.

当然, 除官方 DERP 外我们可以自建 DERP 服务器, 但是自建 DERP 的门槛有点高, 第一必须公网 IP, 第二必须开放 TCP 端口, 第三需要 TLS 证书, 第四还需要复杂的 ACL 配置, 并且自建 DERP 是不需要鉴权的, 虽然没有安全问题, 但是暴露可能会被第三方滥用.

那 Peer Relay 跟 DERP 有什么不同呢?

  1. DERP 作为独立的服务器是不会加入到 Tailnet 的, 而 Peer Relay 是 Tailnet 中的一个节点, 也就是说 Peer Delay 只有自己的 Tailnet 才能用, 不用担心滥用问题.
  2. DERP 需要公网 IP, Peer Relay 不需要公网 IP.
  3. DERP 使用的是 TCP 协议, Peer Relay 使用的是 UDP 协议.

使用 Peer Relay 也特别简单, 第一步在 access controls 中添加规则:

{
  "grants": [
    {
      "src": ["src"],
      "dst": ["dst"],
      "app": {
        "tailscale.com/cap/relay": []
      }
    }
  ]
}

其中 src 表示哪些节点可以使用 Peer Relay, 比如 tag:abc, dst 表示哪些节点可以作为 Peer Relay, 比如 tag:vps, tailscale.com/cap/relay 用来配置 Peer Relay, 目前没有相关配置项留空即可.

第二步, 在你想要作为中继的节点上运行 tailscale set --relay-server-port=10000, 其中 relay-server-port 指定端口传输 UDP 流量, 可以设置你想要的端口, 需要注意的是端口必须在防火墙中放行.

这就是配置 Peer Relay 的全部步骤了, 这时候模拟非直连场景 Ping 可以看到从 DERP-relayed 变成 Peer-relayed, 延迟也大幅下降.

从 DERP-relayed 变成 Peer-relayed

更多内容可以参考官方文档 https://tailscale.com/docs/features/peer-relay.

使用 Discussions 讨论 Github 上编辑 分享到 X