我的 Tailscale 方案分享

dcsuibian 2026-07-29 00:06 1

上篇:自建 NetBird 稳定吗?


前情回顾:WireGuard 不够方便,于是我自建了 NetBird 。


WireGuard 的问题:



  • 公钥得手动分发

  • DDNS 支持不够好(只在建立连接时解析一次域名,后续 IP 更新感知不到)


NetBird 整体给我的感觉都不错(到现在也是),但是目前还是发现两个问题:



  • 一个是 NetBird 的手机客户端好像没跟上版本,很古老

  • 一个是自建 NetBird 中招了 Next.js 的漏洞,而自建 BUG 修复没有官方那么及时


因此,后续在跟 AI 迭代几轮后,我还是选择了 Tailscale 。


选 Tailscale 的原因:



  • 我家网络状况还可以,至少从速度上看是打洞成功的

  • 不想再自建服务器了,简单省钱

  • 了解到了 Tailnet Lock 的存在


以下是我家设备网络的物理拓扑图。


image-20260728232547507


左边是我目前工作地方租的房,右边是老家(放 NAS )的地方。我其实需求就是想在工作的地方访问老家的 NAS ,也可以 RDP 到我的二奶机。在外的话,手机和笔记本也能访问家里的局域网。同时我还想尽量少装客户端。


多的我就不说了,直接放图(做完以后就是这样的):


image-20260728233353516


说点我觉得干货的内容吧:




  1. 我使用了 Tailscale 官方的Tailnet Lock功能。简单说就是这个在很大程度上避免了(万一) Tailscale 官方恶意地将节点插入到我们的网络里。

    • 仍然存在 TOFU ( Trust On First Use ) 问题。

    • Tailscale 官方的客户端是部分开源。




  2. 我的两台 Windows Server 是签名节点,同时也负责流量的转发。这个有几个细节要讲:

    • 需要在路由器里加静态路由,也就是对面的网络和中间的100.64.0.0/10加进去,这样 PC1 、PC2 的流量就会先交给路由器,然后交给 Windows Server ,然后再转发

    • 由于 Windows 的限制,不能用 ping 检测连通性,但是 Tcping 可以

    • 我的 Windows Server 采用的是 NAT 方案(另一个不能 ping 的原因)



  3. 需要注意,默认情况下有 Key Expiry ,这个一定要在控制台关掉:设置成不过期

  4. 控制台里 subnet route 要手动 approve

  5. [这个跟网络无关] 群晖 NAS 默认是开启硬盘休眠的,要关掉。要不然有时候 smb 访问的时候就突然卡一会儿。


最终效果:


我这里是嘉兴和杭州,都是中国电信,从速度看打洞是成功的,延迟很低,带宽的话基本就是出口上限( 40~50Mbps )。

最新回复 (17)
  • w568w 07-29 01:21
    1
    也许试试 EasyTier 呢。它是网状 VPN ,运行 OSPF 自动选择路由,所有节点默认既是客户端又是中转服务器,不需要任何手动配置
  • hxdyxd 07-29 04:25
    2
    wg 配置太繁琐了,对动态 ipv6 的支持也不好
    感觉 wg 更适合站到站场合,配好一次再也不会改了
  • shenzhenhk 07-29 07:03
    3
    OP 忘了说一件重要的事:wg 对配置要求低,哪怕内存只有 128MB 的路由器上也能部署。tailscale 肯定不行
  • everfly 07-29 07:46
    4
    wireguard 可以完全自部署,灵活方便,搭配其他第三方开源解决方案几乎可以适配所有场景。tailscale 相当于 saas ,不支持自部署,数据几乎全要经过它自己的网络,而且并非完全开源。
  • 514146235 07-29 09:42
    5
    wg ddns 没有问题啊,一直在用
  • dcsuibian 楼主 07-29 09:46
    6
    @w568w 有考虑过,上个帖子第一条回复也是 EasyTier ,也有考虑两个都跑。
    目前的顾虑主要是 EasyTier 的项目体量比较小,我怕后续维护可能会成问题(比如因为不可抗力之类的),还在观察中
  • mywaiting 07-29 09:48
    7
    我自己线上都是使用 wireguard 组网的,无比方便快捷

    网上说 wg 不方便都是使用姿势不对的

    0 、根据自己网络一次设置好所有节点 cname 最好一次设置几十个节点
    1 、根据自己网络规模一次过生成网络节点的全部密钥/cname 及对应的 wg0.conf

    剩下的就是 init 一个机器,复制粘贴对应的 wg0.conf 并且去域名管理修改对应的 cname 指向 IP 即可

    唯一的痛点是需要至少有一个节点是公网 IP 至于 IP v4/v6 随便吧,反正都能通,要是有多个公网节点,那等于是你自己搭了对应的 tailscale derp (概念上类似),连上其中一个即可接入整个网络

    如果是家庭宽带,基本都有分发对应的 v6 地址,自己做个 cname -> ddns 转发即可
  • susandownes 07-29 09:58
    8
    同城同网体验还可以,跨网/同省同网异市(尤其是移动)到晚高峰拉完了
  • Labope03 07-29 11:10
    9
    如果你有公网 IP ,建议在这公网 IP 下自建 headscale 和 derp
    tailscale 对 ddns 支持很好的,哪怕你重拨后 IP 发生变动,其它节点都能很快连接回来。

    如果你碰上 UDP 限速问题,那就可能要试试 easytier 的 QUIC 了
  • cutiechi 07-29 11:24
    10
    之前一直用 Tailscale ,最近切换成了 EasyTier ,感觉比 Tailscale 快,比如说打开家里的 Frigate
  • sonnetbreeze 07-29 11:26
    11
    wireguard 算是好用的,openvpn 才是不方便,玩 wg 要懂网络的,会 nat
  • coolcoffee 07-29 11:27
    12
    @w568w EasyTier 实测不是很好用。macOS 每次开机启动需要重新弹窗授权。不像 tailscale 那么无感。
  • kkrainbow9966 07-29 12:34
    13
    @coolcoffee 2.6.4 版本有服务模式,就不会弹窗了
  • terrancesiu 07-29 12:41
    14
    wg+bird2 组成了我的跨境和同城网络
  • x4gz 07-29 14:44
    15
    直接让 AI ssh 到设备和服务上让它部署好 wg
  • wanghao1008 07-29 16:21
    16
    @w568w Easytier 是不是必须要一个公网节点做握手?我局域网可以连接,但是外出就连接不上。tailscale 丢包率达 30%,受不了。
  • w568w 07-29 16:40
    17
    @wanghao1008 EasyTier 每个节点要指定一个其他节点,保证形成一个连通图即可。比如 A -> B ,B -> C ,其他所有 -> C ,那么 A 也能连接到 其他所有。

    外出用流量的话,一般场景下确实需要一个公网节点,不过如果你家宽有公网 IP 或 NAT1 ,这个节点只会负责转发信令握手,不跑流量。
* 帖子来源V2EX
返回