dcsuibian

我的 Tailscale 方案分享

  •  
  •   dcsuibian · 2 days ago · 3276 views

    上篇:自建 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 )。

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

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

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

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

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

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

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

    外出用流量的话,一般场景下确实需要一个公网节点,不过如果你家宽有公网 IP 或 NAT1 ,这个节点只会负责转发信令握手,不跑流量。
    liuwleo
        18
    liuwleo  
       22h 8m ago via Android
    问一下这里的大佬,easytier 是不是目前无法做到 tailscale 的出口功能?比如我随身 wifi 接入家里的 openwrt 后,无法让接入随身 wifi 的所有流量都走 passwall ?谢谢
    billytv
        19
    billytv  
       19h 58m ago
    @liuwleo 我也研究过 easytier 出口的问题, 功能是做出来了但没有详细的使用说明, 好像是出口节点要手动写路由, 并不像 tailscale 那样做到自动化
    mylara
        20
    mylara  
       19h 19m ago
    @billytv 是的,没有自动化。我测试客户端需要手工写路由,比如 route add 0.0.0.0 mask 0.0.0.0 10.172.192.1 if 55
    xyfan
        21
    xyfan  
       18h 58m ago
    @shenzhenhk 虽然和官方实现差距很定很大,但是的确有人在 ESP32 上跑起来 Tailscale 了(~100KB SRAM)
    https://github.com/CamM2325/microlink
    liuwleo
        22
    liuwleo  
       17h 2m ago via iPhone
    @billytv 在 openwrt 的 easytalier 的配置文件上声明全局出口,0.0.0.0/0 。这个方案好像可行。但是同时取消声明出口。这样可以透明代理。只要链接随声 wifi ,就走家里的 openwrt 出口。
    mylara
        23
    mylara  
       15h 4m ago
    @liuwleo #22 配置发一下看看呗😀
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   923 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 119ms · UTC 21:39 · PVG 05:39 · LAX 14:39 · JFK 17:39
    ♥ Do have faith in what you're doing.