测试环境里最好用的代理,很多时候并不在数据中心。它可能就是放在电脑、平板、游戏机或开发设备旁边的那台 iPhone。
MonoProxy 把 iPhone 变成一个局域网代理端点。附近设备通过当前网络直接连接到手机,连接不会先绕到 MonoWare 的远端中继。它适合临时测试,也保留了足够清楚的状态和控制,让人知道连接到底进行到了哪一步。
实际使用时,最稳妥的顺序是:先选对可达的网络接口,启动监听器,只配置一台客户端,确认真实流量已经经过代理,再逐步增加设备。
MonoProxy 做什么,也不做什么
MonoProxy 是面向可填写代理主机和端口的设备、系统和应用的正向代理。一个监听端点支持:
| 客户端设置 | 适合场景 | 说明 |
|---|---|---|
| HTTP 代理 | 普通 HTTP 请求 | 转发前会移除代理专用头 |
| HTTPS 代理 | 通过 CONNECT 访问 HTTPS | TLS 保持在客户端与目标站点之间 |
| SOCKS4 / SOCKS4a | 较旧的客户端 | SOCKS4 协议本身没有密码认证 |
| SOCKS5 | 通用 TCP 客户端 | 支持无认证或用户名密码认证 |
| PAC 地址 | 支持自动代理配置的系统 | PAC 文件会把客户端指向当前局域网端点 |
它不是 VPN,也不会改变 iPhone 上每个 App 的路由。它同样不会解密 HTTPS。客户端必须明确配置为使用代理,而且两台设备需要在当前网络中能够互相访问。
先选网络接口,再启动
iPhone 可能同时存在多个地址:Wi-Fi、蜂窝网络、个人热点、VPN 创建的接口,以及回环地址。另一台设备通常能够访问的,是与它处在同一个 Wi-Fi 或局域网里的地址。
在 MonoProxy 主界面:
- 打开网络接口选择器。
- 选择与客户端处于同一 Wi-Fi 或局域网的地址。
- 确认共享代理端口。
- 点击“启动”。
监听器就绪后,Hub 会把主机地址和端口一起显示出来。HTTP、HTTPS CONNECT 以及已启用的 SOCKS 协议共用这个端点。
This diagram could not be rendered. Its source is still available below.
View diagram source
flowchart LR
A[运行 MonoProxy 的 iPhone] -->|同一 Wi-Fi 或局域网| B[Mac 或 PC]
A -->|同一 Wi-Fi 或局域网| C[手机或平板]
A -->|同一 Wi-Fi 或局域网| D[测试设备]
B --> E[目标服务]
C --> E
D --> E
如果手机切换网络,原来选中的接口可能消失。这时应选择新的接口并重新启动监听器。昨天 Wi-Fi 上复制的地址,到了今天的网络并不一定还能访问。
先配置第一台客户端
点击二维码按钮打开“快速配置”。这个页面会同时显示服务器地址、端口、可用代理类型、二维码,以及针对所选客户端平台的设置步骤。

