POST

ZeroTier:不折腾路由器,把几台设备拉进同一个虚拟局域网

NAS、公司电脑、父母家的机器,装个客户端加入同一个网络 ID,之后互相用内网 IP 访问,像插在同一台交换机上。

ZeroTier 和 Tailscale 是同一类东西:组一个虚拟局域网。区别在实现——ZeroTier 的根服务器更独立,国内直连的成功率高一些。

飞牛应用中心里能装,装完 NAS 就有了一个固定的虚拟 IP。

装

services:
  zerotier:
    image: zerotier/zerotier:latest
    container_name: zerotier
    network_mode: host
    cap_add:
      - NET_ADMIN
    devices:
      - /dev/net/tun
    volumes: ["./zerotier:/var/lib/zerotier-one"]
    restart: unless-stopped

network_mode: host 是必须的——它要操作宿主机的网络栈,桥接模式下建不了虚拟网卡。

加入网络:

docker exec zerotier zerotier-cli join <你的网络ID>

网络 ID 在 my.zerotier.com 建一个 Network 之后就有,16 位字符。

后台要做的事

登录 ZeroTier 官网(免费版支持 25 个设备):

  1. Create A Network,得到一个 16 位 ID;
  2. 进去之后能看到"成员列表",新加入的设备会显示为未授权;
  3. 勾选前面的复选框,授权;
  4. 记下分配的 IP(通常是 10.147.17.x 这种)。

之后其他设备装客户端、join 同一个 ID,就都在这张网里了。

用它干什么

一、远程访问 NAS

在外面用 10.147.17.5:5666 直接打开飞牛后台,不用穿透、不用域名。

二、多地点互连

父母家的电脑、你的 NAS、公司的笔记本,三方互相能 ping 通。传文件直接 SMB 挂载。

三、给设备一个固定地址

家里宽带换了 IP、换了运营商,虚拟 IP 不变。脚本里的地址不用改。

和 Tailscale 怎么选

说实话两者很像。几个实际差别:

  • ZeroTier 在国内直连成功率略高,因为它有更多中继节点;
  • Tailscale 的客户端生态更好(路由器插件、Docker 侧车多);
  • ZeroTier 免费 25 设备,Tailscale 免费 100 设备;
  • 两者都支持自建根节点(moon / headscale),但配置麻烦。

如果只是家里几台设备,选哪个都能用。 别在这上面纠结。

几个实用配置

Managed Routes

在后台加一条路由,比如 192.168.1.0/24 via 10.147.17.5,可以让其他设备访问 NAS 所在的整个局域网。前提是 NAS 上开了 IP 转发。

Flow Rules

默认允许全部互通。家里用够了;如果设备多,可以按 IP 限制谁能访问谁。

关闭自动分配

想手动指定 IP,后台里关掉 “Auto-Assign”,自己填。

会踩的坑

join 之后一直 OFFLINE 后台没授权。去 my.zerotier.com 勾上。

能 ping 通但访问不了服务 防火墙拦了。宿主机的 iptables/firewalld 要放行对应端口。

速度很慢 走了中继(relay)。用 zerotier-cli peers 看 DIRECT 还是 RELAY。RELAY 说明打洞失败,看看是不是双 NAT。

重启后网络掉了 cap_add 和 /dev/net/tun 没配。缺这两样,容器里的 ZeroTier 建不了网卡。

免费版够不够 25 台设备、100 个成员?家庭用远远够。只有超过才需要付费。

它适合谁

  • 有 NAS,想在外面直接访问内网的;
  • 几个地点之间要互通(自己家 + 父母家 + 办公室);
  • 不想折腾穿透、DDNS、端口映射的。

不适合:只是偶尔访问一次 NAS(飞牛自带的远程访问够了);对"经过第三方根服务器"有顾虑的(那自己搭 WireGuard)。

最后

这类工具的价值在于把复杂的网络问题变成一次配置。

配好之后,你的设备之间就没有"局域网/外网"的区别了——它们只是同一个网里的不同 IP。

有问题留言。

👁 - 次浏览

留言

← 返回首页