需启用IPv4转发、识别共享网卡、配置pf重定向规则、启动透明模式代理、设置设备网关并安装信任证书。具体包括:1. sudo sysctl -w net.inet.ip.forwarding=1;2. 用ifconfig确认bridge100等接口;3. 编写pf规则将80/443端口流量重定向至127.0.0.1:8080;4. mitmproxy --mode transparent --showhost;5. 设备手动配置IP与网关;6. 访问mitm.it安装并信任证书。

如果您希望在 macOS 系统上构建一个透明代理网关,使局域网内其他设备的 HTTP/HTTPS 流量自动经由本机中转并可被 mitmproxy 或 Reqable 等工具捕获分析,则需绕过客户端代理配置,直接在网络层实施流量重定向。以下是实现该目标的关键技术步骤:
一、启用系统 IP 转发功能
macOS 默认禁用 IPv4 数据包转发能力,必须手动开启才能让本机承担网关角色。该操作是后续所有流量重定向生效的前提条件。
1、在终端中执行命令启用 IPv4 转发:
sudo sysctl -w net.inet.ip.forwarding=1
2、验证是否已生效:
sysctl net.inet.ip.forwarding
3、若返回值为 net.inet.ip.forwarding: 1,表示启用成功。
二、识别并确认共享网卡接口名称
透明代理依赖于将目标设备流量导向本机,因此必须准确指定接收外部流量的物理或虚拟网卡(如 bridge100、en0、en1 或 ap1),否则 pf 规则无法匹配真实入向路径。
1、运行命令列出全部网络接口:
ifconfig | grep "^[a-z]" | awk '{print $1}' | sed 's/://' | grep -E "^(en|bridge|ap)"
2、查找名称中含 bridge 或 ap 的接口,通常为 Wi-Fi 热点所绑定的虚拟网卡。
3、若使用系统自带“互联网共享”功能,热点接口常为 bridge100;若使用 Connectify 或第三方工具,需根据实际输出确认。
三、配置 pf 防火墙重定向规则
macOS 使用 pf(packet filter)替代 iptables 实现 NAT 层流量劫持。需编写规则文件,将指定端口的 TCP 流量透明重定向至本地代理监听端口(如 8080),且不修改原始请求头中的 Host 字段。
1、创建规则文件:
echo "rdr pass on bridge100 inet proto tcp to any port {80, 443} -> 127.0.0.1 port 8080" | sudo tee /etc/pf.anchors/mitmproxy
2、编辑主配置文件以加载该锚点:
echo "load anchor \"mitmproxy\" from \"/etc/pf.anchors/mitmproxy\"" | sudo tee -a /etc/pf.conf
3、重新加载 pf 配置:
sudo pfctl -f /etc/pf.conf
4、启用 pf 服务:
sudo pfctl -e
四、启动透明模式代理服务
代理程序必须明确声明以透明模式运行,并启用 --showhost 参数,以便正确还原原始请求目标域名。否则,重定向后的 HTTPS 请求将因缺失 Host 头而无法解析。
1、启动 mitmproxy 透明代理:
mitmproxy --mode transparent --showhost
2、若需 Web 界面交互,改用以下命令:
mitmweb --mode transparent --showhost
3、验证代理进程是否监听 8080 端口:
lsof -i :8080 | grep LISTEN
五、配置测试设备网络路由
目标设备必须将本机设为默认网关,才能使其出站流量进入重定向路径。此步骤与代理软件本身无关,但决定整个透明代理链路是否可达。
1、在 iOS 或 Android 设备的 Wi-Fi 设置中,点击已连接热点名称右侧的“i”图标。
2、进入“配置 IP” → “手动”,填写如下信息:
IP 地址:与本机热点网段一致的未占用地址(如 192.168.2.100)
子网掩码:255.255.255.0
路由器:填入本机在该热点网络中的 IP 地址(如 192.168.2.1)
3、保存设置后,设备所有 HTTP/HTTPS 流量将自动发送至本机,并被 pf 规则捕获转发至 mitmproxy。
六、安装并信任代理证书
HTTPS 流量解密依赖于客户端信任 mitmproxy 生成的 CA 根证书。若未完成此步,浏览器将显示安全警告,且无法查看加密内容。
1、在测试设备浏览器中访问:
http://mitm.it
2、页面将自动识别设备类型并提供对应格式的证书下载链接(iOS 为 .mobileconfig,Android 为 .pem)。
3、下载后点击安装,并在系统设置中进入“已下载描述文件”或“凭证管理”完成信任配置。
4、关键验证点:安装后访问任意 HTTPS 网站不应再出现“您的连接不是私密连接”提示,且 mitmproxy 中应显示完整 URL 和响应体。










