# Proxyman 无法与 VPN 应用配合使用

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

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

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

## 问题 {#problems}

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

> **备注:** 如果你的 VPN 会更改系统代理，或者 Mac 上的某个应用忽略了系统代理，请尝试 [Network Extension](https://proxyman.com/docs/zh-cn/advanced-features/network-extension)。抓取不依赖系统代理，但 VPN 兼容性可能有所不同。HTTPS 仍需要证书信任和 [SSL Proxying](https://proxyman.com/docs/zh-cn/basic-features/ssl-proxying)。
>
> Network Extension 为 BETA 版，需要 Proxyman PRO 并运行 macOS 26 或更高版本。

## 通用解决方法 {#how-to-fix-it-in-general}

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 {#-new-solution-for-ios-atlantis--proxyman}

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

### 👉 如何使用 Atlantis？ {#-how-to-use-atlantis}

* 查看 [Atlantis README](https://github.com/ProxymanApp/atlantis)
* 博客：[如何通过企业 VPN 抓取 iOS 应用的 HTTPS 流量](https://proxyman.com/posts/capture-https-ios-app-with-company-vpn)

## 可与 Proxyman/CharlesProxy/Fiddler 配合使用的 VPN 列表 {#list-of-vpns-that-work-with-proxymancharlesproxyfiddler}

### 1. Tunnelblick {#1-tunnelblick}

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

### 2. FortiClient {#2-forticlient}

将 HTTP 代理设置为 Proxyman 后即可正常使用。请按照 [FortiClient 代理设置指南](https://docs.fortinet.com/document/forticlient/6.2.0/xml-reference-guide/179671/proxy-settings)操作。

### 3. AnyConnect {#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](https://github.com/ProxymanApp/Proxyman/issues/264#issuecomment-816093447)）

### 4. Pulse Secure 和 Global Protect VPN {#4-pulse-secure-and-global-protect-vpn}

**方法 1：**

首先，你需要安装 [OpenConnect](https://casper.infradead.org/openconnect/index.html)。

```bash
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](https://github.com/ProxymanApp/Proxyman/issues/1203)

> **备注:** 使用 **sudo** 命令之前，请先咨询你的安全团队。

**方法 2：**

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

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

致谢：@AddictiveColors

### 5. **Viscosity** {#5-viscosity}

1. 请参阅文档，在 Viscosity VPN 应用中[覆盖 HTTP/HTTPS 代理](https://www.sparklabs.com/support/kb/article/advanced-configuration-commands/#proxy-http)。

配置示例：

```
#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
```

2. 启动 Proxyman 即可。

参考：[Stack Overflow 上关于 Charles 与 VPN 的回答](https://stackoverflow.com/a/42515317/3127477)

### 6. Cisco 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](https://github.com/ProxymanApp/Proxyman/issues/264#issuecomment-2317101771)

### 7. Nord VPN {#7-nord-vpn}

* 对于 NordVPN，你可以使用下方的项目设置一个通过 NordVPN 转发的本地 HTTP/HTTPS 代理，然后在 Proxyman 中将该代理服务器用作 [External Proxy](https://proxyman.com/docs/zh-cn/advanced-features/external-proxy)。
* [GitHub 上的 nordlynx-proxy](https://github.com/edgd1er/nordlynx-proxy)

致谢：@seidnerj，来自 [GitHub issue #264](https://github.com/ProxymanApp/Proxyman/issues/264#issuecomment-2416373960)

### 8. Zscaler {#8-zscaler}

请按照 [Zscaler 团队提供的解决方法](https://github.com/ProxymanApp/Proxyman/issues/1307#issuecomment-1236202303)操作。

## 无法与 Proxyman/CharlesProxy/Fiddler 配合使用的 VPN 列表 {#list-of-vpns-that-do-not-work-with-proxymancharlesproxyfiddler}

### 1. Sophos {#1-sophos}

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

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

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

致谢：@AddictiveColors
