家里的飞牛NAS存着照片、文件和影音库,出门在外也想随时打开,这是很多人的需求。问题是家宽通常没有公网IP,路由器做端口映射也不一定稳定,直接把端口暴露到公网风险又高。用一台腾讯云服务器做中转入口,是比较稳妥的做法。下面以一个实际案例,讲清楚怎么用它给飞牛NAS搭一条外网访问通道。

云服务器和飞牛各自负责什么
飞牛fnOS是为NAS场景设计的系统,存储、网络和服务都围绕本地硬件展开。所以别想着把腾讯云服务器当成飞牛的运行主机,那样走不通。更合理的思路是:飞牛继续跑在家里的设备上,云服务器只负责接收公网请求,再把流量转发回家。
常见做法大致有三种:
- frp内网穿透。云服务器运行frps,家中飞牛那边运行frpc,把指定端口映射到公网。配置不复杂,适合先跑通。
- Nginx反向代理加域名。在云服务器上用Nginx接收HTTPS请求,再转发到frp映射出来的端口。如果你想用自己的域名和证书,选这个。
- 组网工具,如WireGuard或Tailscale类软件。在云服务器和飞牛之间建立加密隧道,只对授权设备开放。安全性更好,但每台需要访问的设备都要装客户端。
本文用的是前两种组合:frp负责穿透,Nginx负责域名和HTTPS。
案例:小陈的需求
小陈家里有一台飞牛NAS,存着家庭照片和一个小型文档库。出差时他想用手机看看文件,但家里宽带没有公网IP,路由器的端口映射也不稳定。他买了一台腾讯云轻量应用服务器,2核2G,系统是Ubuntu,又绑定了一个已完成备案的个人域名。
他的目标很简单:用域名通过HTTPS访问家里的飞牛管理界面,同时不让NAS直接暴露在公网上。
部署步骤
第一步:收紧云服务器的入口
在腾讯云控制台配置安全组,只放行必要端口:SSH、80和443,以及frp使用的通信端口。用不到的端口一律不开。SSH最好改掉默认端口,并改用密钥登录,否则容易被扫描和爆破。
第二步:在云服务器上部署frps
下载与家中frpc版本一致的frp程序,然后编写服务端配置。token一定要用足够长的随机字符串,否则别人很容易接入你的服务端。
# frps.toml
bindPort = 7000
auth.method = "token"
auth.token = "请替换为长随机字符串"
启动后用系统服务的方式让它常驻运行。如果只是在终端里前台跑着,关掉窗口进程就退出了,外网访问会莫名其妙断开。
第三步:在飞牛端配置frpc
飞牛上运行frpc的方式要看当前系统版本支持什么,可能是应用,也可能是容器。配置内容基本一致,其中localPort要填飞牛Web管理界面的实际端口。
# frpc.toml
serverAddr = "云服务器公网IP"
serverPort = 7000
auth.method = "token"
auth.token = "与服务端一致的token"
[[proxies]]
name = "feiniu-web"
type = "tcp"
localIP = "127.0.0.1"
localPort = 5666
remotePort = 6666
配置好后,先去服务端日志里确认这条代理状态正常,再进入下一步。连不上时,优先检查token、serverPort和安全组,这三处最容易出错。
第四步:用Nginx配置域名和HTTPS
在云服务器上安装Nginx,申请域名证书,然后配置反向代理,把域名请求转发到本机的6666端口。证书可以用腾讯云SSL服务,也可以用Let’s Encrypt,后者支持自动续期,省得到期忘了换。
第五步:验证并加固
小陈用手机流量访问域名,确认能正常登录飞牛界面。之后他又做了三件事:给飞牛账户开启双因素认证,关掉用不到的公网服务,在云服务器上配置fail2ban,限制异常登录尝试。
几个容易踩的坑
- 备案。中国大陆服务器通过域名对外提供80和443端口的服务,需要先完成ICP备案。没备案时域名访问会被拦截,排查起来容易绕远路。
- 版本不一致。frps和frpc版本差距较大时,可能出现连接失败或协议报错。两端最好保持同一版本,升级时一起升。
- 流量费用。照片和视频都经过云服务器中转,用量越大,费用越高。大文件同步更适合走局域网,或者用组网工具直连。
安全上要注意什么
入口搬到云上,安全责任也跟着到了云上。frp和系统补丁要定期更新,口令不能太弱。如果只是想在外面看看文件,没必要把整个管理后台开出去,只开放文件服务会更干净。
小结
对飞牛NAS来说,腾讯云服务器更适合做公网入口,不适合当运行主机。用frp加Nginx,可以在基本安全的前提下,从外网访问家里的NAS。具体版本和界面细节,以飞牛官方文档和腾讯云控制台为准,正式使用前最好先在测试环境跑一遍。