云服务器部署 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 安全-防火墙 以及 云服务商后台(腾讯/阿里等) 的安全组中放行以下端口:

  1. 7000 (TCP):隧道通讯。

  2. 7500 (TCP):管理面板。

  3. 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 运行设置

  1. 镜像:拉取 snowdreamtech/frpc

  2. 映射:将本地的 frpc.toml 挂载到容器内的 /etc/frp/frpc.toml

  3. 网络:务必选择 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

评论