飞牛NAS搭建内网穿透:frp完整配置
飞牛NAS作为一款功能强大的私有云系统,其核心优势在于数据自主可控。但默认情况下,它只能在内网访问,这极大地限制了NAS的潜力。今天,我们将深入探讨如何利用内网穿透神器frp(Fast Reverse Proxy),为你的飞牛NAS打开一扇通往公网的大门,让你随时随地访问家中的数据。
为什么需要内网穿透?
想象一下,你出差在外,急需查看存储在NAS上的一个工作文档,或者想远程观看家中NAS里的电影。没有内网穿透,这一切都无从谈起。虽然DDNS和端口转发也能实现部分需求,但受限于运营商封锁80/443端口、动态IP变化以及安全风险,体验往往不佳。frp通过反向代理技术,将你本地的服务安全地暴露到公网,是目前最流行、最可靠的解决方案之一。
方案架构与准备工作
我们的方案采用“VPS服务器 + frps(服务端)+ 飞牛NAS(frpc客户端)”的模式。你需要准备:
- 一台有公网IP的VPS服务器(最低配置即可,系统推荐Debian/Ubuntu)。
- 一个域名(可选但强烈推荐,用于HTTPS和固定访问地址)。
- 飞牛NAS(确保系统已更新到最新版本)。
第一步:在VPS服务器上部署frps服务端
首先,通过SSH登录你的VPS,下载最新版的frp。请前往frp的GitHub Release页面(github.com/fatedier/frp/releases)查找最新版本号,本文以 v0.52.3 为例。
# 进入/opt目录并下载
cd /opt
wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gz
# 解压并重命名
tar -zxvf frp_0.52.3_linux_amd64.tar.gz
mv frp_0.52.3_linux_amd64 frps
# 进入解压目录
cd frps
接下来,编辑服务端配置文件 frps.toml(新版frp使用.toml格式,旧版是.ini):
vim frps.toml
将内容替换为以下配置:
bindPort = 7000 # frp通信端口
# 管理面板(可选,用于查看连接状态)
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "你的强密码"
# 认证令牌(客户端连接需要此令牌)
auth.token = "请设置一个复杂的随机字符串,例如fnos_frp_2024_secure"
保存退出后,运行服务端测试:
./frps -c ./frps.toml
看到 frps started successfully 即代表成功。使用 Ctrl+C 停止,然后我们将其注册为系统服务,实现开机自启。创建服务文件:
vim /etc/systemd/system/frps.service
粘贴以下内容:
[Unit]
Description=frps Service
After=network.target
[Service]
Type=simple
User=root
ExecStart=/opt/frps/frps -c /opt/frps/frps.toml
Restart=on-failure
RestartSec=5s
[Install]
WantedBy=multi-user.target
启用并启动服务:
systemctl daemon-reload
systemctl enable frps
systemctl start frps
systemctl status frps # 查看运行状态
重要步骤:请务必在VPS的安全组或防火墙中放行 7000(frp通信)和 7500(管理面板)端口。
第二步:在飞牛NAS上配置frpc客户端
现在回到飞牛NAS的SSH终端(通过 ssh [用户名]@[NAS IP] 登录)。同样,我们需要下载对应飞牛NAS架构的frp客户端。飞牛NAS通常为 amd64 架构。
# 下载到飞牛NAS的 /vol1/ 目录下(请根据你的存储空间路径调整)
cd /vol1
wget https://github.com/fatedier/frp/releases/download/v0.52.3/frp_0.52.3_linux_amd64.tar.gz
# 解压并重命名目录为 frpc
tar -zxvf frp_0.52.3_linux_amd64.tar.gz
mv frp_0.52.3_linux_amd64 frpc
cd frpc
创建并编辑客户端配置文件 frpc.toml:
vim frpc.toml
写入以下核心配置:
serverAddr = "你的VPS公网IP"
serverPort = 7000
auth.token = "与服务器端完全一致的token字符串"
# 第一个代理:飞牛NAS的Web管理界面(端口5666是飞牛默认端口)
[[proxies]]
name = "fnos-web"
type = "tcp"
localIP = "127.0.0.1"
localPort = 5666
remotePort = 8000 # 通过 VPS的8000端口访问飞牛
# 第二个代理:SSH服务(可选)
[[proxies]]
name = "fnos-ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000 # 通过 VPS的6000端口SSH到飞牛
配置解释:remotePort 是暴露在VPS上的端口。这里我们将飞牛的Web界面映射到VPS的 8000 端口,将SSH映射到 6000 端口。
测试运行客户端:
./frpc -c ./frpc.toml
如果看到 start proxy success 等日志,说明连接成功。此时,你可以在浏览器访问 http://你的VPSIP:8000,应该能打开飞牛的登录界面了。
第三步:将frpc设置为飞牛NAS开机自启
飞牛NAS基于Debian系统,我们可以通过systemd实现自启。创建服务文件:
sudo vim /etc/systemd/system/frpc.service
内容如下:
[Unit]
Description=frpc Service
After=network.target
[Service]
Type=simple
User=root
ExecStart=/vol1/frpc/frpc -c /vol1/frpc/frpc.toml
Restart=on-failure
RestartSec=10s
[Install]
WantedBy=multi-user.target
启动并设置开机自启:
sudo systemctl daemon-reload
sudo systemctl enable frpc
sudo systemctl start frpc
注意:请确保你修改了 ExecStart 中的路径,使其指向你实际存放frpc文件的位置。如果飞牛NAS重启后frpc无法自动启动,请检查路径是否正确,以及是否有执行权限(chmod +x /vol1/frpc/frpc)。
进阶:配置HTTPS加密访问(通过Caddy反代)
暴露在公网上的HTTP明文流量存在被劫持的风险。强烈建议使用Caddy在VPS上自动配置HTTPS证书。在VPS上安装Caddy,并修改 Caddyfile:
# 安装Caddy(以Debian为例)
apt install caddy -y
# 编辑配置
vim /etc/caddy/Caddyfile
写入:
fnos.yourdomain.com {
reverse_proxy 127.0.0.1:8000
}
重启Caddy后,你就可以通过 https://fnos.yourdomain.com 安全地访问飞牛NAS了。Caddy会自动申请和续期Let's Encrypt证书,无需手动干预。
常见问题排查
- 连接失败,检查token:确保服务端和客户端的
auth.token完全一致。 - 无法访问Web界面:检查VPS防火墙是否放行了
remotePort(如8000),以及frpc是否在运行(systemctl status frpc)。 - 速度慢:frp的转发速度受限于VPS的带宽。如果对速度有极高要求,可以考虑使用更高级的XTCP协议(P2P模式),但这需要两端网络支持NAT穿透,配置也更为复杂,本文不做展开。
- 日志查看:通过
journalctl -u frpc -f(在NAS上)或journalctl -u frps -f(在VPS上)实时查看日志输出,这是排错最有效的手段。
总结
至此,你已经成功通过frp为飞牛NAS搭建了一条安全、稳定的内网穿透隧道。无论你身在何处,只需通过浏览器或SSH客户端,即可轻松访问家中的NAS数据。这套方案不仅解决了远程访问的痛点,更通过HTTPS加密和令牌认证,保障了通信的安全性。从此,你的飞牛NAS真正成为了一个随时在线的个人云中心。后续你可以根据自己的需求,在frpc.toml中增加更多代理,比如映射Docker中的其他服务,玩法无限。
暂无评论,来说两句吧