跳到主要内容

Proxyman 无法与 VPN 应用配合使用

开启 VPN 时 Proxyman 无法抓包?了解哪些 VPN 应用可与 Proxyman 配合使用,以及如何为 FortiClient、AnyConnect 等设置 HTTP 代理。

一般来说,VPN 应用可能与所有网页调试代理应用冲突,包括 Proxyman、Charles Proxy、Fiddler 和 Wireshark。

本页列出了哪些 VPN 应用可以与 Proxyman 配合使用、哪些不能,以及如何解决相关问题。

问题​

使用企业 VPN 时,Proxyman 无法抓取任何 HTTP/HTTPS 流量。

信息

如果你的 VPN 会更改系统代理,或者 Mac 上的某个应用忽略了系统代理,请尝试 Network Extension。抓取不依赖系统代理,但 VPN 兼容性可能有所不同。HTTPS 仍需要证书信任和 SSL Proxying。

Network Extension 为 BETA 版,需要 Proxyman PRO 并运行 macOS 26 或更高版本。

通用解决方法​

VPN 应用会将所有流量发送到 VPN 服务器,而不是 Proxyman 本地服务器(127.0.0.1:9090)。因此,Proxyman 无法抓取这些流量。

解决方法如下:

  • 打开 VPN 的设置,查找可以设置 HTTP/HTTPS 代理的字段。
  • 如果有该字段,请将地址设置为 127.0.0.1,端口设置为 9090。
  • 如果没有该字段,请搜索 “<Your VPN Name> config HTTP Proxy”,了解具体操作方法。

这样,即使 VPN 应用处于开启状态,Proxyman 也能抓取流量。

✅ iOS 新解决方案:Atlantis + Proxyman​

  • 兼容任何 VPN。
  • 抓取 iOS 应用中的所有 HTTP/HTTPS 或 WebSocket 流量。
  • 无需设置代理,也无需安装任何证书。
  • 同时支持 iOS 模拟器和 iOS 真机。

👉 如何使用 Atlantis?​

可与 Proxyman/CharlesProxy/Fiddler 配合使用的 VPN 列表​

1. Tunnelblick​

无需任何配置即可正常使用。

2. FortiClient​

将 HTTP 代理设置为 Proxyman 后即可正常使用。请按照 FortiClient 代理设置指南操作。

3. AnyConnect​

  • 如果 AnyConnect 的偏好设置中提供了 HTTP 代理选项,请尝试进行设置。
  • 将你的 VPN 主机添加到 Proxyman 的绕过列表中:Tools -> Proxy Settings -> Bypass Proxy Settings…。你也可以在 System Settings -> Network -> Wi-Fi -> Details… -> Proxies -> “Bypass proxy settings for these hosts & domains” 中找到该列表。(参考:GitHub issue #264)

4. Pulse Secure 和 Global Protect VPN​

方法 1:

首先,你需要安装 OpenConnect。

brew install openconnect

获取 openconnect 的安装路径:

whereis -b openconnect

然后,编辑 /etc/sudoers:

sudo visudo -f /etc/sudoers

添加以下这一行,并将 <openconnect-binary-path> 替换为你的二进制文件路径。

%admin ALL=(ALL) NOPASSWD: <openconnect-binary-path>

现在,你可以使用 Juniper SSL / Pulse Connect Secure 协议连接到受保护的代理。

sudo openconnect --protocol nc -u <username> <proxy-url>

连接成功后,启动 Proxyman,它应能像平时一样抓取流量。

致谢:@florentmorin,来自 GitHub issue #1203

信息

使用 sudo 命令之前,请先咨询你的安全团队。

方法 2:

按照以下步骤操作可能会有效:

  1. 连接 VPN,并确认其可正常使用。
  2. 打开 Proxyman 应用。
  3. 重置 VPN 连接。

致谢:@AddictiveColors

5. Viscosity​

  1. 请参阅文档,在 Viscosity VPN 应用中覆盖 HTTP/HTTPS 代理。

配置示例:

#viscosity proxy-http localhost 9090
#viscosity proxy-https localhost 9090

Viscosity VPN 的另一种解决方法:

  1. 在连接设置中打开 Advanced 标签页,并添加以下几行:
dhcp-option HTTPPROXY 127.0.0.1:9090
dhcp-option HTTPSPROXY 127.0.0.1:9090
  1. 启动 Proxyman 即可。

参考:Stack Overflow 上关于 Charles 与 VPN 的回答

6. Cisco VPN​

  1. 断开 VPN 连接。
  2. 打开 Proxyman。
  3. 前往 Tools -> Proxy Settings -> Bypass Proxy Settings…
  4. 添加你的 VPN 服务器域名(例如 vpn.yourcompany.com),然后点击 Done。
  5. 重新连接 VPN。

参考:GitHub issue #264

7. Nord VPN​

致谢:@seidnerj,来自 GitHub issue #264

8. Zscaler​

请按照 Zscaler 团队提供的解决方法操作。

无法与 Proxyman/CharlesProxy/Fiddler 配合使用的 VPN 列表​

1. Sophos​

Sophos 无法与任何网页调试代理应用配合使用。这是 Sophos 已知的问题,目前没有解决方法。

请让你的安全团队在 Sophos 中设置 HTTP/HTTPS 代理。

更新:Sophos 10.0.4(A/V Endpoint Protection)借助新的网络代理扩展,可能可以与 Proxyman 配合使用,但该版本存在一个已知问题,会导致 CPU 占用率飙升。Sophos 计划在即将发布的 EAP 版本中修复该问题。

致谢:@AddictiveColors