[开源] Fonu - 专为 fnOS 准备的轻量 DDNS + HTTPS 证书 + 反向代理工具
![[开源] Fonu - 专为 fnOS 准备的轻量 DDNS + HTTPS 证书 + 反向代理工具](https://s.muxui.com:8015/images/2026/09/s7ehnVfHUcoq.webp)
最近一直在折腾飞牛 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 时固定坐标展示,实时流量、最近访问与系统日志也集中在这里。

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

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

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

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

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

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

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

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

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

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

想试的话
现阶段只提供 Docker 部署,暂无 fnOS 原生 .fpk;Host 网络模式在飞牛上最省事:
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 或评论区聊。
相关链接
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!













