为什么要实现外网访问?
飞牛NAS作为家庭数据中心,如果只能在家中使用,其实只发挥了一半的价值。实现安全的外网访问后,你可以:
- 📁 随时随地存取文件:出差在外也能下载需要的文档
- 📸 手机照片自动备份:即使不在家,照片也能自动同步到NAS
- 🎬 远程观影追剧:在外面也能流畅播放NAS上的电影和剧集
- 🏠 远程管理NAS:随时查看系统状态,处理异常告警
- 👨👩👧👦 与家人共享数据:给家人开通访问权限,共享家庭相册和文件
但外网访问也意味着NAS暴露在公网上,安全配置是第一要务。本文将带你一步步实现安全可靠的外网访问。
前置条件检查
开始之前,请确认以下条件:
| 条件 |
说明 |
| 公网IP |
向宽带运营商申请(电信/联通通常免费提供,移动可能需要沟通) |
| 光猫桥接模式 |
光猫需设为桥接,由路由器拨号(必要时联系运营商远程修改) |
| 路由器支持端口转发 |
绝大多数路由器都支持,部分需手动开启UPnP |
| 域名(可选但推荐) |
注册一个便宜域名,配合DDNS使用体验更佳 |
没有公网IP怎么办? 可以考虑使用Tailscale、ZeroTier等内网穿透方案,本文主要介绍有公网IP的标准方案。
第一步:注册域名(推荐)
推荐在阿里云、腾讯云或Cloudflare注册一个域名,价格通常在几十元/年。有了域名后:
- 访问NAS不再需要记住IP地址
- 可以申请免费的Let's Encrypt SSL证书
- 看起来更专业,也便于分享给家人
注册完成后,进入域名管理后台,我们将在后续步骤中配置DDNS。
第二步:配置DDNS动态域名解析
家庭宽带的公网IP通常会不定期变化,DDNS的作用就是让域名始终指向你当前最新的IP地址。
方案A:飞牛NAS自带DDNS(最简单)
飞牛fnOS系统内置了DDNS客户端,支持阿里云、腾讯云、Cloudflare等主流DNS服务商:
- 进入飞牛NAS管理后台 →「系统设置」→「DDNS」
- 点击「添加」,选择你的DNS服务商
- 填写AccessKey/Secret(以阿里云为例):
- 登录阿里云控制台 → RAM访问控制 → 创建子用户
- 授权
AliyunDNSFullAccess 权限
- 获取AccessKey ID和AccessKey Secret
- 填入域名(如
nas.yourdomain.com)
- 保存并启用
飞牛NAS会每隔几分钟自动检测IP变化并更新DNS记录,无需额外配置。
方案B:Docker部署DDNS-GO(更灵活)
如果希望更多自定义选项,可以使用DDNS-GO:
docker run -d \
--name ddns-go \
--restart=always \
--net=host \
-v /vol1/1000/docker/ddns-go:/root \
jeessy/ddns-go
访问 http://飞牛IP:9876 进行Web配置,DDNS-GO支持的DNS服务商更多,更新频率可精细调节。
第三步:路由器端口转发
在路由器管理后台(通常为 192.168.1.1 或 192.168.31.1),找到「端口转发」或「虚拟服务器」设置:
| 服务 |
内网端口 |
外网端口 |
说明 |
| NAS管理 |
5666/5667 |
5666/5667 |
飞牛NAS Web管理界面(HTTP/HTTPS) |
| 反向代理 |
8443 |
8443 |
NPM代理入口(HTTPS) |
⚠️ 安全提醒:不要直接暴露NAS的管理端口(5666)到公网!强烈建议使用反向代理并通过HTTPS访问。
第四步:部署Nginx Proxy Manager反向代理
Nginx Proxy Manager(简称NPM)可以让你统一管理所有服务的SSL证书和访问入口,是外网访问方案的核心组件。
使用飞牛NAS应用中心一键安装
飞牛NAS的应用中心已收录Nginx Proxy Manager,一键安装即可:
- 打开飞牛NAS「应用中心」
- 搜索「Nginx Proxy Manager」
- 点击安装,端口默认81(管理界面)和443(HTTPS代理入口)
- 安装完成后访问
http://飞牛IP:81
初始登录
- 默认账号:
admin@example.com
- 默认密码:
changeme
- 首次登录后务必修改邮箱和密码
申请SSL证书
- 登录NPM管理界面,进入「SSL Certificates」
- 点击「Add SSL Certificate」→「Let's Encrypt」
- 填写:
- Domain Names:
nas.yourdomain.com 和 *.yourdomain.com(泛域名)
- Email Address:用于证书到期提醒
- 勾选「Use a DNS Challenge」
- 选择你的DNS服务商,填入API Token
- 点击「Save」等待证书签发
DNS Challenge方式不需要开放80端口,更适合家庭宽带环境(很多运营商封了80/443端口)。
创建代理规则
- 进入「Hosts」→「Proxy Hosts」→「Add Proxy Host」
- 配置飞牛NAS管理界面:
- Domain Names:
nas.yourdomain.com
- Scheme:
https
- Forward Hostname/IP:
192.168.x.x(飞牛NAS内网IP)
- Forward Port:
5667(飞牛NAS HTTPS端口)
- SSL:选择刚申请的证书,勾选Force SSL
- 保存后,访问
https://nas.yourdomain.com 即可安全访问飞牛NAS
代理其他Docker服务
使用NPM可以为每个Docker服务配置独立的子域名:
| 服务 |
子域名 |
后端地址 |
| Immich |
photo.yourdomain.com |
192.168.x.x:2283 |
| Jellyfin |
media.yourdomain.com |
192.168.x.x:8096 |
| HomeAssistant |
home.yourdomain.com |
192.168.x.x:8123 |
| qBittorrent |
bt.yourdomain.com |
192.168.x.x:8080 |
所有服务都可以共用同一个SSL证书(泛域名证书),一键续签,非常方便。
第五步:安全加固
外网访问配置完成后,务必做好以下安全措施:
1. 修改默认端口
在飞牛NAS设置中修改默认管理端口,避免被扫描:
- 进入「系统设置」→「安全」→ 修改HTTP/HTTPS端口
- 使用不常见的高位端口(如 15666/15667)
2. 启用双重验证
- 为飞牛NAS管理账户启用双因素认证(TOTP)
- 强密码要求:12位以上,包含大小写字母、数字和特殊字符
3. 配置访问IP白名单
在Nginx Proxy Manager中可以为敏感服务设置IP访问限制:
# 在Advanced标签中添加
allow 你的公司IP;
allow 你的常用IP段;
deny all;
4. 关闭不必要的服务
- 定期检查Docker容器,停用不再使用的服务
- 关闭UPnP自动端口映射功能
5. 日志监控
定期检查飞牛NAS的登录日志,发现异常登录立即处理:
- 进入「系统设置」→「日志」→ 筛选登录相关记录
- 关注异地登录和密码错误频率异常
常见问题排查
Q: DDNS解析不生效?
A: 检查以下步骤:①公网IP是否与DDNS解析一致(对比ip138.com显示的IP);②DNS解析TTL是否过长;③AccessKey权限是否正确
Q: NPM申请证书失败?
A: Let's Encrypt有频率限制,同一域名每周最多5张证书。确保DNS Challenge的API Token有写入DNS记录的权限。
Q: 手机4G/5G能访问但公司WiFi不行?
A: 公司网络可能封锁了非标准端口。可尝试使用443端口(需要路由器支持端口映射),或使用Tailscale等隧道方案。
Q: 访问速度很慢?
A: 上传速度取决于家庭宽带的上行带宽。建议:①降低远程播放码率;②对照片设置缩略图预生成;③考虑使用CDN加速静态资源
进阶玩法推荐
外网访问打通后,可以进一步探索:
- WireGuard VPN:更安全的内网访问方式,所有流量加密传输
- Cloudflare Tunnel:无需公网IP和端口转发的零信任方案
- Traefik替代NPM:更适合大规模微服务场景的反向代理
- Authelia认证网关:在反向代理前加一层统一认证
总结
通过DDNS + 反向代理的方案,你可以安全便捷地从任何地方访问飞牛NAS。整个配置过程不算复杂,但每个环节都建议认真对待,特别是安全加固部分。毕竟NAS存储着个人和家庭的私密数据,安全永远是第一位。
配置完成后,记得先用手机4G网络测试外网访问是否正常,确认SSL证书生效,就可以享受随时随地访问家庭NAS的便利了!