进阶技巧

飞牛NAS外网访问全攻略:DDNS + 反向代理

写在前面:为什么需要外网访问?

飞牛NAS作为家庭数据中枢,最核心的价值在于“随时随地访问”。但运营商分配的公网IP往往动态变化,加上光猫NAT和路由器防火墙的层层阻隔,想要从外网流畅访问NAS,必须解决两个问题:动态IP解析端口转发。本文将手把手教你用DDNS + 反向代理组合拳,实现稳定、安全、带域名绑定的外网访问方案。

第一步:环境准备与网络拓扑理解

开始前,请确认以下条件:

  • 飞牛NAS已接入路由器,并获取固定内网IP(建议在路由器DHCP中绑定MAC与IP,例如192.168.1.100)
  • 拥有一个域名(可在阿里云、腾讯云、Cloudflare等注册,国内域名需备案)
  • 光猫已改为桥接模式,或已获取路由器PPPoE拨号权限(关键!否则无法端口转发)

网络数据流示意:外网用户 → 域名解析 → 路由器公网IP → 端口转发 → NAS内网IP → 反向代理 → 对应服务。

第二步:配置DDNS(动态域名解析)

飞牛NAS系统内置DDNS功能,但第三方服务商(如阿里云)需要API密钥。这里以阿里云为例,展示通用配置方法。

2.1 获取阿里云AccessKey

登录阿里云控制台,鼠标悬停右上角头像,进入“AccessKey管理”,创建子用户AccessKey(仅授予AliyunDNSFullAccess权限,降低泄露风险)。记录AccessKey ID和Secret。

2.2 在飞牛NAS中配置DDNS

打开飞牛NAS控制台,进入 系统设置 → 网络 → DDNS,点击“添加”:

  • 服务商:选择“自定义”或“Aliyun”(若内置)
  • 域名:填写你的完整域名,例如 nas.example.com
  • 用户名:填写AccessKey ID
  • 密码/密钥:填写AccessKey Secret
  • 更新间隔:建议300秒

保存后,系统会自动将域名解析到当前公网IP。验证方法:在NAS终端执行 ping nas.example.com,看是否返回你的公网IP。

第三步:路由器端口转发

由于DDNS只解决“域名→IP”映射,还需将外网端口映射到NAS内网。登录路由器管理页,找到 端口转发/虚拟服务器 规则:

  • 外部端口:建议使用非标准端口(如8443),避免被运营商封禁80/443
  • 内部IP:192.168.1.100
  • 内部端口:需与反向代理监听端口对应(见下节)

以群晖/华硕路由器为例,添加规则:

外部端口 8443 → 内部IP 192.168.1.100 内部端口 8443(协议TCP)

第四步:部署反向代理(Nginx Proxy Manager)

反向代理的核心价值:用统一入口管理多个服务(如NAS管理界面、Jellyfin、Nextcloud),并实现HTTPS证书自动续期。推荐使用Nginx Proxy Manager(NPM),它提供Web图形化配置。

4.1 安装NPM

在飞牛NAS的Docker中搜索 jc21/nginx-proxy-manager,创建容器并映射端口:

  • 80端口 → 用于HTTP重定向(映射到路由器外部80,若被封则改其他端口)
  • 443端口 → HTTPS入口(映射到路由器外部443或8443)
  • 81端口 → NPM管理界面(仅内网访问)

4.2 配置SSL证书

首次登录NPM管理界面(http://192.168.1.100:81),默认账号 [email protected] / changeme。进入 SSL Certificates → Add SSL Certificate,选择“Let's Encrypt”:

  • Domain Names:填写 nas.example.com
  • 勾选“Force SSL”和“HTTP/2”

等待证书签发成功(需确保80/443端口已映射且域名解析生效)。

4.3 创建代理主机

进入 Hosts → Proxy Hosts → Add Proxy Host

  • Domain Names:nas.example.com
  • Forward Hostname/IP:192.168.1.100
  • Forward Port:5666 (飞牛NAS默认管理端口)
  • 勾选“Block Common Exploits”
  • 在SSL标签页,选择刚创建的证书,开启“Force SSL”

保存后,外网访问 https://nas.example.com 即可进入飞牛NAS界面。同理,为Jellyfin(端口8096)创建 https://nas.example.com/jellyfin 的二级路径代理,或使用子域名 jellyfin.example.com

第五步:安全加固与故障排查

5.1 必须做的安全设置

  • 修改飞牛NAS默认SSH端口为2222,禁止root直接登录
  • 在NPM中添加“Access List”,仅允许指定IP段或国家访问
  • 开启飞牛NAS的防火墙,只放行80/443/8443端口
  • 定期备份NPM配置文件(Docker卷挂载目录)

5.2 常见问题排查

问题1:外网访问超时

先确认 ping nas.example.com 是否返回正确公网IP;再检查路由器端口转发是否生效(可用在线端口扫描工具);最后在NAS上执行 curl -I https://nas.example.com 看是否有响应。

问题2:HTTPS证书签发失败

多为端口未通或域名未解析。执行 telnet nas.example.com 80 测试连通性。若国内服务器需确保80端口未被运营屏蔽,否则改用DNS验证方式签发证书。

问题3:访问NAS界面后样式错乱

反向代理默认会修改Host头,需在NPM的Advanced配置中加入:

proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

总结

通过DDNS + 反向代理的组合,你已实现三大目标:域名固定访问(不惧IP变动)、统一入口管理多个服务、自动HTTPS加密传输。这套方案不仅适用于飞牛NAS,也适用于任何Linux服务器。最后提醒:外网暴露意味着风险,务必定期更新系统补丁、监控登录日志,将“安全第一”刻在心上。现在,试着从手机4G网络访问你的NAS吧,那种掌控数据的感觉,值得你花一小时配置。

💬 评论区
发表评论

暂无评论,来说两句吧