Linux · OpenWrt 单文件 · 开箱即用 最新版本 MIT License

开箱即用的透明代理

在 Linux 或路由器上搭分流代理,通常意味着装内核、写配置、调防火墙、再找个面板。 Miao 把这一切打包成单个可执行文件——内嵌 sing-box 内核、分流规则与 Web 面板。 下载、sudo 运行、浏览器自动打开,结束。

Miao 控制面板:节点选择、手动节点、订阅管理、自定义规则与活跃链接

面板实拍,服务器与订阅信息已打码

30 秒上手

三条命令。找不到配置时会先进入引导页,不落盘任何文件。

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
无法访问 GitHub?用镜像站
镜像站(无需访问 GitHub)
# 一键安装为 systemd 服务
curl -fsSL https://miao.vesein.dev/install.sh | sudo MIAO_BASE_URL=https://miao.vesein.dev/dl bash

# 卸载
curl -fsSL https://miao.vesein.dev/remove.sh | sudo bash

镜像每 6 小时与最新 release 同步;二进制校验和见 sha256sums.txt

为什么是 Miao

传统方式

  1. 装 sing-box 内核
  2. 手写 JSON 配置
  3. 调防火墙 / iptables
  4. 再找面板拼装
  5. 出问题翻日志

Miao

  1. 下载一个文件
  2. sudo 运行
  3. 浏览器自动打开引导页

不创建任何文件也能跑起来;需要精细控制时,配置参考在等你。

功能一览

从内核到面板,一个文件全包。

单文件交付

内核、规则集、面板全部内嵌进一个可执行文件,下载即用;运行时文件在 /tmp,重启不留残渣。

TUN 透明代理

auto_route + auto_redirect 接管整机流量,不碰 iptables,不动防火墙。

规则分流 ⇄ 全局

国内直连 / 国外代理一键切换;自定义规则优先于内置分流,全局模式下依然生效。

DNS 双轨

国外域名经代理走 Cloudflare DoH,国内直连 223.5.5.5;8 小时乐观缓存,先应答后刷新。

进程级分流

按进程名/路径指定出口节点:qbittorrent 直连、AI 工具走专线,面板点选即成。

节点全来法

Clash YAML 订阅、主流协议分享链接(hy2/ss/vmess/vless/trojan/tuic/anytls)批量导入、VPS 一键部署 Hysteria2。

面板全管理

启停、延迟测试、连接统计、订阅刷新、版本自升级,全部在浏览器里完成。

去广告

内嵌广告规则集,路由层拦截,一键开关;自定义放行规则可对误拦域名生效。

对某个进程,指定出口节点

qbittorrent 永远直连、不耗机场流量;让 codex 固定走低延迟节点; 浏览器照旧规则分流。进程名或路径匹配,面板里下拉即选。

节点日后消失(订阅刷新改名)也不慌:规则自动跳过、面板标记提醒,节点恢复后自动生效。

config.yaml
custom_rules:
  - '{"process_name":"qbittorrent","action":"route","outbound":"direct"}'
  - '{"process_name":"codex","action":"route","outbound":"香港节点"}'

它是怎么工作的

┌─────────────┐   TUN    ┌──────────────────┐   Clash API   ┌─────────┐
│ 本机全部流量 │ ───────▶ │ 内嵌 sing-box 内核 │ ◀──────────▶ │ Web 面板 │
└─────────────┘          │ geoip-cn 规则集    │  127.0.0.1   │ (内嵌)   │
                         │ 决定分流去向       │              └─────────┘
                         └──────────────────┘
TUN 透明代理接管整机流量,不碰 iptables
DNS 双轨:国外 Cloudflare DoH,国内 223.5.5.5,乐观缓存
配置变更先 sing-box check 校验再热重启,失败自动回滚

平台与下载

平台文件备注
Linux amd64 miao-rust-linux-amd64 桌面 / 服务器
Linux arm64 miao-rust-linux-arm64 树莓派 / ARM 盒子
OpenWrt 按架构同上 仅 x86_64 / aarch64(软路由、ARM 盒子);自动安装依赖,不写 flash

全部版本与更新日志 → GitHub 下载慢?镜像站:https://miao.vesein.dev/dl/

常见问题

为什么需要 root?

TUN 透明代理需要创建虚拟网卡并接管整机流量,这是内核级权限。除此之外没有别的依赖——一个文件,sudo 运行即可。

支持 OpenWrt 吗?

支持。启动时自动检测并安装依赖;运行时文件全部放在 /tmp,不写路由器 flash。注意仅支持 x86_64 与 aarch64 架构(x86 软路由、ARM64 盒子),mips 机型不在支持范围。

配置存在哪里?

不创建任何文件也能用。需要持久化时按此顺序查找:--config 指定路径 → 可执行文件同目录 config.yaml → /etc/miao/config.yaml。面板里的分流/全局模式是会话级状态,重启后总是回到规则分流。

怎么卸载干净?

sudo bash remove.sh 会停止并删除 systemd 服务、二进制、/etc/miao 配置目录与 /tmp 运行时文件,并清理残留的 sing-box 进程与 sing-tun 网卡。

面板有鉴权吗?

没有。面板监听 0.0.0.0:6161,面向可信局域网设计——请勿暴露到公网,或在前面套一层带鉴权的反向代理。

节点从哪里导入?

三种来法:Clash YAML 订阅;粘贴分享链接(hysteria2/hy2/ss/vmess/vless/trojan/tuic/anytls)批量导入;「VPS 部署」填入 IP 和 root 密码,自动在远端部署 Hysteria2 并写回本地,密码不保存。

下载一个文件,30 秒后见。