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:
按照以下步骤操作可能会有效:
- 连接 VPN,并确认其可正常使用。
- 打开 Proxyman 应用。
- 重置 VPN 连接。
致谢:@AddictiveColors
5. Viscosity
- 请参阅文档,在 Viscosity VPN 应用中覆盖 HTTP/HTTPS 代理。
配置示例:
#viscosity proxy-http localhost 9090
#viscosity proxy-https localhost 9090
Viscosity VPN 的另一种解决方法:
- 在连接设置中打开 Advanced 标签页,并添加以下几行:
dhcp-option HTTPPROXY 127.0.0.1:9090
dhcp-option HTTPSPROXY 127.0.0.1:9090
- 启动 Proxyman 即可。
参考:Stack Overflow 上关于 Charles 与 VPN 的回答
6. Cisco VPN
- 断开 VPN 连接。
- 打开 Proxyman。
- 前往 Tools -> Proxy Settings -> Bypass Proxy Settings…
- 添加你的 VPN 服务器域名(例如 vpn.yourcompany.com),然后点击 Done。
- 重新连接 VPN。
7. Nord VPN
- 对于 NordVPN,你可以使用下方的项目设置一个通过 NordVPN 转发的本地 HTTP/HTTPS 代理,然后在 Proxyman 中将该代理服务器用作 External Proxy。
- GitHub 上的 nordlynx-proxy
致谢:@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