Linux · OpenWrt · Windows // 单文件 · MIT
sing-box 内核、geo 分流规则集、Web 控制面板,编进单个可执行文件。TUN 接管整机流量,浏览器打开 localhost:6161 即完成配置。
mkdir -p ~/miao && cd ~/miaowget https://github.com/YUxiangLuo/miao/releases/latest/download/miao-rust-linux-amd64 -O miaochmod +x miao && sudo ./miao[ ok ] 内核已释放并启动(sing-box,/tmp/miao-sing-box)[ ok ] TUN 已接管整机流量(auto_route)[ ok ] 面板就绪 → http://localhost:6161
mkdir -p ~/miao && cd ~/miaowget https://github.com/YUxiangLuo/miao/releases/latest/download/miao-rust-linux-arm64 -O miaochmod +x miao && sudo ./miao[ ok ] 内核已释放并启动(sing-box,/tmp/miao-sing-box)[ ok ] TUN 已接管整机流量(auto_route)[ ok ] 面板就绪 → http://localhost:6161
miao-windows-amd64-setup.exe# NSIS 安装包;缺 WebView2 自动引导下载# 启动单次 UAC 提权接管流量;关窗进托盘# 托盘勾选「开机自启」通过计划任务免 UAC 自启直进托盘
| 常见做法 | miao 的做法 | |
|---|---|---|
| 交付 | 内核、面板、规则集分别安装,手动拼装 | 单文件内嵌全部;运行时文件在 /tmp,系统重启无残留 |
| 首次启动 | 先编写配置文件才能拉起内核 | 无配置直接启动进引导页,不强制落盘任何文件 |
| 配置模型 | 所有配置混合堆砌在单个文件 | 稳定 / 易变 / 状态三层分离;易变层在 tmpfs,系统重启回归安全默认值(零闪存磨损) |
| 配置变更 | 保存后直接重启进程,配置出错断网翻日志 | 先 sing-box check 预检再热重启,预检失败触发快照原子回滚 |
| 可靠性 | 内核崩溃需手动排查并重启服务 | 内置看门狗(2s 巡检 + 1–16s 指数退避)自动拉起崩溃内核,最多 5 次 |
| 界面 | 内核之上另选第三方面板或桌面客户端 | 面板即产品;Linux / OpenWrt 与 Windows 共享完全一致的 Web 核心 |
| 信任边界 | 安全边界模糊或留给用户自行猜测 | Linux 监听 0.0.0.0,写在明处:面向可信局域网;Windows 仅监听 127.0.0.1,面板仅本机可达 |
223.5.5.5;缓存先应答、后刷新Hysteria 2(含混淆与端口跳跃)、VLESS(Reality / XTLS)、VMess、Trojan、Shadowsocks、TUIC、AnyTLSfind_process),连接统计逐条标注发起请求的应用进程(Chrome、qbittorrent、curl…)auto_route + auto_redirect(nftables);Windows:auto_route + strict_route(Wintun 已编进内核)127.0.0.1:6262)config.json.cache:内核秒级拉起,订阅后台异步刷新,不卡开机网络custom_rules: # qbittorrent 直连,不耗机场流量(Windows 写 qbittorrent.exe) - '{"process_name":"qbittorrent","action":"route","outbound":"direct"}' # 指定应用固定走「香港节点」 - '{"process_name":"codex","action":"route","outbound":"香港节点"}'
domain_suffix) / IP(ip_cidr) / 端口 / 进程名(process_name) / 进程路径 → 动作:直连 / 代理 / 拦截 / 指定节点# 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
instructions 明示流量处于代理之下;停核 / 删规则 / 升级等破坏性操作标注 destructiveHint,强制校验 confirm: true0.0.0.0(面向可信局域网);Windows 仅监听 127.0.0.1,面板仅本机可达| 平台 | 文件 | 备注 |
|---|---|---|
| Linux amd64 | miao-rust-linux-amd64 | 桌面 / 服务器 / 虚拟机 · musl 静态单二进制 |
| Linux arm64 | miao-rust-linux-arm64 | 树莓派 / ARM 开发板 / OpenWrt(aarch64) |
| Windows amd64 | miao-windows-amd64-setup.exe | NSIS 安装包 · Win10/11 x64 · 需 WebView2(缺失自动引导下载) |
# 下载最新 release 并注册为 systemd 服务;amd64 / arm64 自动识别,下载即 SHA256 校验curl -fsSL https://raw.githubusercontent.com/YUxiangLuo/miao/master/install.sh | sudo bash# 重复运行即事务式升级:先下载校验,最后短暂停服原子替换;启动失败自动回滚
# 彻底卸载服务,删除二进制、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
TUN 透明代理需要创建虚拟网卡(sing-tun / Wintun)并接管整机路由表——Linux 需要 CAP_NET_ADMIN(即 sudo),Windows 需要管理员权限(每次启动一次 UAC)。除此之外零外部依赖。
原生支持 x86_64 与 aarch64。启动时自动经 apk / opkg 安装缺失内核依赖(kmod-tun、kmod-nft-queue);易变配置与运行时完全置于 /tmp(tmpfs),零 Flash 磨损,适合作为旁路网关或透明网桥。
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。
内核、分流引擎与 Web 面板完全同构。Windows 版由 Tauri 2 宿主承载(自带 WebView 打开本机面板),提供系统托盘、计划任务自启与单实例管理;Linux 版额外提供面板内自升级与 VPS Hysteria 2 一键部署。