二维码分享的是配置数据,不会在另一台设备上偷偷修改系统代理设置。这个边界是有意保留的:客户端的使用者可以先检查端点,再决定是否应用。
常见的 Wi-Fi 代理设置步骤是:
- 让 iPhone 和客户端连接同一个网络。
- 在客户端打开当前网络的代理设置。
- 选择手动配置。
- 输入 MonoProxy 显示的主机和端口。
- 保存,然后打开网页或启动要测试的应用。
快速配置还可以生成明确的 HTTP、SOCKS4、SOCKS5、PAC 和 PAC URL 格式。能够携带凭据的格式默认隐藏用户名密码;显示或分享含密码的配置前会再次确认,敏感剪贴板内容也使用更短的过期时间。PAC 文件不会嵌入代理凭据。
MonoProxy 产品网站 还提供 macOS 和 Windows 的平台说明,系统设置入口不容易找到时可以直接对照。
根据客户端能力选协议
操作系统或应用提供了专门的 Web 代理输入框时,优先使用 HTTP/HTTPS 设置。大多数浏览器和很多开发工具都适合这种方式。HTTPS 通过 CONNECT 建立隧道,因此 MonoProxy 不需要安装根证书,只负责转发加密字节。
客户端提供 SOCKS 设置,或者工具需要通用 TCP 代理时,可以选择 SOCKS5。SOCKS5 还支持代理用户名密码协商。SOCKS4/4a 为旧软件保留,但启用认证后不应选择它,因为 SOCKS4 没有兼容的密码机制。
共享端口意味着 HTTP 和 SOCKS 不需要填写不同端口。MonoProxy 会读取连接开头的字节,把它交给正确的握手处理器。不过配置中仍然要选对代理类型,因为由客户端决定自己会发送哪一种握手。
按顺序确认三个状态
“服务已经启动”和“我的流量正在经过它”是两件事。MonoProxy 把它们分开显示:
- 监听器就绪:iPhone 已经成功打开选定的地址和端口。
- 发现客户端:另一台设备已经连到这个监听器。
- 流量已验证:确实有字节经过代理。
这个顺序会让排查快很多。监听器没有就绪,应检查网络接口和端口;一直没有客户端,应检查 Wi-Fi 隔离、客户端填写的地址端口,以及局域网可达性;客户端出现但流量仍为零,则应检查代理类型、认证和应用本身是否支持代理。
统计页面会显示运行时间、连接数量、上传和下载总量、流量趋势,以及峰值和平均速率。

需要更结构化的检查时,诊断中心会分别判断监听器、所选接口、客户端、流量和安全事件。它还会统计认证失败、限速、访问策略拒绝、连接容量拒绝、失败会话和超时。
增加设备之前,先补上安全边界
家庭或办公局域网并不会自动变成可信环境。准备让更多设备接入前,应根据网络情况选择控制:
- 身份认证:为 HTTP、CONNECT 和 SOCKS5 设置代理用户名密码。
- 仅允许私有客户端:拒绝私有或本地地址范围之外的来源。
- 允许和阻止规则:支持 IPv4、IPv6 地址及 CIDR 网段。
- 单客户端容量:限制一台设备同时占用的连接数量。
认证有用,但 Basic 代理凭据只是编码,不是加密,应该只在自己可控的网络中使用。启用认证时,也不要把 SOCKS4 当作安全选项;MonoProxy 会拒绝它,因为 SOCKS4 无法完成当前配置的密码交换。
先连接一台设备,确认成功后再添加下一台。这样访问规则写错时会马上暴露,不必同时排查几台设备。
用 PAC 做可重复的 Web 代理配置
客户端支持自动配置 URL,或者需要反复应用同一端点时,PAC 文件会更方便。MonoProxy 可以通过活动监听器提供 /proxy.pac,并为 PAC 地址显示二维码。
如果开始分享 PAC 时服务尚未运行,MonoProxy 会在选定的局域网接口上准备监听器,让另一台设备能够下载文件。客户端获取 URL 的过程中,监听器必须保持可达。凭据不会写入 PAC 正文,客户端需要时会自行提示输入。
PAC 是配置方式,不是自动发现魔法。另一台设备仍然必须能够连接 iPhone,网络切换也可能让 URL 中的地址失效。
一条更有效的排查路径
客户端无法连接时,按下面顺序检查,通常不需要猜:
- 确认两台设备位于同一个可互通网络。
- 确认 Hub 显示的是预期局域网地址和端口。
- 确认客户端选的是 HTTP、HTTPS 还是 SOCKS。
- 在连接列表或诊断中心查看是否发现客户端。
- 检查认证和访问策略的拒绝计数。
- 发起一个简单请求,观察是否出现流量。
- 最后再排查目标服务本身。
这个顺序可以避免把目标站点故障误认为本地配置错误。
使用结束后关闭监听器
MonoProxy 会明确显示自己的活动状态。测试、传输或临时配置结束后,从主 Hub 停止服务。手机进入另一个网络时,再次启动前应重新检查所选接口。
局域网代理的价值不只是“打开了一个端口”。真正有用的是:给附近设备一个端点,看见连接到达,确认字节在流动,并在工作结束时关闭这条路径。MonoProxy 把这套流程留在了 iPhone 上。