miaov0.44.3

Linux · OpenWrt · Windows // 单文件 · MIT

开箱即用的透明代理

sing-box 内核、geo 分流规则集、Web 控制面板,编进单个可执行文件。TUN 接管整机流量,浏览器打开 localhost:6161 即完成配置。

~/miao — sh
mkdir -p ~/miao && cd ~/miao
wget https://github.com/YUxiangLuo/miao/releases/latest/download/miao-rust-linux-amd64 -O miao
chmod +x miao && sudo ./miao
[ ok ] 内核已释放并启动(sing-box,/tmp/miao-sing-box)
[ ok ] TUN 已接管整机流量(auto_route)
[ ok ] 面板就绪 → http://localhost:6161

v0.44.3 · MIT · amd64 / arm64 服务器常驻 → systemd 服务安装

01 面板

Miao 控制面板截图:节点列表、手动节点、订阅管理、自定义规则与活跃链接
面板截图(运行中实例,敏感信息已模糊)· 深色 / 浅色双主题 · 节点、规则、连接、订阅全部在浏览器内完成

02 设计哲学

常见做法miao 的做法
交付内核、面板、规则集分别安装,手动拼装单文件内嵌全部;运行时文件在 /tmp,系统重启无残留
首次启动先编写配置文件才能拉起内核无配置直接启动进引导页,不强制落盘任何文件
配置模型所有配置混合堆砌在单个文件稳定 / 易变 / 状态三层分离;易变层在 tmpfs,系统重启回归安全默认值(零闪存磨损)
配置变更保存后直接重启进程,配置出错断网翻日志先 sing-box check 预检再热重启,预检失败触发快照原子回滚
可靠性内核崩溃需手动排查并重启服务内置看门狗(2s 巡检 + 1–16s 指数退避)自动拉起崩溃内核,最多 5 次
界面内核之上另选第三方面板或桌面客户端面板即产品;Linux / OpenWrt 与 Windows 共享完全一致的 Web 核心
信任边界安全边界模糊或留给用户自行猜测Linux 监听 0.0.0.0,写在明处:面向可信局域网;Windows 仅监听 127.0.0.1,面板仅本机可达

03 特性

TUN 透明代理
基于 sing-tun / Wintun 接管整机流量;路由与防火墙规则自动接管,无需配置系统代理
分流 ⇄ 全局
国内直连 / 国外代理,顶栏一键切换;自定义规则恒优先于内置分流
DNS 双轨分流
国外域名经代理走 Cloudflare DoH,国内直连 223.5.5.5;缓存先应答、后刷新
全协议覆盖
Clash YAML 订阅及分享链接批量解析;原生支持 Hysteria 2(含混淆与端口跳跃)、VLESS(Reality / XTLS)、VMess、Trojan、Shadowsocks、TUIC、AnyTLS
进程级连接审计
基于进程嗅探(find_process),连接统计逐条标注发起请求的应用进程(Chrome、qbittorrent、curl…)
细粒度节点管控
订阅节点可逐一禁用 / 启用,节点池秒级重构且零网络请求;按订阅 + 节点名标识,刷新后改名自然失效、不误伤新节点
VPS 一键自建
面板内 SSH 一键部署 Hysteria 2 节点:版本钉定 + SHA256 校验;凭据经 stdin 注入,不落命令行参数
PWA 与双主题
深色 / 浅色双主题,可安装为独立桌面应用(PWA);Linux 支持面板内一键自升级

04 架构

数据路径
本机全部流量
内嵌 sing-box 内核geoip-cn + 直连域名
规则集决定分流去向
Web 面板(内嵌)

05 进程级分流

~/miao/config.yaml
custom_rules:
  # qbittorrent 直连,不耗机场流量(Windows 写 qbittorrent.exe)
  - '{"process_name":"qbittorrent","action":"route","outbound":"direct"}'
  # 指定应用固定走「香港节点」
  - '{"process_name":"codex","action":"route","outbound":"香港节点"}'

