云服务器部署 FRP 实现飞牛 NAS (fnOS) 内网穿透实战指南
1. 核心架构与原理
利用具有公网 IP 的云服务器作为中转站。通过运行在服务器上的 frps (服务端) 和运行在 NAS 上的 frpc (客户端) 建立加密隧道,将内网服务安全地映射到公网域名。
2. 服务端部署:1Panel 可视化安装
在云服务器上,我们使用 1Panel 面板的应用商店一键部署。这种方式自带美观的 Dashboard 监控界面。
2.1 安装参数配置
在 1Panel 安装界面(如下图所示),请务必记录以下关键配置:
-
服务端端口 (
7000):FRP 客户端连接服务器的通讯端口。 -
Dashboard 端口 (
7500):用于查看 FRP 运行状态的可视化管理界面。 -
用户名/密码:登录 Dashboard 界面所需的凭证。
-
密钥 (Token):客户端接入服务端时的身份验证令牌(如
token123456),这是最重要的安全保障。
2.2 防火墙放行 (必做)
由于容器使用 Host 模式,你需要在 1Panel 安全-防火墙 以及 云服务商后台(腾讯/阿里等) 的安全组中放行以下端口:
-
7000 (TCP):隧道通讯。
-
7500 (TCP):管理面板。
-
5666 (TCP):业务传输(以此处演示的服务端口为例)。
3. 客户端部署:飞牛 NAS (fnOS) 侧
在飞牛 NAS 上,我们通过 Docker 部署客户端。
3.1 编写 frpc.toml 配置文件
在 NAS 目录(如 /vol1/1000/docker/frp/)下创建配置文件,内容如下:
Ini, TOML
# 服务端连接设置
serverAddr = "hui.scuhui.top" # 你的解析域名或服务器IP
serverPort = 7000
loginFailExit = false # 启动失败不退出,持续重连
# 安全验证(需与 1Panel 安装时的“密钥”一致)
auth.method = "token"
auth.token = "token123456"
# 具体的转发规则
[[proxies]]
name = "feiniu_web" # 规则名称
type = "tcp" # 协议类型
localIP = "127.0.0.1" # 指向 NAS 本身
localPort = 5666 # NAS 内部服务的实际端口
remotePort = 5666 # 映射到公网访问的端口
3.2 Docker 运行设置
-
镜像:拉取
snowdreamtech/frpc。 -
映射:将本地的
frpc.toml挂载到容器内的/etc/frp/frpc.toml。 -
网络:务必选择 Host 模式 以确保连接稳定性。
4. 试错总结与避坑指南
在配置过程中,我们总结了以下几个高频“坑点”:
-
回环地址陷阱:在客户端配置
serverAddr时,绝对不能写127.0.0.1。必须填入公网 IP 或已解析的域名(如hui.scuhui.top),否则客户端会尝试连接 NAS 自身。 -
Token 匹配冲突:如果在 1Panel 安装时设置了“密钥”,客户端
frpc.toml必须配置对应的auth.token段落,否则服务端会拒绝连接。 -
端口放行层级:不仅要在 1Panel 面板里开端口,还要去云服务器供应商的 Web 后台开安全组规则,双重保险才能通。
5. 最终效果
部署完成后,你可以通过以下方式访问你的 NAS:
-
监控面板:访问
http://hui.scuhui.top:7500查看隧道是否在线。 -
NAS 访问:通过域名直达
http://hui.scuhui.top:5666。
评论