You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac端Safari浏览器Charles Proxy无法捕获localhost流量问题求助

解决Mac Safari下Charles无法捕获localhost流量的问题

我之前也踩过这个坑,折腾了好半天才搞定,给你几个亲测有效的方案,按顺序试试:

  • 检查系统代理的排除列表
    Safari的代理设置是继承系统网络设置的,默认可能把localhost、127.0.0.1这类本地地址加入了「忽略代理」的名单:

    1. 打开Safari偏好设置 → 高级 → 点击「代理」栏的「更改设置」(会跳转到系统偏好设置的网络面板)
    2. 选中你当前正在使用的网络(比如Wi-Fi),点击「高级」→ 切换到「代理」标签页
    3. 找到「忽略这些主机和域的代理」,如果里面有localhost、127.0.0.1或者你的本地IP,全部删掉,然后保存设置
  • 强制本地请求走网络代理(Charles Rewrite)
    有时候即使改了系统设置,Safari还是会偷偷绕过代理抓本地请求,这时候可以用Charles的Rewrite功能强制转成非本地地址:

    1. 打开Charles,顶部菜单选择「Tools」→「Rewrite」,点击「Add」新建一个规则集
    2. 在「Rules」标签页点击「Add」添加规则:
      • 「Location」选择「URL」,匹配条件填「Contains」,值填localhost(如果是127.0.0.1就填这个)
      • 切换到「Action」标签页,选择「Modify Host」,把值改成你的本地IP(比如192.168.1.105,可以在终端用ifconfig或者ipconfig getifaddr en0查看)
    3. 确保你的本地服务是监听0.0.0.0而不是仅127.0.0.1(比如Node.js服务启动加--host 0.0.0.0,Flask用app.run(host='0.0.0.0')),然后用本地IP访问服务,Charles就能正常捕获流量了
  • 确认Charles的SSL代理配置(针对HTTPS请求)
    如果是本地HTTPS请求抓不到,还要检查Charles的SSL代理设置:

    1. 顶部菜单选择「Proxy」→「SSL Proxying Settings」
    2. 点击「Add」,在「Host」填localhost,「Port」填443(或者直接填*匹配所有端口)
    3. 确保你已经在Safari里安装了Charles的根证书并信任(其他浏览器能用的话这步应该已经做了,但可以再确认下)
  • 终极方案:用Charles的「Map Remote」转发请求
    要是上面的方法都不行,试试把localhost的请求转发到本地IP:

    1. 打开Charles,顶部菜单选择「Tools」→「Map Remote」,点击「Add」
    2. 在「From」栏填http://localhost:你的端口,「To」栏填http://你的本地IP:你的端口
    3. 启用这个规则后,访问http://localhost:端口,Charles会自动转发到本地IP,流量就能被捕获了

内容的提问来源于stack exchange,提问作者Chas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:53:32