前言
群晖 NAS 功能强大,但一旦离开局域网,如何安全又稳定地远程访问 NAS 就成了不少用户的痛点。另外由于IPv4地址耗尽,导致现在大多数家庭宽带用户都没有独立的公网IP,传统方案依赖群晖 QuickConnect 或公网端口映射,不仅可能受限于带宽和防火墙,还存在一定安全隐患。
今天我将带你实战一遍:让群晖 NAS 作为 WireGuard 客户端接入 wg-easy 私有网络,从而实现外网 PC 直接安全访问 NAS 的能力。无需公网 IP,完全自建,数据全程加密。
一、方案概览
架构思路:
- 1. wg-easy 作为 WireGuard 服务端,部署在 VPS 上或家带路由上(适合有公网IP条件的用户)。
- 2. 群晖 NAS 作为 WireGuard 客户端,加入 wg-easy 的虚拟专属网络。
- 3. 远程 PC / 手机 作为客户端,同样接入该网络。
- 4. 最终效果:远程 PC ↔ wg-easy ↔ 群晖 NAS,安全直连,像在局域网一样访问。
架构图:
二、环境准备
- wg-easy 服务端(已部署好,支持 Docker,一键配置即可)
- 群晖 NAS(DSM 6.x/7.x 版本均可)
- 远程 PC(Windows / Mac / Linux,需安装 WireGuard 客户端)
三、wg-easy 服务端配置
假设你已经用 Docker 部署好了 wg-easy(过程可参考我上一篇文章),这里直接说关键步骤。
- 1. 登录 http://<服务器IP>:51821
- 2. 创建一个 群晖 NAS 专用客户端配置(如 home),然后编辑配置:
允许的IP:代表客户端将哪些IP地址通过VPN路由到服务端
服务端允许的IP:代表服务端将哪些IP地址路由到客户端
在Sample中,172.31.6.0/24是wg-easy所在宿主机的IP网段(允许的IP可以写IP地址格式),192.168.1.0/24是群晖NAS所在的IP地址段。
- 3. 创建一个 PC客户端配置(如 mypc),同样编辑配置:
服务端允许的IP:这里我没有填,因为没有需求从服务端主动访问我的PC。
- 4. 下载生成的配置文件(home.conf mypc.conf)
为了让服务端的宿主机IP可以直接访问群晖NAS IP,所以增加静态路由配置。
先看 wg-easy 容器的网卡 IP:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' wg-easy
输出是:
10.42.42.42
说明宿主机要通过 10.42.42.42(容器 IP)访问 群晖NAS 的 192.168.1.0/24 网段。
在宿主机加静态路由执行:
sudo ip route add 192.168.1.0/24 via 10.42.42.42
这样宿主机访问群晖NAS IP 的时候,包就会送到容器里,由容器的 wg0 转发。
(如果要永久生效,可以写到 /etc/network/interfaces 或者 systemd 的 network 配置里。)
四、群晖 NAS 安装 WireGuard
群晖系统默认不支持 WireGuard,需要安装依赖。
我尝试用Docker安装过wireguard镜像,但由于的系统内核版本是4.4不支持,所以选用第三方包安装的方式来安装wireguard。
通过第三方包安装(适合DSM7)
1、添加第三方套件源,搜索wireguard。
2、选择wireguard安装,安装完成会提示需要root权限,可以按提示任选其一操作,我这里演示安装授权管理器(SimplePermissionManager)套件,这个套件是用于授权哪些需要root权限的应用。
安装权限管理器并激活后,就可以启用wireguard应用了。
3、SSH连接你的群晖NAS
Synology strongly advises you not to run commands as the root user, who has
the highest privileges on the system. Doing so may cause major damages
to the system. Please note that if you choose to proceed, all consequences are
at your own risk.
dfadfun@mnasyps****:~$ sudo -i
Password:
root@mnasyps****:~# mkdir /etc/wireguard
root@mnasyps****:~# cd /etc/wireguard
将服务端的home.conf 拷贝到/etc/wireguard目录下。
注意:群晖上安装的wireguard启动时不支持IPV6和DNS,所以要把配置文件中的这二项配置去掉。以下是正确的Sample,可以对照配置:
[Interface]
PrivateKey = sK4F****************************zRgmU=
# Address = 10.8.0.2/24, fdcc:**************:2/112
Address = 10.8.0.2/24
# DNS = 223.5.5.5
MTU = 1420
[Peer]
PublicKey = gLxxxxSy1g9HrVVxxxxxxxxxxxxxxxxxxxxxxxxlk=
PresharedKey = Q/mSwF/iY****************************IA97w=
AllowedIPs = 10.8.0.0/24, 172.31.6.0/24
PersistentKeepalive = 40
Endpoint = xx.xxx.xxx.x:51820
4、wireguard管理
# 启动
wg-quick up home
# 停止
wg-quick down home
# 查看状态
wg show home 或 wg
# wg
interface:home
public key:CdW0***************************k0=
private key:(hidden)
listening port:57771
peer:gL**cx***************************lk=
preshared key:(hidden)
endpoint:**.**.**.**:51820
allowed ips:10.8.0.0/24,172.31.6.0/24,10.42.42.0/24
latest handshake:1minute,29secondsago
transfer:2.50MiBreceived,37.89MiBsent
persistent keepalive:every40 seconds
五、验证连接
- 1. 在 wg-easy 管理界面,确认 群晖home 客户端已上线。
ping 10.8.0.1 # wg-easy 网关地址
如果能通,说明 NAS 已接入成功。
六、远程 PC 配置
- 1. 在 wg-easy 创建 PC 客户端(如 mypc),下载配置 mypc.conf。
- 2. 在本地 PC 安装 WireGuard 客户端:
- Windows: WireGuard 官方客户端
- Mac: App Store 搜索 WireGuard
- Linux: apt install wireguard
- 3. 导入配置 mypc.conf,连接成功后即可访问群晖。
七、远程访问 NAS
- 在远程 PC 上直接访问 NAS 内网 IP。
- 打开浏览器输入:
八、总结
通过本教程,你学会了:
- 搭建 wg-easy 服务端
- 让群晖 NAS 成为 WireGuard 客户端接入专属网络
- 在远程 PC 上直连 NAS,实现高效、安全、无公网依赖的访问
这套方案真正做到了:
✅ 安全加密
✅ 自建可控
✅ 跨平台通用
以后,无论你身在何处,都能轻松、安全地访问自己的 NAS。
阅读原文:原文链接
该文章在 2025/9/4 13:21:32 编辑过