把 TCP/UDP 转发,
管在自己的服务器上。

MiaoMiaoRelay 是一个用 Rust 写的转发管理后台。规则、节点、流量计费、套餐收款和审计, 都在一个面板里完成。实际转发由节点程序执行,业务流量不经过后台。

后端
Rust · Axum
数据库
PostgreSQL 或 SQLite
接口
OpenAPI
入口节点经隧道转发到出口节点,再连接业务目标 入口组 出口组 业务目标 上海 01 :21001 东京 01 gRPC 隧道 93.184.216.34 :443 TLS · TCP / UDP
rule "上海 → 东京 中转" {
  ingress  :21001 tcp
  egress   东京组
  target   93.184.216.34:443
}
一条转发规则从上海入口节点,经东京出口节点连接业务目标的示意。

一个后台,管理所有转发节点。

面板下指令,后台存配置和账单,节点负责监听和转发。后台暂时连不上时, 节点继续按最后一次配置工作。

面板 网页管理界面 放在 Cloudflare Pages 或任意静态托管
后端 Rust · Axum 保存规则、账单和审计记录
节点程序 转发与探针 监听、转发、上报流量

数据库启动时自动建表。开发可以用 SQLite,生产可换 PostgreSQL。 服务器只跑镜像,不用安装 Rust。

功能

从规则下发到收款对账,常用操作都在后台完成。

规则集中管理

入口共享监听配置,出口按连接数挑节点。支持 TCP、UDP、直出和链式出口。

TLS 分流

按域名分流 TLS,子规则共用端口,后台不保存私钥。

多目标与故障转移

支持轮询、加权、最少连接和优先级切换,目标异常可重试。

高级转发参数

UDP over TCP、Host/Path 过滤、IPv6 偏好;规则改动有历史,可回滚。

管理面板

面板是纯静态网页,可以放到 Cloudflare Pages 或任意静态托管。 截图来自正在运行的实例。

控制面板概览页:实际用量、计费配额、节点在线状态与近 30 天流量趋势
全站用量、在线节点、告警和 30 天趋势。

部署

后端用现成镜像,服务器只拉镜像;面板构建成静态文件,单独托管。 节点由后台签发的一次性令牌接入。

后端

脚本会生成数据库密码和主密钥,创建管理员,然后启动数据库和后端。

bash
curl -fsSLo deploy.sh https://mmr-dl.nowhere.best/backend/deploy.sh
bash deploy.sh --version v0.0.1 \
  --cors-origin https://panel.example.com

后端默认只监听 127.0.0.1:8080,请放在 HTTPS 反向代理后。节点远程接入需要 TLS 证书。

升级

升级保留数据、密钥和管理员。回滚时换成旧版本号。

bash
curl -fsSLo upgrade.sh https://mmr-dl.nowhere.best/backend/upgrade.sh
bash upgrade.sh --version v0.1.0

面板

把 web 目录构建成静态文件,通过环境变量指向后端 API。

构建命令
npm run build
根目录
web
产物目录
web/dist
环境变量
VITE_API_BASE_URL
bash
npm --prefix web run build
npx wrangler pages deploy web/dist \
  --project-name miaomiaorelay-panel

节点

在面板新建节点,签发 10 分钟一次性令牌,节点程序用令牌注册。 节点不能自行创建;公网地址要和实际拨号地址一致。