视频加载失败

[开源] Fonu - 专为 fnOS 准备的轻量 DDNS + HTTPS 证书 + 反向代理工具

1727 字
9 分钟
[开源] Fonu - 专为 fnOS 准备的轻量 DDNS + HTTPS 证书 + 反向代理工具
[开源] Fonu - 专为 fnOS 准备的轻量 DDNS + HTTPS 证书 + 反向代理工具

最近一直在折腾飞牛 fnOS 的公网访问。平时真正用得比较多的,其实就几件事:DDNS、HTTPS 证书、反向代理;没有公网 IP 时还得加一层 内网穿透。

社区里已有 Lucky 等成熟方案,功能非常强。但对我自己来说,长期打开的也就这几项,很多高级能力基本用不到,整体略重。所以干脆写了一个更轻量的:Fonu——面向 fnOS 公网访问,把「域名 → DDNS → 证书 → 反代 → 内网服务」这条链路尽量做简单;没有公网 IP 时还能接上 FRP 把本地 Nginx 网关穿透出去。环境变量、端口说明、Compose 示例见仓库 README(文末链接);这篇是推广,不是说明书。

Fonu 是做什么的#

Fonu 不是「大而全」的网络工具,而是把 NAS 公网访问最常用的几块收进一个 Web 后台:

  • DDNS:IPv4 / IPv6,多域名,Cloudflare、DNSPod、阿里云、腾讯云 DNS
  • HTTPS 证书:ACME 申请与自动续签(Let’s Encrypt、ZeroSSL),多域名与通配符
  • 反向代理:HTTP / HTTPS、WebSocket,流量统计、当前连接数、规则详情与访问日志
  • 内网穿透:内置 frpc,Nginx 网关模式,把本地反代同步到 VPS 上的 frps
  • 访问保护:IP 黑白名单、大陆 IP 限制、Basic Auth、限流、自定义错误页

有公网 IP 时:

域名 → DDNS → HTTPS 证书 → 反向代理 → fnOS / MoviePilot / Jellyfin / 青龙 / …

没有公网 IP 时,可在 Fonu 里接上 FRP:

外部用户 → frps(VPS)→ frpc → Fonu Nginx → 内网服务

和 PicHost 一样,都是我自己在 NAS 上长期跑着、顺手开源出来的小工具;Fonu 管公网入口,PicHost 管博客配图。


为什么又写一个反代工具#

估计很多人第一反应是:Lucky 已经很成熟了,为什么还要写?

原因很直白:我自己的需求比较单一——就是 DDNS + 证书 + 反代(偶尔加 FRP)。Lucky 功能全面,但很多我用不到;Fonu 的方向不是替代 Lucky,而是:

只把飞牛 NAS 公网访问常用的几项单独做好:简单、轻量、配置直观。

需要非常完整、非常高级的网络能力,Lucky 肯定更合适;如果只是给自己的 fnOS 配域名、证书、反代,可以试试 Fonu。


专为 fnOS,独立 Nginx#

Fonu 目前按 飞牛 fnOS 场景开发和测试,我自己也主要在 fnOS 上用。群晖、威联通、自建 Linux 等环境理论上能跑 Docker 就可能能用,但没有专门做过完整测试,现阶段优先推荐 fnOS 用户。

另一个重要设计:Fonu 跑自己独立的一套 Nginx,不会去改飞牛系统自带的 Nginx 配置。

fnOS
├── 飞牛自己的 Nginx
└── Fonu
├── DDNS
├── HTTPS 证书
├── 独立 Nginx → 反向代理
└── frpc → 内网穿透(可选)

增加一条反代规则,不必动系统 Nginx;两边正常情况下互不干扰。飞牛已占用 80/443 时,Fonu 默认用高位端口(如 18080 / 9443)做反代,管理后台在 :6893。


产品展示#

后台基于 Vue 3 + Naive UI,支持浅色 / 深色主题。下面是我自己在 fnOS 上实际在用的界面截图。

仪表盘#

公网 IP、域名、证书、服务状态一屏看完;今日请求按 0–24 时固定坐标展示,实时流量、最近访问与系统日志也集中在这里。

Fonu 仪表盘
Fonu 仪表盘

DDNS#

多服务商、多根域名,解析记录与同步状态一页管理;支持 IPv4 / IPv6,同步间隔可配。启用 FRP 时会提示把域名解析到 VPS 公网 IP。

Fonu DDNS
Fonu DDNS

