当前位置: 首页 > news >正文

Tailscale 的工作原理*

Tailscale 的核心原理基于 WireGuard VPN,它实现了端到端加密的 点对点(P2P)连接,但在必要时会通过 中继服务器(DERP) 进行中转。整体来说,它是一个 零配置的 Mesh VPN,让所有设备看起来像是在同一个本地局域网(LAN)内。


Tailscale 的工作原理

1. 设备身份验证

  • 你登录 Tailscale 时,设备会向 Tailscale 控制服务器(Control Server) 进行身份验证。

  • Tailscale 通过 OAuth(比如 Google、GitHub 账户)或自建身份服务器管理设备权限。

2. 设备之间建立 P2P 连接

  • 设备会向 Tailscale 服务器 注册自己的公网 IP 和内网 IP

  • Tailscale 尝试让设备 直接通过 NAT 穿透(NAT Traversal) 建立 P2P 连接:

    • 使用 STUN 协议 发现各设备的真实 IP 和端口。

    • 通过 UDP Hole Punching 技术穿透 NAT,让两个设备直连。

3. 直接通信(如果可以)

  • 如果你的手机和电脑 可以直接连通(同一 WiFi、NAT 开放端口等),它们会使用 WireGuard P2P 直连,不会经过任何中继服务器。

  • 这时,Tailscale 只是帮忙管理密钥和连接信息,但数据流量不经过它的服务器。

4. 走 Tailscale 中继(如果 P2P 失败)

  • 在某些情况下(比如公司防火墙阻挡了 UDP,或某些运营商禁止 P2P 直连),设备 无法直接连接

  • 这时,Tailscale 会使用自己的 DERP(Detour Encrypted Relay for Packets)服务器进行中转:

    • 这些服务器只是 中转加密流量,无法解密数据。

    • 速度可能会稍慢,因为数据要绕行,但仍然比传统 VPN 快。

5. 虚拟 IP 分配

  • 每个设备都会获得一个 100.x.x.x 格式的 Tailscale 内网 IP,你可以像在同一局域网(LAN)一样访问其他设备。

  • 在终端运行 tailscale status,你能看到所有设备的 IP。


Tailscale 和传统 VPN 的区别

特性Tailscale传统 VPN
连接方式P2P 直连(如可用),否则走中继所有流量通过 VPN 服务器
服务器需求只需控制服务器,不中转数据(除非必要)需要 VPN 服务器转发所有流量
安全性端到端加密,服务器无法解密服务器可能解密数据
速度直连时非常快,中继时稍慢受限于 VPN 服务器带宽
配置零配置,自动管理需要手动配置服务器、密钥等

如何实现 Tailscale 的 P2P 连接?

  1. 身份认证:使用 OAuth 登录,Tailscale 服务器认证设备身份。

  2. NAT 穿透

    • STUN 获取公网 IP 和 NAT 类型。

    • UDP Hole Punching 让设备直连。

  3. P2P 连接

    • 设备尝试直接通信(WireGuard)。

    • 失败时,使用 Tailscale DERP 中继服务器。

  4. 端到端加密

    • WireGuard 在设备间建立加密隧道,数据不会被第三方解密。

总结

  • Tailscale 不是一个传统 VPN,而是一个基于 WireGuard 的 P2P VPN

  • 它会优先使用 P2P 直连,如果不行才走中继(DERP)。

  • 服务器只负责身份认证,不转发流量(除非 P2P 失败)。

  • 所有数据都是端到端加密的,Tailscale 服务器无法解密

相关文章:

  • FreeRTOS软件定时器
  • 哈希表(开散列)的实现
  • 公司级项目-AD9914扫频源(一)项目需求
  • 定制开发开源AI智能名片S2B2C商城小程序源码中的产品运营协同进化机制研究
  • 运行Spark会出现恶问题
  • LeetCode算法题(Go语言实现)_36
  • Java学习——day24(反射进阶:注解与动态代理)
  • 海外网红营销新玩法:虚拟红人引爆2025跨境电商市场
  • LeetCode算法题(Go语言实现)_35
  • Java面向对象高级(继承、单例、抽象、接口)
  • MySQL学习笔记九
  • ETPNav:基于演进拓扑规划的连续环境视觉语言导航模型
  • VUE中的路由处理
  • 2025我们关注DeepSeek什么?
  • Ollama部署离线大模型
  • 前端跨页面通信完全指南
  • 利用Python requests库爬虫程序示例
  • Spring IOC 容器加载过程
  • C++实现文件断点续传:原理剖析与实战指南
  • Tips:用proxy解决前后端分离项目中的跨域问题
  • 习近平在中拉论坛第四届部长级会议开幕式的主旨讲话(全文)
  • 超新星|罚丢点球的那道坎,刘诚宇靠自己迈了过去
  • 俄总统新闻秘书:普京提议谈判表明俄寻求和平解决方案意愿
  • 马克龙称法英正与乌克兰商议“在乌部署欧洲军队”
  • 武汉旅游体育集团有限公司原党委书记、董事长董志向被查
  • 马鞍山市原常务副市长黄化锋一审获刑11年,涉案金额三千余万元