
⚠️ 合规提示:本文介绍的异地组网方案仅用于个人/家庭多设备间安全传输数据、照片自动备份、私有影音库远程播放及 NAS 系统安全管理。严禁将 NAS 节点设置为全局上网出口代理(Exit Node)或从事任何违反互联网信息安全条例的行为。
如果说 2025 到 2026 年国内 Homelab 圈什么最火,那绝对是 飞牛 FNOS (Flyneat OS)。凭借精美的 UI、极低的系统资源占用,以及强大的影视刮削和相册管理功能,它迅速成为了无数垃圾佬和数码发烧友自建 NAS 的首选。
然而,NAS 搭建好之后,大家面临的第一个痛点就是——异地远程访问。 * 没有公网 IPv4 地址? * 宽带没有开通 IPv6? * 官方内置的远程访问通道高峰期卡顿? * 映射公网端口担心 NAS 被黑客勒索病毒攻击?
今天老周就教大家如何利用 Tailscale/Headscale,在飞牛 FNOS 上优雅、安全地实现异地 P2P 直连远程访问,彻底告别公网端口暴露的危险!
飞牛 FNOS 底层基于成熟的 Debian 系统,虽然可以通过 SSH 进后台用 apt 直接安装 Tailscale 客户端,但老周强烈不建议这样做。因为系统大版本升级时可能会覆盖或损坏这些手动修改的文件。
最优雅、不污染宿主系统的方案是使用 Docker 部署 Tailscale,不仅方便升级,还能实现 100% 的配置持久化。
在运行 Docker 容器之前,我们需要确保宿主机的 TUN(网络隧道)驱动处于启用状态,这是虚拟网卡正常工作的基石。
登录飞牛 FNOS 后台,在“应用中心”中确保已经安装并启用了 Docker 服务。
打开 SSH 权限(在 FNOS 后台 -> 设置 -> 终端),使用 SSH 客户端登录 FNOS:
# 检查 TUN 模块是否加载
lsmod | grep tun若有输出 tun 字段,说明内核已正常加载该模块,无需额外操作。
飞牛 FNOS 的 Docker 管理页面非常友好,我们直接在 Docker 界面中创建一个新的 docker-compose 项目。
新建一个文件夹用于存放数据(例如 /vol1/1000/docker/tailscale),编写如下的配置文件:
version: "3.7"
services:
tailscale:
image: tailscale/tailscale:latest
container_name: tailscale
hostname: fnos-nas
network_mode: host # 使用 host 网络,确保方便宣告子网并能直连
volumes:
- /vol1/1000/docker/tailscale/state:/var/lib/tailscale # 持久化状态数据
- /dev/net/tun:/dev/net/tun # 挂载 TUN 设备
cap_add:
- NET_ADMIN
- NET_RAW
restart: unless-stopped📌 避坑小贴士: 1. 将
/vol1/1000/docker/tailscale/state替换为你 FNOS 上的真实共享文件夹路径。 2. 必须使用network_mode: host,这是为了让 Tailscale 能够识别并直接接管 FNOS 的内网网卡,方便后续实现局域网子网宣告。
在 FNOS Docker 面板中点击“运行”或在 SSH 下执行 docker compose up -d 即可启动容器。
docker exec -it tailscale tailscale up2.终端会输出一串类似于
https://login.tailscale.com/a/xxxxxx 的链接。
3.复制该链接到浏览器中打开,登录你的 Tailscale 账号,点击 Authorize 允许 FNOS 接入。
4.绑定成功后,在 Tailscale 管理后台即可看到名为 fnos-nas 的新设备,并获得它的内网虚拟 IP。
如果你追求 100% 的隐私掌控,且已经部署了私有的 Headscale 服务器,使用以下命令上线:
docker exec -it tailscale tailscale up --login-server=https://your-headscale-domain.com
复制终端输出的密钥链接,在你的 Headscale 服务器后台完成设备注册授权即可。
绑定成功后,异地手机和电脑虽然已经可以访问 FNOS 本身了,但我们通常希望“只要连上 Tailscale,就能直接顺便访问家里路由器下的所有其他设备(如打印机、电视机、软路由后台等)”。这就需要开启子网转发。
在 FNOS 上重新执行以下命令,宣告家里的本地物理网段(例如 192.168.31.0/24):
docker exec -it tailscale tailscale up --advertise-routes=192.168.31.0/24 --accept-routes登录 Tailscale 网页控制台,找到 fnos-nas 设备。
点击设备右侧的 ... -> Edit route settings。
在弹出的窗口中,将你刚才宣告的 192.168.31.0/24 前面的开关勾选开启。
此时,你在外网的手机只要连上 Tailscale,无需进行任何额外设置,就能像在家里一样直接输入 192.168.31.1 访问路由器后台,或者访问局域网内的任何其他非公网设备!
在使用 Subnet Router 时,请注意严禁勾选“Exit Node”(出口节点)功能。 * Exit Node 的风险:如果开启了出口节点,外网客户端的所有互联网流量都会强行经由家里 NAS 的宽带转发出去。这对于家庭宽带用户而言,极易因非正常的流量穿透和共享导致宽带账号被运营商临时封禁,甚至触碰合规底线。 * 合规操作:我们仅需使用 Subnet Router 来访问内网私有 IP 资源,实现文件共享与设备管理,所有常规网页访问依然走客户端本地网络,既安全又合规。
通过将 Tailscale 优雅地容器化运行在飞牛 FNOS NAS 上,我们在保证宿主系统绝对纯净的安全前提下,建立了一条坚固的私人远程数据传输通道。若您在部署过程中遇到任何报错,欢迎在评论区留言!