1. NAS装好了,出门却连不上:这个坑99%的人都踩过
家里那台NAS刚做好时,我在局域网里玩得特别开心,电影、照片、文档全塞进去,甚至还在上面跑了Docker版下载器。可一出门,问题就来了:手机App连不上,公司电脑访问不了,在外面想看一部电影只能干瞪眼。折腾了一圈我才意识到,问题不在NAS本身,而是家里网络根本没有公网IPv4地址。
国内很多宽带用户拿到的其实是一个大内网地址,运营商在最前面做了NAT,你家里光猫拨号拿到的IP可能和另外几千户共享同一个出口。这种情况下,路由器WAN口没有独立的公网地址,你想用DDNS做端口映射,解析出来的是一个外部永远访问不到的位置。以前大家讲“没公网IP就玩不好远程访问”,确实如此,普通的内网穿透方案虽然能解决部分问题,但每开一个服务就要折腾一次端口,用起来非常累。
后来朋友让我试着用“异地组网软件”解决这个问题。思路很简单:在NAS和手机、电脑上都装同一个客户端,这些软件会通过公共互联网帮设备之间建立一条虚拟的局域网通道。每个设备会分到一个固定的虚拟IP,不管你在哪个城市,只要能上网,就能用这个虚拟IP像在家里局域网一样访问NAS。玩了一两个月,我把市面上最火的三款免费异地组网软件都实际跑了一遍,包括Tailscale、ZeroTier和蒲公英,这篇就把整个过程和真实结果写出来,给同样没有公网IP的NAS玩家一个参考。
2. 三款免费异地组网软件,我为什么选中它们做横向对比
2.1 参测软件的基本盘
先说为什么是这三款。Tailscale是最近几年热度最高的组网工具之一,配置门槛低、免费额度给得大方,很多新玩家第一次异地组网就是用它。ZeroTier则更“老牌”,开放性强,社区里大量自建网络控制器的玩法,适合喜欢深挖的人。蒲公英是贝锐旗下的产品,中文生态很成熟,手机端和NAS端都有现成客户端,面向的是“不想折腾”的普通用户。
这三款虽然都能做到“无公网IP也能访问NAS”,但实现思路和实际体验差别非常大。所以我设了五个衡量维度:安装上手难度、虚拟IP连通性、文件传输速度、长时间在线稳定性、免费版限制。只有把这些维度放在一起测,才能回答“我到底该用哪个”。
2.2 我的测试环境与测速方法
为了尽量模拟普通NAS玩家的环境,我没有用很夸张的设备。NAS方面,一台是玩客云刷的飞牛OS,装在光猫后面的普通路由器下;另一台是群晖DS920+,用来验证SMB共享和Docker部署。客户端包括一台Win11笔记本、一台iPhone、一台公司发的Windows办公电脑。
网络环境是电信家宽,光猫拨号,路由器没有获取到公网IPv4,IPv6也暂时不稳定。异地场景分为两种:一种是同城跨区,另一种是跨省访问。测速时,我重点用SMB文件复制来看真实传输速度,因为对NAS玩家来说,复制文件、看视频、照片备份才是最常见的需求。同时也会ping一下虚拟IP,统计延迟波动。
3. 安装部署实录:Tailscale、ZeroTier、蒲公英各自的上手门槛
3.1 Tailscale:拿到AuthKey就能在NAS容器里跑起来
Tailscale让我最舒服的一点是,账号体系很现代,官网注册后可以快速生成认证密钥。如果NAS用的是群晖这类有套件中心的系统,可以直接在套件中心搜索Tailscale安装,登录账号就完事。但如果用的是飞牛OS、绿联私有云这类比较新的系统,或者想在Docker里跑,就需要一点Linux基础。
我这边测试时用Docker Compose部署,配置文件大致长这样:
services: tailscale: image: tailscale/tailscale:latest container_name: tailscale hostname: nas network_mode: host cap_add: - NET_ADMIN - SYS_MODULE volumes: - ./tailscale/var/lib:/var/lib/tailscale - /dev/net/tun:/dev/net/tun environment: - TS_AUTHKEY=tskey-auth-xxxxx - TS_STATE_DIR=/var/lib/tailscale restart: unless-stopped这段配置有几个关键点需要说明。network_mode: host让容器直接用宿主机的网络,这样NAS上其他服务(比如SMB、Jellyfin)也能被虚拟局域网直接访问。cap_add和/dev/net/tun是给容器创建虚拟网卡用的,缺少了它,Tailscale容器里就不会出现虚拟网卡,NAS也就拿不到虚拟IP。TS_AUTHKEY必须在官网后台先创建,否则容器起来后不会自动登录。
跑起来之后,登录同一个Tailscale账号的电脑、手机、NAS都会出现在设备列表里,你会发现每个设备都分配了一个100开头或者10开头的虚拟IP。我在Win11上ping这个IP,延迟大概在10-40毫秒,整体上手过程非常顺。
3.2 ZeroTier:加入网络以后记得去Web后台“打勾”
ZeroTier比Tailscale多一步“加入网络”的操作。安装方式类似,我同样用Docker部署:
services: zerotier: image: zerotier/zerotier:latest container_name: zerotier network_mode: host cap_add: - NET_ADMIN volumes: - ./zerotier/var/lib/zerotier-one:/var/lib/zerotier-one command: <network-id> restart: unless-stopped这里要改成你创建的网络ID。但是装完容器并不意味着就能用了,真正坑人的是,你必须登录ZeroTier官网的Web控制台,在“Members”列表里找到新加入的设备,手动点击Authorize打勾,设备才会被分配到虚拟IP。我第一次测试时,容器跑了好几天,NAS在面板里一直显示在线,但就是没有IP,原因就是忘了这一步。
ZeroTier默认给设备分配的是10.147.x.x之类地址,看起来和家庭局域网很像。不过它的客户端对新手没那么友好,尤其Web控制台是全英文的,普通用户第一次打开会有点懵。
3.3 蒲公英:手机号注册,三步搞定
蒲公英走的是完全不同的路线。它的客户端可以直接在NAS上安装,群晖、飞牛、Docker都有对应版本,手机装“蒲公英”App,然后注册账号、创建网络、把设备加进去,整个流程几乎没有技术门槛。
因为蒲公英的控制台和节点服务器都在国内,从“装好”到“能访问”的等待时间很短,手机App的表现也很稳定。但我必须提醒一句:蒲公英免费版对设备数量和带宽都有限制,具体以官网实时说明为准。我测试时,免费网络只允许少量成员加入,并且传输速度有明显上限。这个限制如果你只是偶尔看看照片、传几个小文件,问题不大;但要是想把NAS当网盘大批量同步文件,免费版会非常难受。
4. 真刀真枪的远程实战:拷贝文件、挂载磁盘、串流看片
4.1 用SMB把NAS变成Windows的一个盘
异地组网最大的乐趣,就是能把NAS当成自己电脑上的一个普通磁盘来用。在Windows资源管理器地址栏输入NAS的虚拟IP,比如\\100.x.x.x\share,然后右键“映射网络驱动器”,再输入NAS的账号密码,电脑里就会多出一个盘符,之后所有文件操作都跟本地磁盘一样。
我试过用Tailscale在Win11上映射共享文件夹,复制一个4GB的ISO镜像,速度能到10MB/s以上;跨省测试时如果走的是中继节点,速度会掉到1MB/s左右,但传文档和照片完全够用。ZeroTier在没有优化路由的情况下,速度波动比Tailscale大一些,不过只要两边网络支持P2P直连,也能稳定跑到6-8MB/s。蒲公英免费版的速度则明显受限,日常编辑Office文档勉强可以,传大文件就要有耐心。
4.2 iSCSI和异地组网能不能共存
很多NAS玩家会把存储挂成iSCSI磁盘,因为Windows原生支持,看起来比SMB更像本地盘。但我要特别提醒,iSCSI对网络延迟和丢包极其敏感,在局域网里用没问题,放到异地组网的虚拟局域网里,稍微一抖动就可能掉盘或报错。我专门在异地组网环境下试过把群晖的iSCSI LUN挂到公司电脑,能挂上,但只要网络波动,资源管理器就直接转圈,严重的还会导致系统弹出“磁盘未连接”。
所以我的建议是:如果你需要“在外面把NAS变成电脑的一个盘”,老老实实用SMB映射网络驱动器,不要为了一时方便去跨公网挂iSCSI。那是有DB、块存储类需求的人才需要考虑的事,普通NAS用户用SMB体验好得多。
4.3 Jellyfin串流看片:能看不等于流畅
家里NAS跑Jellyfin的场景很常见,异地组网打通之后,我在手机端和电脑端通过虚拟IP访问Jellyfin,确实能播放媒体库里的电影。实测下来,1080P高码率原盘在Tailscale直连模式下基本能秒开,拖动进度条也还算跟手;但一旦被迫走中继,视频码率高一点就会反复缓冲,画质自动转低码率。
ZeroTier的表现和Tailscale类似,能直连就是流畅,走中继就拉胯。蒲公英免费版因为带宽限制,我建议在播放页面里把Jellyfin转码默认设置成720P或低码率,否则体验会很痛苦。值得一提的还有媒体库加载速度,如果Jellyfin和NAS存储不在同一台设备,需要通过网络访问共享目录,异地组网的延迟会让扫描媒体库变得很慢,所以扫描媒体库这件事最好在家里局域网内完成,出门只负责播放。
4.4 测速数据汇总
我把测试结果汇总成了一张表格,方便大家直接对照:
| 测试项目 | Tailscale(直连) | Tailscale(中继) | ZeroTier(直连) | ZeroTier(中继) | 蒲公英免费版 |
|---|---|---|---|---|---|
| 文件复制速度 | 8-18MB/s | 400KB-1.5MB/s | 6-15MB/s | 200KB-1MB/s | 100-300KB/s |
| 延迟 | 10-30ms | 40-120ms | 10-30ms | 80-180ms | 50-100ms |
| SMB映射盘体验 | 良好 | 可用但稍慢 | 良好 | 勉强可用 | 只能处理小文件 |
| Jellyfin播放 | 1080P原盘流畅 | 720P以下可用 | 1080P原盘流畅 | 720P以下勉强 | 建议低码率 |
| 长时间在线稳定性 | 很高 | 高 | 中等 | 中低 | 高 |
必须说明,这些数据来自我自己的电信家宽环境,不代表所有网络都这样。NAT类型、路由器策略、运营商对P2P的态度都会影响结果,大家重点看不同软件之间的相对差异。
5. 横评中最容易翻车的三个细节,我替你先踩了
5.1 套件或容器重启后,虚拟IP不见了
我测试时最常遇到的问题,就是NAS重启后,虚拟IP明明还能在管理后台看到设备在线,但客户端怎么都ping不通。排查半天,发现是容器里的虚拟网卡设备在重启后没有被正确挂载。最有效的方式是给容器设置restart: unless-stopped,并且保证有NET_ADMIN权限,同时确认宿主机的/dev/net/tun确实存在。
如果用的是套件版,群晖这类系统一般会自动处理,但飞牛OS、绿联这类相对较新的系统,建议优先选择Docker方式,这样你能完全控制容器的启动顺序和权限。
5.2 能ping通,但SMB共享打不开
这是另一个高频问题。虚拟IP通了,Windows也能ping通NAS,但打开\\虚拟IP\共享时一直报错找不到网络路径。常见原因有三个:一是NAS或电脑的系统防火墙拦截了445端口;二是Windows凭据管理器里保存的账号密码过期;三是虚拟子网和本地子网冲突,Windows不知道把包发给哪个网卡。
排查思路是从简单到复杂:先试一下直接用浏览器访问NAS的管理后台,如果后台能打开,说明网络层没问题,问题大概率出在SMB协议或防火墙。然后检查Windows的“凭据管理器”,删掉旧的NAS凭据重新添加。最后再确认虚拟网卡的IP段不要和家里局域网网段一样,比如家里是192.168.1.x,虚拟IP也是192.168.1.x,那就很容易冲突,建议在ZeroTier管理后台设置Managed Routes,或者直接在NAS端换一个网段。
5.3 设备显示在线,但速度只有几百KB,多半是P2P没打通
有时候软件后台明明显示两台设备都在线,且都是绿色的健康状态,但文件传输速度就是上不去。这是因为大多数异地组网软件的原理是尽量让两台设备直接“打洞”建立P2P连接,如果运营商网络对UDP打洞不友好,或者路由器起了AP隔离,打洞失败后数据就会被迫走中继服务器。中继服务器在世界各地位置不同,速度自然好不到哪去。
判断是否走了中继,每个软件都有自己的方式,比如Tailscale后台会显示Direct或Relay,ZeroTier的peer信息里也能看到路径类型。解决思路也很简单:用手机开热点测试,如果热点下速度明显变快,说明当前宽带对P2P有限制;或者尝试在NAS和路由器上开启IPv6,很多情况下IPv6可以绕过部分NAT限制;再或者直接选国内节点服务更快的蒲公英,虽然免费版限速,但线路稳定,不像中继服务器绕一大圈。
6. 三款软件的最终选型建议
6.1 按使用场景选,不盲目跟风
家用NAS玩家如果完全不想折腾,优先考虑蒲公英。它的中文控制台和App都做得很省心,适合给家里人安装使用。但前提是你对带宽不敏感,只用于远程看看监控、传点照片、改个文档。设备数受限和限速是它最明显的短板,介意的话就不要用它作为主力方案。
喜欢在NAS上折腾Docker、插件,愿意花半小时看官方文档做排障的人,我强烈推荐Tailscale。它免费版能接入的设备数比另外两家更宽松,登录和组网体验也是最现代的,直连成功率在我们这边环境下非常高。即使打洞失败,官方中继也能保证你能连上,只是速度打折而已。
ZeroTier适合想深度自建的人,比如你有能力自建Moon节点,或者想通过管理后台灵活控制虚拟网段、路由规则。它的上限很高,但下限也很低,新手如果不看英文文档,很容易在授权和设备添加那一步卡住。我们的结论是:可以把ZeroTier当作备用方案,而不是首选。
6.2 我的最终搭配方案
我目前家里的做法是:主力使用Tailscale,ZeroTier作为备用,给家人的手机上装蒲公英App。这样安排的理由很简单,我自己更喜欢折腾Tailscale的访问控制,家人用蒲公英时不会跑来问我“这个链接怎么点”,两个备用各司其职。
在实际部署过程中,有一件事让我印象很深:以前我想从公司访问家里的Jellyfin,还需要在路由器上做端口映射,不仅要考虑安全问题,还要祈祷运营商别换IP。现在有了异地组网,所有访问都走虚拟IP,我把SSH、NAS管理后台、Docker管理页面全都绑定到虚拟网卡上,只允许虚拟网段的IP访问,路由器上一个端口都不用开。这种感觉就像给NAS修了一条私人通道,既安全又省心。
最后分享一个实操小技巧:在NAS的系统防火墙或共享权限设置中,给异地组网虚拟网段单独划分一个用户组,只开放必要的共享目录,不要把所有文件夹都公开。因为异地组网一旦打通,虚拟局域网里的设备权限和局域网权限是一致的,如果密码泄露,后果比局域网时代更严重。做好权限隔离,这台NAS才算真正值得长期玩下去。