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

推荐订阅源

G
Google Developers Blog
云风的 BLOG
云风的 BLOG
Google DeepMind News
Google DeepMind News
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 三生石上(FineUI控件)
V
Visual Studio Blog
爱范儿
爱范儿
宝玉的分享
宝玉的分享
人人都是产品经理
人人都是产品经理
大猫的无限游戏
大猫的无限游戏
博客园 - 聂微东
月光博客
月光博客
雷峰网
雷峰网
L
LangChain Blog
Stack Overflow Blog
Stack Overflow Blog
B
Blog RSS Feed
有赞技术团队
有赞技术团队
T
Tailwind CSS Blog
阮一峰的网络日志
阮一峰的网络日志
V
V2EX
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Check Point Blog
N
Netflix TechBlog - Medium
罗磊的独立博客
博客园 - 司徒正美
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
F
Full Disclosure
Security Archives - TechRepublic
Security Archives - TechRepublic
V
Vulnerabilities – Threatpost
H
Help Net Security
博客园 - 【当耐特】
博客园_首页
Microsoft Security Blog
Microsoft Security Blog
小众软件
小众软件
Hugging Face - Blog
Hugging Face - Blog
L
Lohrmann on Cybersecurity
C
Cybersecurity and Infrastructure Security Agency CISA
P
Privacy International News Feed
Blog — PlanetScale
Blog — PlanetScale
C
CERT Recently Published Vulnerability Notes
P
Privacy & Cybersecurity Law Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Cisco Talos Blog
Cisco Talos Blog
K
Kaspersky official blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Cyberwarzone
Cyberwarzone
S
Schneier on Security
S
SegmentFault 最新的问题
C
Cyber Attacks, Cyber Crime and Cyber Security
S
Securelist

动物的光合作用

内网穿透下 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