如何使用 Proxyman 在企业 VPN 下抓取 iOS 应用的 HTTPS 流量
如果你是 iOS 开发者,公司很可能要求你连接企业 VPN,才能访问内部服务或开发/预发布服务器。
但企业 VPN 往往会拦截所有未明确放行的 HTTP/HTTPS 流量。
本教程将演示如何在企业 VPN 环境下,抓取并拦截 iOS 应用的 HTTPS 流量。
本教程将完成以下内容:
- 下载并设置 Proxyman macOS / Windows / Linux 版
- 在 iOS 应用中设置 Atlantis
- 在 VPN 开启的情况下,使用 Proxyman 抓取并检查 iOS 应用的 HTTPS 流量。
可与 Proxyman 等 MITM 代理应用配合使用的 VPN
好在部分 VPN 提供了明确放行 HTTP/HTTPS 流量的设置。以下是相关列表:
- TunnelBlick:开箱即用,无需任何设置。
- FortiClient:将 HTTP 代理设置为 Proxyman 即可使用。
- AnyConnect:需要进行少量配置。
- Pulse Secure 和 GlobalProtect VPN:配置较为复杂。
- Viscosity:需要进行一些配置。
- Cisco VPN:需要设置代理。
- NordVPN:需要设置代理。
- Zscaler:有一种变通方法可以使其生效。
你可以在 VPN 文档 中找到各个 VPN 的详细说明。
1. 下载并设置 Proxyman macOS 版
- 从 Proxyman 官网 下载 Proxyman macOS 版。Atlantis 仅支持 Proxyman macOS 版。
- 安装 Proxyman。
- 打开 Proxyman,进入 Certificate 菜单 → Install Certificate for this Mac...
- 按照提示安装证书。
- 确认 Proxyman 证书旁显示绿色勾号。

2. 为什么需要 Atlantis?
Atlantis 不使用代理,因此可以与任何 VPN 配合使用。
使用 Atlantis 的一些好处:
- 无需在 iOS 设备上设置代理或安装任何证书
- ✅ 可与任何 VPN 配合使用,包括企业 VPN
- 抓取 iOS 应用的 HTTP/HTTPS 和 WebSocket 流量
- 可用于 iOS 模拟器和真机
3. 在 iOS 应用中设置 Atlantis
开始之前,请先阅读 Atlantis 的 README 并按说明操作。
以下是将 Atlantis 集成到 iOS 应用中的步骤:
- 通过 Swift Package Manager 将 Atlantis 添加到项目中,地址为
https://github.com/ProxymanApp/atlantis - 在
Info.plist文件中添加所需权限:
<key>NSLocalNetworkUsageDescription</key>
<string>Atlantis would use Bonjour Service to discover Proxyman app from your local network. Atlantis uses it to transfer the data from your iOS app to Proxyman macOS for debugging purposes.</string>
<key>NSBonjourServices</key>
<array>
<string>_Proxyman._tcp</string>
</array>
示例 Info.plist 文件请参考:Info.plist
- 启动 Atlantis:
- SwiftUI:
import SwiftUI
#if DEBUG
// 1. Import Atlantis
import Atlantis
#endif
@main
struct AtlantisSwiftUIAppApp: App {
init() {
// 2. Connect to your Macbook
#if DEBUG
Atlantis.start()
// 3. (Optional)
// If you have many Macbooks on the same WiFi Network, you can specify your Macbook's name
// Find your Macbook's name by opening Proxyman App -> Certificate Menu -> Install Certificate for iOS -> With Atlantis ->
// Click on "How to start Atlantis" -> Select "SwiftUI" Tab
// Atlantis.start("Your's Macbook Pro")
#endif
}
}
- UIKit:
#if DEBUG
import Atlantis
#endif
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
#if DEBUG
// 2. Connect to your Macbook
Atlantis.start()
// 3. (Optional)
// If you have many Macbooks on the same WiFi Network, you can specify your Macbook's name
// Find your Macbook's name by opening Proxyman App -> Certificate Menu -> Install Certificate for iOS -> With Atlantis ->
// Click on "How to start Atlantis" -> Select "SwiftUI" Tab
// Atlantis.start("Your's Macbook Pro")
#endif
return true
}
4. 在企业 VPN 环境下启动 iOS 应用
- 在 Xcode 中选择 iOS 模拟器或真机并启动应用。iOS 设备或 Mac 上可以使用你想用的任何 VPN。
- 打开 Proxyman macOS 应用:所有 HTTP、HTTPS 和 WebSocket 流量都会被自动抓取,并显示在 Proxyman 中。
- 例如,有一个请求发送到
https://httpbin.org/get

- ✅ 完成!
5. 如何抓取 WebSocket 流量?
好消息是,Atlantis 同样支持 WebSocket 流量,并且无需额外设置即可与任何 VPN 配合使用。
如果你的应用使用 URLSessionWebSocketTask 发起 WebSocket 请求,Proxyman 就会将其抓取下来。

以下是 WebSocket 示例应用
Atlantis 仅支持 URLSession,或底层基于 URLSession 的网络库。例如,它可以与 Alamofire 配合使用。
如果你使用的是自定义网络栈(即非 URLSession 的网络栈),则无法使用。
测试前的实用检查
请只在 Debug 构建中保留 Atlantis,并将其从应用的正式发布版本中移除。你的 iPhone 和 Mac 应处于同一局域网,应用可能还需要获得“本地网络”权限,才能将抓取的数据发送到 Proxyman。由于请求中可能包含登录信息或企业内部数据,请仅在你有权测试的应用和账号上使用此配置。
下一步
- 如有任何问题,欢迎加入我们的 Discord 社区
- 如需帮助,请通过 support@proxyman.com 联系我们
- 如果你想为 Atlantis 贡献代码,请查看贡献指南
延伸阅读
Proxyman 是一款高性能的 macOS/Windows/Linux 应用,帮助开发者抓取 iOS 设备、iOS 模拟器和 Android 设备上的 HTTPS 流量。
前往 https://proxyman.com 获取。
