- muxui2026-09-2245628
最近一直在折腾飞牛 fnOS 。
NAS 上跑的服务越来越多之后,我发现公网访问这件事其实挺碎的:
- 域名要做 DDNS
- 服务要配 Nginx 反代
- HTTPS 要申请和续期证书
- 没公网 IP 的时候还得折腾 FRP
- 出问题之后又要去翻各种日志
这些东西单独拿出来其实都不复杂,但来回切几个工具、改配置文件,时间长了还是有点烦。
于是自己写了一个小工具:Fonu。
目前主要是针对 飞牛 fnOS 开发和测试的,目标比较简单:
尽量在一个 Web 页面里,把 NAS 公网访问相关的事情都处理掉。
目前已经有:
- Nginx 反向代理管理
- DDNS
- Cloudflare
- DNSPod
- 阿里云
- 腾讯云
- 火山引擎
- Let's Encrypt HTTPS 证书自动申请 / 续期
- FRP 内网穿透
- 公网 IP / 域名 / 证书 / 服务状态仪表盘
- Nginx 访问日志、错误日志
- 请求量和流量统计
- 邮件 / Webhook / Telegram 通知
- 配置备份和恢复
- 深色模式
产品预览
仪表盘
|
DDNS
|HTTPS 证书
|
HTTPS 证书 · 申请向导
|反向代理
|
反向代理 · 规则详情
|反向代理 · 规则配置
|
反向代理 · 安全设置
|反向代理 · Nginx 配置
|
日志中心
|内网穿透 · Web 网关
|
内网穿透 · TCP 转发
|系统设置
|
系统设置 · 高级
|技术栈
层级 |
技术 |后端 |
Go 1.23 、标准库 HTTP 、SQLite ( modernc.org/sqlite ) |反向代理 |
内置 Nginx (动态生成配置、热重载) |证书 |
go-acme/lego ( Let's Encrypt ) |DDNS |
Cloudflare / DNSPod / 阿里云 / 腾讯云 / 火山引擎 DNS API |内网穿透 |
内置 frpc ( v0.71.x ); Web 网关穿透 Fonu Nginx ,另支持 TCP 远程端口映射 |前端 |
Vue 3 、TypeScript 、Vite 、Naive UI 、ECharts |部署 |
Docker 多架构镜像( amd64 / arm64 )、GitHub Actions CI |部署```
docker run -d \
--name fonu \
--net=host \
-v ./data:/data \
--restart unless-stopped \
muxui/fonu:latest
``然后访问:``
http://NAS-IP:6893
```因为飞牛本身会占用 80/443 ,所以针对 fnOS 默认使用高位端口做反代,避免直接和系统 Nginx 打架。关于没有公网 IP
这个也是我自己比较想解决的一个场景。
Fonu 现在内置了 frpc ,可以配合一台有公网 IP 的 VPS 跑 frps:```
用户
↓
DNS
↓
VPS / frps
↓
NAS / frpc
↓
Fonu Nginx
↓
内网服务
```也就是说即使家里没有公网 IPv4 ,域名、HTTPS 、反代规则、访问日志这些还是统一在 Fonu 里面管理。GitHub:
主楼 - 暂无回复