适用于 FnRelay 1.0.24。本文按“先知道它能做什么,再知道怎么用”的顺序写。

一、它是做什么的

FnRelay 是运行在飞牛 OS 上的反向代理应用。

它解决的事情很具体:

  • 家里有一批跑在内网端口上的 Web 服务;
  • 自己有域名,想让每个服务用独立域名访问;
  • 想让访问自动走 HTTPS,不想逐个服务改证书;
  • 不想再维护一套独立的管理端口和后台。

安装后,FnRelay 在 NAS 上监听一个端口,比如 8443。浏览器或 App 用域名访问这个端口,FnRelay 根据域名把请求转发到对应的内网服务。

它只负责“入口”和“转发”,不负责业务本身:

https://app.example.com:8443
        │
        ▼
   FnRelay 按域名匹配
        │
        ▼
http://192.0.2.10:8080

一句话:

FnRelay 是飞牛上的域名入口,把多个内网 Web 服务统一到 HTTPS。

FnRelay 域名规则页面

域名规则页:一个域名对应一个上游,支持保留 Host 和泛域名。

二、怎么用:最快路径

安装

在飞牛应用中心安装 FnRelay 的 fpk,或者手动上传 fpk 安装。

安装后,应用数据在:

@appdata/fnrelay

管理界面不单独开端口,从飞牛桌面里的 FnRelay 图标进入。

打开管理界面

第一次打开会看到概览页。

如果代理端口 443 被飞牛系统占用,FnRelay 会自动改用其他端口;也可以在「设置」里手动改。

添加第一条域名规则

点「新建规则」,填三个关键项:

域名:app.example.com
上游:http://192.0.2.10:8080
启用:打开

如果需要让上游看到用户访问的原始域名,打开「保留 Host」。

保存后,规则会立即生效。

配置 DNS 和路由器端口

把域名解析到家里的公网 IP,或者只在内网使用。

然后在路由器上做端口映射,例如:

外部 8443 → NAS 的 8443

如果 NAS 直接使用 443,也可以映射:

外部 443 → NAS 的 443

访问

浏览器打开:

https://app.example.com:8443

如果一切正常,会看到内网服务的页面。

快速检查顺序:

域名能否解析
  ↓
路由器端口是否放行
  ↓
FnRelay 是否在运行
  ↓
规则域名是否匹配
  ↓
上游地址是否能从 NAS 访问

三、下载和项目地址

如果只想先看项目,直接打开项目主页;要安装,按处理器架构下载对应 fpk。

四、适合谁

适合:

  • 飞牛上已经部署了多个 Web 服务;
  • 有域名,想让服务通过 https://服务名.你的域名 访问;
  • 希望证书、跳转、日志在一个界面里管理;
  • 管理入口只从飞牛桌面打开,不额外暴露管理端口。

不适合:

  • 想用它托管网站内容;
  • 想要用户注册、多租户、计费之类的网关能力;
  • 想用它替代路由器防火墙或抗 DDoS;
  • 需要反向代理原始 TCP、UDP、RTSP、SSH、数据库等非 HTTP 协议。

五、它是怎么工作的

FnRelay 单端口工作方式

一个端口同时接收 HTTP 和 HTTPS,按域名转发到内网服务。

FnRelay 的入口只有一个 TCP 监听端口。

连接进来后,它读取第一个字节:

  • 是 TLS 握手,就按 HTTPS 处理;
  • 不是 TLS,就按 HTTP 处理。

HTTPS 握手时,FnRelay 根据 SNI 里的域名选择证书;HTTP 请求进来后,再根据 Host 匹配域名规则。

匹配顺序是:

  1. 精确域名;
  2. 最长泛域名;
  3. 规则指定的证书;
  4. 默认证书;
  5. 内置自签证书。

匹配到规则后,请求被转发到规则里的上游地址。上游可以是 HTTP,也可以是 HTTPS。

六、主要功能

域名和泛域名

  • 精确域名优先;
  • *.example.com 支持子域名匹配;
  • 泛域名按最长后缀优先;
  • 支持批量替换域名后缀,保留 1.、*. 这类前缀。

证书

  • 自动扫描飞牛证书目录;
  • 自动过滤中间证书;
  • 按 SNI 选择最合适的证书;
  • 支持手动导入证书;
  • 续签后可以重新加载。

HTTP 跳转 HTTPS

两种模式:

  • 保持用户访问的端口;
  • 固定跳到指定 HTTPS 端口。

也可以额外开一个只负责跳转的 HTTP 端口。

实时访问

能看到当前正在经过 FnRelay 的请求:

  • 用户 IP;
  • 服务域名;
  • 请求路径;
  • 状态码;
  • 上下行字节;
  • 持续时间;
  • 上游地址。

支持普通 HTTP、流式响应和 WebSocket。

日志

访问日志和审核日志可以只在内存里看,也可以保存到本地文件。

