🚀 在 阿里云的fNOS 上优雅部署 WireGuard 客户端
在 NAS 环境和家庭实验室架构中,分流(Split Tunneling)是一项兼顾安全与效率的核心网络实践。本教程将指导你如何在 fNOS 系统中,通过 Docker 部署 WireGuard 客户端,并配置 host 主机网络模式。
🎯 最终目标:
-
精确路由:仅针对
192.168.50.x网段的流量走 WireGuard 隧道。 -
高可用性:VPN 节点意外离线时,不影响 fNOS 宿主机其他服务的正常外网访问。
-
极简维护:采用容器化部署,配合 fNOS 的原生内核模块,极致轻量。
📝 第一步:准备配置文件 wg0.conf
在开始部署之前,你需要从 WireGuard 服务端获取或生成一份客户端配置文件。请仔细检查并修改 [Peer] 下的 AllowedIPs,这是实现分流的核心。
[Interface]
PrivateKey = <你的私钥>
Address = 10.0.0.2/24 # WG 虚拟内部 IP
DNS = 1.1.1.1 # 可根据需求修改或删除
[Peer]
PublicKey = <服务器公钥>
Endpoint = <服务器IP>:51820
# 💡 核心关键点:只声明特定目标网段。
# 这样只有目标为 50.x 的请求会走隧道,实现完美的流量分流。
AllowedIPs = 192.168.50.0/24
PersistentKeepalive = 25
🐳 第二步:下载 WireGuard 镜像
进入 fNOS 的应用或镜像管理界面,在注册表中搜索并直接下载排在第一位的官方或主流维护的镜像(通常为 linuxserver/wireguard)。

🛠️ 第三步:创建 Docker Compose 项目
在 fNOS 的文件管理器中,规划并创建一个专用的配置目录,例如 /vol1/1000/appdata/wireguard。在后续的项目创建中,我们将引用这个目录。
1. 准备 Compose 脚本 我们将采用 network_mode: host 模式,打破容器网络隔离,让 VPN 路由直接注入宿主机。
services:
wireguard:
image: linuxserver/wireguard:latest
container_name: wireguard-client
network_mode: host # 直接使用 fNOS 宿主机网络栈
cap_add:
- NET_ADMIN # 赋予容器网络路由修改权限
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Shanghai
volumes:
# 将宿主机刚刚创建的目录映射到容器的 /config
- /vol1/1000/appdata/wireguard/config:/config
restart: unless-stopped
2. 在 fNOS UI 中部署 进入系统的 Docker 项目管理页面,点击新建项目。

-
将上述 YAML 代码粘贴至配置框内。
-
路径选择:务必选择我们在前面新建的目录
/vol1/1000/appdata/wireguard。这样wg0.conf配置文件就能被容器正确读取。

部署完成后,启动该容器。
📡 第四步:测试内部网络连通性
容器启动并显示日志正常后,我们需要验证跨网段通信是否已经成功打通。
打开 fNOS 的 SSH 终端或系统自带的命令行工具,直接 ping 对端 192.168.50.x 网络中的某台存活设备(例如 192.168.50.252)。

如果能看到如上图所示稳定且延迟正常的 ICMP 回显响应(time=xxx ms),恭喜你!这标志着你的 WireGuard 分流客户端已经完美部署并在 fNOS 上全速运行了。