HTTPS 证书#

ACME 申请与自动续签,支持 Let’s Encrypt / ZeroSSL;证书、私钥、ZIP 下载,申请过程有实时日志,快到期会在仪表盘提示。

Fonu 证书管理
Fonu 证书管理

反向代理#

规则列表可看每条服务的运行状态、当前 / 总上下行、连接数;支持扫描内网服务、列表内直接启停规则;新建时会校验监听端口是否已被占用。全局汇总卡片一眼看整体流量。

Fonu 反向代理列表
Fonu 反向代理列表

新建规则尽量保持简单:填前端域名、监听端口、目标地址,勾选 HTTPS 和跳转即可。例如 mp.example.com → http://192.168.1.100:3000。

Fonu 新增反代规则
Fonu 新增反代规则

点进单条规则可看实时流量曲线、累计统计和 SSE 访问日志;列表里「复制」会打开预填好的表单,确认后再保存(不会悄悄改域名后缀);域名旁可直接复制或打开链接,拖动排序调整优先级。

Fonu 规则详情
Fonu 规则详情

每条规则还可切换 Nginx 页签:默认按基础配置与安全策略自动生成带中文注释的 server 块,也支持手动编辑、保存前备份与回滚。

Fonu 规则 Nginx 配置
Fonu 规则 Nginx 配置

访问保护#

反代出去的可能是 fnOS 后台、青龙、MoviePilot、qBittorrent、Alist 等管理界面。每条规则可单独配安全策略:大陆 IP 限制(内网段默认放行)、黑白名单、Basic Auth、请求限流、连接数限制、安全响应头等;也有「一键推荐」快捷开启常用组合。

Fonu 反代安全设置
Fonu 反代安全设置

内网穿透#

独立「内网穿透」页:配置 frps 地址、端口与 Token,一键启用后把本地 Nginx 的 HTTP/HTTPS 网关同步到 FRP;TCP 隧道可手动指定远程端口(1–65535,留空则自动分配)。Docker 镜像内置 frpc,页面会按连接设置生成 frps.toml 示例。

Fonu 内网穿透
Fonu 内网穿透

日志中心#

系统日志、反代访问日志与 Nginx 错误日志分 tab 查看,支持关键词搜索与自动刷新,排障时不用 SSH 翻文件。

Fonu 日志中心
Fonu 日志中心

设置#

外观与时区、DDNS / 证书自动任务、反代可信代理与中国 IP 库更新、全局 IP 白名单、管理密码、Telegram / Webhook / SMTP 等通知(各通道独立配置,单条密钥异常不影响其它通道)、ACME 邮箱、配置导出与恢复等;高级里还可编辑 Nginx http 块全局片段(如 client_max_body_size)。

Fonu 设置
Fonu 设置


想试的话#

现阶段只提供 Docker 部署,暂无 fnOS 原生 .fpk;Host 网络模式在飞牛上最省事:

Terminal window
docker run -d \
--name fonu \
--network host \
-v ./data:/data \
--restart unless-stopped \
muxui/fonu:latest

数据统一在 /data,务必挂载 volume,更新容器配置才不会丢。启动后看日志拿 admin 初始密码,访问 http://<主机IP>:6893/login 登录,进设置立刻改密码。


写在最后#

公网访问这件事,对我来说不需要一个「全能网络中枢」,只需要把域名、证书、反代(以及偶尔需要的 FRP 穿透)做得顺手、别跟系统 Nginx 打架。Fonu 就是按这个思路写的;若你也在 fnOS 上折腾同类需求,欢迎 Star、Issue 或评论区聊。

相关链接#

O96u
/
Fonu
面向飞牛fnOS的轻量公网访问管理工具
—
—
GPL-3.0
Go
muxui
/
fonu
面向飞牛fnOS的轻量公网访问管理工具
10.6K
0

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

[开源] Fonu - 专为 fnOS 准备的轻量 DDNS + HTTPS 证书 + 反向代理工具
https://muxui.com/posts/fonu-fnos-ddns-https-reverse-proxy/
作者
Muxui
发布于
2026-09-15
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
Muxui
写代码、记笔记,把折腾过的东西留给未来的自己。
公告
欢迎来到我的博客!这是一则示例公告。
统计
分类
标签
站点统计
文章
23
分类
3
标签
28
总字数
56,337
运行时长
0 天
天气预报
定位中...
----
高温 --°C / 低温 --°C
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录