日志里包含真实 IP、X-Forwarded-For、状态码、耗时、User-Agent、命中的规则和上游。

备份与恢复

设置和全部域名规则可以导出为带版本号的 JSON。

恢复时要求版本完全一致,避免旧结构直接覆盖新配置。

备份不包含:

  • 证书私钥;
  • 密码哈希;
  • 日志文件;
  • 当前会话。

管理入口

管理界面只通过飞牛统一网关访问,不单独监听管理端口。

权限跟飞牛登录态绑定,只有飞牛管理员能进入。

七、安装后的第一次配置

建议按这个顺序:

  1. 确认代理端口没有冲突;
  2. 确认证书目录被识别,或者手动导入证书;
  3. 添加一条测试域名规则;
  4. 用内网 hosts 或 DNS 验证;
  5. 再做路由器端口映射;
  6. 最后打开 HTTP 跳转和 HSTS。

不要一开始就把所有域名和跳转都打开,先用一条规则确认链路通。

八、添加规则时注意什么

上游地址要写完整

推荐写:

http://192.0.2.10:8080
https://192.0.2.10:8443

不写协议时默认按 HTTP 处理。

路径

上游可以带路径前缀,FnRelay 会把请求路径拼接到后面。

如果上游只接受特定 Host,打开「保留 Host」;如果上游只认 IP,关闭它。

上游是自签 HTTPS

打开「忽略上游证书错误」。

这只影响 FnRelay 到上游这一段,不影响浏览器看到的证书。

九、证书注意事项

  • 泛域名证书通常只覆盖一级子域;
  • *.example.com 不自动覆盖 a.b.example.com;
  • 多级子域需要对应的证书;
  • 证书和域名不匹配时,浏览器会报错;
  • 换证书后可以在证书页手动重新加载。

十、HTTP 跳转注意事项

跳转使用 308。

308 是永久跳转,浏览器会缓存。确定最终端口之前,不要大规模打开。

如果前面还有一层 CDN 或反向代理终止了 TLS,FnRelay 不会读取 X-Forwarded-Proto 来判断原始协议,跳转可能不符合预期。

十一、实时和日志

「实时」页适合看当前有没有请求卡住、WebSocket 有没有建立、上下行速度是否正常。

「日志」页适合事后排查:

  • 404:域名没匹配到规则;
  • 502:上游连不上;
  • 504:上游响应超时;
  • 101:WebSocket 切换协议,不是错误。

如果日志里大量出现同一个上游的 502,先检查上游服务本身,而不是先改 FnRelay。

十二、备份和升级

升级前先导出当前版本的备份。

升级后如果备份版本和当前版本不一致,恢复会被拒绝,这是故意的,避免结构不兼容。

升级不会删除:

@appdata/fnrelay/config.json
@appdata/fnrelay/certs
@appdata/fnrelay/logs

卸载应用也不会自动删除这些数据。

十三、安全与限制

FnRelay 做了这些基础保护:

  • 管理界面只从飞牛网关进入;
  • 不单独暴露管理端口;
  • 公开的 404/502 页面不显示域名、上游、规则名和后台入口;
  • 修改类请求有额外的请求头校验;
  • 备份不包含证书私钥和密码哈希。

但它不是万能防护:

  • 只支持 HTTP/HTTPS,不支持原始 TCP/UDP;
  • 不启用 HTTP/2;
  • 不能替代路由器防火墙;
  • 挡不住 SYN Flood、TLS Flood 和大流量 DDoS;
  • 上游服务自己仍然需要登录和权限控制。

十四、常见问题

打开管理界面提示从飞牛桌面进入

管理界面依赖飞牛统一网关,不要直接用 NAS 的 IP 和端口访问管理页。

端口被占用

443 可能被飞牛系统占用。可以在「设置」里换端口,或者先取消飞牛对 80/443 的重定向。

域名访问 404

检查:

  • 域名是否在规则里;
  • 规则是否启用;
  • Host 是否带端口;
  • 是否有更精确的规则覆盖了它。

域名访问 502

检查:

  • 上游服务是否在运行;
  • 上游地址和端口是否正确;
  • 上游如果是 HTTPS,证书是否被信任;
  • 是否需要打开「忽略上游证书错误」。

播放器或 App 能打开页面但不能播放

先看实时和日志里媒体请求是否经过 FnRelay。

如果媒体请求是 200/206,说明转发正常,问题更可能在上游转码、码率或客户端网络。

为什么没有单独的端口和密码

管理入口跟飞牛登录态绑定,避免再维护一套账号密码,也避免管理端口暴露到公网。

十五、小结

FnRelay 1.0.24 的定位很简单:

在飞牛上提供一个统一的 HTTPS 域名入口,把请求按域名转发到内网 Web 服务。

它适合家庭 NAS 上多个 Web 服务的统一入口,不适合替代专业网关、防火墙或 DDoS 防护。

先用一条规则把链路跑通,再逐步加证书、跳转、泛域名和日志,是最稳的用法。