第 1 章:认识 Maoge 与核心接管原理
Maoge 是专为 macOS 打造的高性能智能网络分流与抓包调试工具。与跨平台封装的同类工具不同,Maoge 采用 Swift/AppKit 原生构建用户界面,并在底层实现了一套完全兼容 Surge 行为模型与配置协议 的自研协议栈与规则分流引擎。了解数据包在系统中的流动路径,是高效使用 Maoge 的基础。
一、 网络数据包的完整生命周期
当一个 macOS 应用程序(如 Safari、终端中的 curl、或开发工具 Docker)尝试发起一个网络连接请求时,数据包将经历以下标准处理链路:
- 发包拦截(Traffic Interception):通过 macOS 系统的 HTTP/SOCKS5 代理设置,或者通过
utun虚拟网卡接口从系统内核底层直接截获 IP 数据包。 - DNS 判定与 Fake-IP:如果是域名请求,引擎会判断是否可以直接本地解析、走指定的 DoH/DoQ 安全 DNS,或者立即指派 Fake-IP(虚拟 IP 映射)推迟实际远端解析以提升响应速度。
- 上下文识别(Context Identification):引擎根据源 Socket 反查发起该请求的 macOS 宿主进程名(Process Name)、PID、目标域名/IP 以及目标端口。
- 规则匹配链(Rule Evaluation):系统按照规则列表中从上至下的顺序逐条比对。一旦命中规则(例如域名后缀匹配、IP 范围匹配或进程名匹配),即立即锁定对应的出站策略组。
- 策略路由与执行(Policy Execution):
- DIRECT:直连,数据包通过系统的物理主网卡直接发往互联网。
- REJECT / REJECT-DROP:直接阻断或丢弃连接,常用于过滤广告或恶意追踪。
- 代理节点 / 策略组:通过 Shadowsocks、VLESS、VMess、Trojan 等协议建立加密隧道出站,根据延迟测试或健康策略自动择优。
二、 三大流量接管模式对比
Maoge 提供了三种不同层级的流量接管模式,以适应从日常浏览到全屋局域网网络中枢的各类应用场景:
| 接管模式 | 接管层次 | 典型支持范围 | 不支持 / 局限 | 系统权限要求 |
|---|---|---|---|---|
| 系统代理 (System Proxy) |
应用层 (HTTP/SOCKS) |
Safari、Chrome、大部分遵从系统网络代理设置的通用 GUI 应用。 | 不接管终端命令行(如未配置环境变量的 curl/git)、Docker 容器、不遵循代理的联机游戏。 | 普通用户权限(修改网络设置) |
| 增强模式 (Enhanced Mode) |
网络层 (Utun TUN 虚拟网卡) |
全系统全局接管:覆盖终端命令行、开发调试容器、全局 UDP 流量、任何不支持原生代理的闭源软件。 | 仅限安装并运行 Maoge 的当前 Mac 本机生效。 | 需要特权助手授权(创建内核虚拟网卡与出口绑定) |
| 局域网网关 (Gateway & DHCP) |
数据链路与网络层 (ARP 局域网旁路由) |
局域网全设备接管:家庭或办公网络中的 Switch、PS5、Apple TV、手机等无需安装任何客户端。 | 需要 Mac 设备保持开机且处于同二层局域网内。 | 需要特权助手授权(VMNET 底层接口与 ARP 广播应答) |
推荐搭配方案:
日常轻度使用只需开启「系统代理」;开发者、重度终端用户或需要完全杜绝 DNS 泄漏时推荐开启「增强模式」;家庭或实验室多设备加速推荐开启「网关模式」。
三、 精准进程追踪 (PROCESS-NAME) 的底层原理
在 Surge 和 Maoge 的高级规则中,有一类极为强大的规则叫 PROCESS-NAME,例如:
PROCESS-NAME,curl,DIRECT
PROCESS-NAME,com.apple.WebKit.Networking,ProxyGroup
PROCESS-NAME,Telegram,TelegramGroup
能够实现如此精确的进程规则,是因为 Maoge 在协议栈拦截到底层 TCP/UDP 连接套接字时,通过 macOS 内核 API 实时读取其所属的文件描述符(File Descriptor)和 PID,进而获取该进程的完整执行路径与 bundle identifier。这让开发者能够为特定的构建脚本、IDE 或开发环境指定独立代理通道,而不干扰全系统的正常上网行为。
四、 安全架构:特权辅助工具与同 UID 隔离
安全准则:
常规代理工具常采用粗暴的常驻全局 root 权限,这在 macOS 上带来了巨大的提权攻击面。
Maoge 严格遵守 macOS 现代安全架构准则:
- 主界面与核心进程权限隔离:前台 Swift 原生界面与后台 Node 协议核心均运行在当前普通用户权限下,绝不滥用特权。
- 按需授权的特权助手(Privileged Helper):只有在用户显式启动「增强模式(虚拟网卡路由)」或「网关模式(网络接口 ARP)」时,特权助手才会执行受控且严格白名单化的系统接口调用。
- 同 UID 进程间通信(IPC):核心组件与 Swift 前端之间采用严格校验 UID 的私有 Unix Domain Socket,拒绝系统其他未授权用户的任意进程注入。

AI赋能出海: 专业外贸独立站与智能解决方案提供商