NAS 系统
NAS 异地访问怎么选:Tailscale 零配置组网与 WireGuard 自建隧道的实战对比
2026年8月22日
对比 Tailscale 与自建 WireGuard 两种 NAS 异地访问方案,附部署步骤与取舍建议。
NAS 异地访问怎么选:Tailscale 零配置组网与 WireGuard 自建隧道的实战对比
摘要
把家里 NAS 变成随身可访问的网盘,最怕的是直接把端口暴露到公网。本文对比 Tailscale 零配置组网与自建 WireGuard 隧道两种主流方案,给出可落地的部署步骤、配置示例和取舍建议。
为什么不能把 NAS 直接暴露在公网
很多新手图省事,在路由器上做端口映射(DNAT),把 5000、22、443 直接转到公网 IP。问题在于:群晖 / 威联通的管理后台、SSH、数据库一旦被扫到,弱口令或已知漏洞就会被自动化脚本攻破。攻击者先用全网扫描锁定开放端口,再用历史漏洞或弱密码尝试登录,得手后加密勒索。2024 年以来多家 NAS 厂商都出现过被勒索的案例,根因几乎都是"管理端口直连公网"。
正确思路只有一条:不在公网开管理口,只通过加密隧道接入。连上隧道后,手机就像在家里 WiFi 下一样,能直接打开 Jellyfin 看片、用 SMB 挂盘、进后台管理,体验和无缝本地一致。下面两种方案都能做到这一点,区别在"谁帮你打洞和维护密钥"。
方案一:Tailscale 零配置组网
Tailscale 基于 WireGuard 协议,但把最难的"打洞、密钥交换、中继"都托管了,用户基本只管登录。
部署步骤:
- 在各设备(手机、笔记本、NAS)安装 Tailscale 客户端并登录同一账号。
- NAS 端在套件中心装 Tailscale,或用 Docker 跑
tailscale/tailscale镜像,启动后执行tailscale up。 - 控制台里给设备起好名字,开启 MagicDNS,访问 NAS 直接用
nas-1.tailnet-name.ts.net。 - 想让手机访问家里其他没装客户端的设备(如路由器、摄像头),在 NAS 上执行
tailscale up --advertise-routes=192.168.1.0/24,控制台批准子网路由即可。 - 需要让手机走家里网络(看 IPTV、访问内网),把 NAS 设为 Exit Node:
tailscale up --advertise-exit-node,控制台批准。
优点:5 分钟搭好、不怕对称 NAT、自动走最近的 DERP 中继。缺点:免费版设备数有限(50 台足够家用),握手元数据经 Tailscale 协调服务器(内容不经由它);追求完全自控可选自建 Headscale 控制面,客户端无需改动。
方案二:自建 WireGuard 隧道
如果你有一台有公网 IP 的云服务器(哪怕是 2 核 1G 的轻量机),可以完全自建,数据不经过任何第三方。
服务端部署步骤:
- 生成密钥对:
wg genkey | tee server_priv | wg pubkey > server_pub,客户端同理各生成一对。 - 写
/etc/wireguard/wg0.conf:
[Interface]
Address = 10.0.0.1/24
ListenPort = 51821
PrivateKey = <server_priv>
[Peer]
PublicKey = <client_pub>
AllowedIPs = 10.0.0.2/32
- 客户端(手机用 WireGuard App)填入对端公钥、自身私钥、Endpoint(服务器 IP:51821)、AllowedIPs(仅访问家里网段填 192.168.1.0/24,全流量走隧道填 0.0.0.0/0),并在 Peer 加
PersistentKeepalive = 25防止 NAT 超时。 - 服务端开启转发
sysctl -w net.ipv4.ip_forward=1,并配iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -j MASQUERADE让隧道流量访问内网。 - 验证:
wg show看握手时间,手机 ping 内网网关确认连通。
怎么选
- 想"今天就要用"、设备多、不想养服务器:选 Tailscale,省下的运维时间远超过隐私顾虑。
- 有现成云服务器、追求完全自控、熟悉 Linux:自建 WireGuard;或用 Headscale 接管 Tailscale 控制面,兼顾便利与自控。
- 两者都别忘安全基线:NAS 管理口仅限隧道内访问、统一强口令、开 2FA、定期更新系统、关掉路由器 UPnP 自动映射。隧道本身不是终点——真正价值是把 NAS 上的 Jellyfin、笔记、相册随身份安全带在身上,而不是把整台机器暴露在扫描之下。
常见排错
- Tailscale 连上了却 ping 不通家里其他设备:多半是忘了开子网路由或未在控制台批准,先
tailscale status看路由是否生效。 - WireGuard 握手失败:检查云服务器安全组与防火墙是否放行 UDP 的 ListenPort;
wg show里没有 latest handshake 就说明链路没通。 - 速度慢:Tailscale 若走了远距离的 DERP 中继会掉速,可换近节点或自建;自建 WireGuard 的瓶颈通常在服务器带宽。
- 手机锁屏后断线:WireGuard 客户端务必加
PersistentKeepalive = 25,让 NAT 映射保持。
小结
异地访问 NAS 的本质是"先加密、再连通"。Tailscale 用 zero-config 换便利,WireGuard 用自建换掌控,按你的运维耐心选即可,但永远别把管理端口裸奔到公网。