聊城市网站建设_网站建设公司_服务器部署_seo优化
2026/1/12 20:48:51 网站建设 项目流程

大家好,我是jobleap.cn的小九。
在 macOS 下用 mitmproxy 做 HTTP/HTTPS 抓包,可以分成四步:安装、启动代理、配置系统/浏览器代理、安装并信任证书(HTTPS 必须)。 下面用最常用的 mitmweb 图形界面举例,顺带给出终端版 mitmproxy 的用法。[1][2][3]

安装 mitmproxy(macOS)

  • 使用 Homebrew(推荐):在终端执行
    brewinstall--cask mitmproxy
    安装完成后会有mitmproxy / mitmweb / mitmdump三个命令可用。
  • 如果不想用 Homebrew,也可以到官网下载独立二进制包,解压后直接运行对应可执行文件即可。

启动 HTTP/HTTPS 代理

mitmproxy 默认监听 8080 端口,对 HTTP/HTTPS 都生效(代理层面不区分协议)。

  • 启动浏览器 GUI:
    mitmweb -p8080
    启动后会监听127.0.0.1:8080,并在浏览器打开一个控制台,所有经过的 HTTP/HTTPS 请求都会在这里显示,可点选查看请求头、响应体等。
  • 启动终端交互界面:
    mitmproxy -p8080
    这是 TUI 版本,通过键盘操作进行流量查看和拦截修改,适合习惯键盘流的场景。

只抓 HTTP 的话,到这一步 + 配好代理已经够用,因为 HTTP 无须证书。HTTPS 再看后两节。

配置 macOS / 浏览器代理(HTTP + HTTPS)

目标是让要抓的流量都走到127.0.0.1:8080。下面以抓桌面浏览器为例。

  • 在 macOS 系统层配置(影响所有走系统代理的应用):

    1. 打开「系统设置」→「网络」。
    2. 选择当前使用的网络(如 Wi‑Fi),点「详情」或「高级」。
    3. 找到「代理」页签,勾选:
      • HTTP 代理
      • HTTPS 代理
    4. 服务器填127.0.0.1,端口填8080(需与 mitmweb/mitmproxy 实际监听端口一致)。
  • 单独在浏览器里配置(只影响该浏览器):

    • Chrome/Edge:通常跟随系统代理;如用了 SwitchyOmega 之类插件,就在插件里将 HTTP/HTTPS 代理都设为127.0.0.1:8080
    • Firefox:可在「设置 → 网络设置 → 手动代理配置」里单独指定 HTTP / HTTPS 代理为127.0.0.1:8080

此时访问纯 HTTP 网站(如http://example.com),mitmweb/mitmproxy 中已经可以看到完整请求/响应,无须额外配置,这就是完整的 HTTP 抓包流程。

HTTPS 抓包:安装并信任 mitmproxy 证书

要解密 HTTPS,关键是让系统/浏览器信任 mitmproxy 的根证书。流程概括为:通过代理访问http://mitm.it→ 下载证书 → 导入钥匙串并设为「始终信任」。

  1. 确认代理已生效:
    • 确保 mitmweb/mitmproxy 正在运行,且 macOS/浏览器代理已指向127.0.0.1:8080
  2. 在要抓包的浏览器中访问:
    • 打开http://mitm.it(注意是 http,不是 https)。
    • 页面会出现各平台的证书下载按钮,选择「macOS」或「Other」并下载证书文件(一般是.pem.crt)。
  3. 导入到 macOS 钥匙串:
    • 双击下载的证书,会自动打开「钥匙串访问」。
    • 建议导入到「系统」或「登录」钥匙串。导入后在证书列表中找到它(一般名字包含mitmproxy)。
  4. 设置为信任:
    • 在「钥匙串访问」中双击该证书,展开「信任」设置。
    • 将「使用此证书时」改为「始终信任」,关闭窗口时会要求输入密码确认。
    • 设置完成后,浏览器/系统会信任 mitmproxy 作为根 CA,从而允许它解密 HTTPS。

完成以上步骤后,再访问 HTTPS 网站(如https://www.baidu.com),mitmweb/mitmproxy 中就能看到解密后的请求和响应内容,包括 URL、头、Body 等,这就是完整的 HTTPS 抓包流程。

常用操作与脚本扩展

  • 在 mitmweb 中可以对流量做:
    • 按域名/路径过滤,只看特定服务。
    • 点选某条流量查看详细请求/响应头与 Body。
    • 拦截请求或响应,修改参数后重放,用来模拟各种场景。
  • 命令行脚本扩展:
    • mitmproxy 支持用 Python 写插件,对请求/响应做自动处理,例如自动加头、记录日志、Mock 返回等。
    • 插件通过-s your_script.py挂载,适合自动化测试或爬虫场景。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询