06 MCP (Model Context Protocol)

config.yaml + 端点
# config.yaml 加一行(默认关闭)
mcp: true

# AI agent 即可接管代理;写操作与面板共用同一套配置事务
POST http://<面板地址>/mcp
# get_status · list_nodes · switch_node · set_node_select
# test_delay · set_route_mode · refresh_subscriptions
# list_rules · list_connections · deploy_vps

07 下载与安装

平台文件备注
Linux amd64miao-rust-linux-amd64桌面 / 服务器 / 虚拟机 · musl 静态单二进制
Linux arm64miao-rust-linux-arm64树莓派 / ARM 开发板 / OpenWrt(aarch64)
Windows amd64miao-windows-amd64-setup.exeNSIS 安装包 · Win10/11 x64 · 需 WebView2(缺失自动引导下载)
安装为 systemd 服务 — linux
# 下载最新 release 并注册为 systemd 服务;amd64 / arm64 自动识别,下载即 SHA256 校验
curl -fsSL https://raw.githubusercontent.com/YUxiangLuo/miao/master/install.sh | sudo bash
# 重复运行即事务式升级:先下载校验,最后短暂停服原子替换;启动失败自动回滚
卸载 — linux
# 彻底卸载服务,删除二进制、systemd 单元与 /etc/miao 配置,不留任何痕迹
curl -fsSL https://raw.githubusercontent.com/YUxiangLuo/miao/master/remove.sh | sudo bash
校验下载 — 可选
# 每个 release 附带逐资产 .sha256(Windows 安装包为 .exe.sha256)
wget https://github.com/YUxiangLuo/miao/releases/latest/download/miao-rust-linux-amd64{,.sha256}
sha256sum -c miao-rust-linux-amd64.sha256

全部历史版本与 Release Notes → GitHub Releases

08 FAQ

为什么需要 root / 管理员权限?

TUN 透明代理需要创建虚拟网卡(sing-tun / Wintun)并接管整机路由表——Linux 需要 CAP_NET_ADMIN(即 sudo),Windows 需要管理员权限(每次启动一次 UAC)。除此之外零外部依赖。

支持 OpenWrt / 软路由吗?

原生支持 x86_64 与 aarch64。启动时自动经 apk / opkg 安装缺失内核依赖(kmod-tun、kmod-nft-queue);易变配置与运行时完全置于 /tmp(tmpfs),零 Flash 磨损,适合作为旁路网关或透明网桥。

相比 Clash Verge / v2rayN 等 GUI 客户端有何区别?

Miao 只做整机透明代理:应用无需逐个配置 HTTP/SOCKS5 端口;内核、分流规则与面板单文件交付,无环境依赖;桌面、无头服务器与路由器上体验一致。

配置文件保存在哪里?

不创建任何文件也能开箱即用。手写配置只有 config.yaml(按 --config → 程序同级目录 → /etc/miao/config.yaml 顺序查找);节点选择、路由模式与禁用节点则写入易变层 volatile.yaml(Linux/OpenWrt 在 tmpfs,Windows 在应用数据目录)。

系统重启后选定的节点和模式会丢失吗?

应用重启与版本热升级期间设置完整保留。整机重启后:显式选定的具体节点自动恢复;路由模式与地区自动选择回到 config.yaml 的启动默认值——刻意设计的 fail-safe,防止重启后维持意外的代理状态。

控制面板有密码鉴权吗?

默认无鉴权。Linux 监听 0.0.0.0:6161,面向可信局域网;如需暴露公网,请前置带认证的反向代理(Nginx / Caddy)。Windows 版仅绑定 127.0.0.1。

Windows 版和 Linux 版有何差异?

内核、分流引擎与 Web 面板完全同构。Windows 版由 Tauri 2 宿主承载(自带 WebView 打开本机面板),提供系统托盘、计划任务自启与单实例管理;Linux 版额外提供面板内自升级与 VPS Hysteria 2 一键部署。