Article
威联通 NAS + ROG 八爪鱼 + Nextcloud:家庭私有网盘
前言
家里的威联通 NAS 放了很久,说实话一直有点吃灰。
官方应用功能不少,但:
- 界面复杂
- 使用路径不直观
- 更像“系统”,而不是“网盘”
最近正好家里有 公网 IPv4,路由器是 ROG 八爪鱼 ,所以想实现:
像用网盘一样用 NAS,但数据完全在自己家里。
最终方案是:
WireGuard + Nextcloud
我的网络与硬件环境
- NAS:威联通 QNAP 464C
- 路由器:ASUS ROG 八爪鱼
- 网络:
- 公网 IPv4
- WireGuard 作为唯一远程入口
- 系统部署方式:Container Station(Docker)
NOTE不暴露公网端口,只通过 VPN 访问私有云服务。
Nextcloud 应用拉取

镜像源使用了国内镜像站,解决拉取超时问题。

以下是我使用的,仅供参考:
version: "3.8"
services: nextcloud-db: image: docker.1ms.run/library/mariadb:10.11 container_name: nextcloud-db environment: MYSQL_ROOT_PASSWORD: "自行设置密码" MYSQL_DATABASE: "nextcloud" MYSQL_USER: "nextcloud" MYSQL_PASSWORD: "自行设置密码" TZ: "Asia/Shanghai" volumes: - /share/Container/nextcloud/db:/var/lib/mysql restart: unless-stopped networks: [nextcloud-net]
nextcloud: image: docker.1ms.run/linuxserver/nextcloud:latest container_name: nextcloud ports: - "家里NAS的本地IP地址:8383:80" volumes: - /share/Container/nextcloud/config:/config - /share/Container/nextcloud/data:/data environment: PUID: "1000" PGID: "1000" TZ: "Asia/Shanghai" restart: unless-stopped networks: [nextcloud-net] depends_on: - nextcloud-db - onlyoffice
onlyoffice: image: docker.1ms.run/onlyoffice/documentserver:latest container_name: onlyoffice environment: TZ: "Asia/Shanghai" JWT_ENABLED: "true" JWT_SECRET: "自行设置密码" ALLOW_PRIVATE_IP_ADDRESS: "true" DB_TYPE: "postgres" DB_HOST: "onlyoffice-postgresql" DB_PORT: "5432" DB_NAME: "onlyoffice" DB_USER: "onlyoffice" DB_PWD: "自行设置密码" AMQP_URI: "amqp://onlyoffice:自行设置密码@onlyoffice-rabbitmq" ports: - "家里NAS的本地IP地址:8888:80" volumes: - /share/Container/onlyoffice/logs:/var/log/onlyoffice - /share/Container/onlyoffice/data:/var/www/onlyoffice/Data - /share/Container/onlyoffice/lib:/var/lib/onlyoffice - /share/Container/onlyoffice/db-cache:/var/lib/onlyoffice/documentserver/App_Data/cache/files - /share/Container/fonts:/usr/share/fonts/truetype/custom:ro restart: unless-stopped networks: [nextcloud-net] depends_on: - onlyoffice-postgresql - onlyoffice-rabbitmq
onlyoffice-postgresql: image: docker.1ms.run/library/postgres:12 container_name: onlyoffice-postgresql environment: POSTGRES_DB: "onlyoffice" POSTGRES_USER: "onlyoffice" POSTGRES_PASSWORD: "自行设置密码" TZ: "Asia/Shanghai" volumes: - /share/Container/onlyoffice/pgsql:/var/lib/postgresql/data restart: unless-stopped networks: [nextcloud-net]
onlyoffice-rabbitmq: image: docker.1ms.run/library/rabbitmq:3 container_name: onlyoffice-rabbitmq environment: TZ: "Asia/Shanghai" RABBITMQ_DEFAULT_USER: "onlyoffice" RABBITMQ_DEFAULT_PASS: "自行设置密码" volumes: - /share/Container/onlyoffice/rabbitmq:/var/lib/rabbitmq restart: unless-stopped networks: [nextcloud-net]
networks: nextcloud-net: driver: bridge初始化 Nextcloud
第一次访问:
http://NAS内网IP:8383初始化页面需要注意 数据库主机 这一项:
数据库类型:MySQL / MariaDB数据库用户:nextcloud数据库密码:******数据库名:nextcloud数据库主机:nextcloud-db:3306
NOTE不要填 localhost
因为 Nextcloud 和数据库在不同容器中。
等待5min后(有概率504,不要管),重新进入该网址,可以看到初始化成功:

路由器配置 DDNS
进入路由器配置界面,我这台路由器的默认本地 IP 是 192.168.50.1:

我这里使用的是 NOIP 的免费服务,每一个账号享有一个,太感谢了!!
自行注册账号并添加:

在 NOIP 添加好之后,在路由器界面填写自己注册的信息,点击 应用本页面设置 ,等待几分钟后,看到注册成功,即成功添加
添加 WireGuard VPN 服务
进入路由器配置界面

创建新的 VPN 客户端,在手机上或者电脑上下载软件 WireGuard ,扫描二维码或者导入配置添加设备
之后哪怕在外面,没有连接到家里的局域网,开启 VPN 也可以用本地 IP 连接到 路由器 和NAS
总结
折腾这一圈,其实NAS 不是不好用,只是以前用法不对。
把复杂的东西都藏在后面,只留下 Nextcloud 这个“入口”,
再用 WireGuard 把访问方式收紧,整个体验一下子就顺了。
现在用起来就是:
- 在外面先连一下 WireGuard
- 打开 Nextcloud
- 跟用普通网盘没什么区别
还不得不感叹一句,华硕的八爪鱼真NB,不愧是钞能力
威联通 NAS + ROG 八爪鱼 + Nextcloud:家庭私有网盘
https://anpier.cn/posts/homelabqnapnasnextcloudrog/