使用Global Protect VPN+Okta认证时Proxyman与Android模拟器网络异常求助
解决带Okta认证的Global Protect VPN与Proxyman、Android模拟器的兼容问题
一、VPN中断后模拟器需重启+重装证书的修复方案
- 锁定模拟器代理配置:进入模拟器设置→网络→Wi-Fi→长按当前网络→修改网络→高级选项,将代理设为手动,输入Proxyman的IP(通常是
10.0.2.2)和默认端口9090,确保该配置不会随VPN重启被重置。 - 安装系统级信任证书:避免每次重装证书,把Proxyman根证书安装到模拟器系统目录而非用户目录:
- 导出Proxyman根证书为PEM格式,用命令生成证书哈希值:
openssl x509 -inform PEM -subject_hash_old -in cert.pem | head -1,将证书重命名为<哈希值>.0 - 执行adb命令推送证书:
adb root && adb remount && adb push <重命名后的证书文件> /system/etc/security/cacerts/ - 重启模拟器,证书会被系统永久信任,VPN中断后无需重复安装
- 导出Proxyman根证书为PEM格式,用命令生成证书哈希值:
- 开启Proxyman自动代理:在Proxyman中启用「Auto-Proxy for Android Emulator」,确保VPN恢复后能自动重新捕获模拟器流量。
二、模拟器联网但Chrome等服务无法联网的修复方案
- 重置系统代理状态:VPN断开后,Proxyman的系统代理可能残留无效配置,先关闭Proxyman的「System Proxy」选项,再重新开启,让系统代理适配当前网络。
- 检查Chrome代理设置:Chrome默认使用系统代理,若有自定义代理配置,需重置为「使用系统代理设置」,避免单独拦截流量。
- 调整VPN路由规则:部分Global Protect VPN会修改系统路由表,导致非模拟器流量无法通过Proxyman。在Proxyman的「Proxy Settings」→「Advanced」中开启「Bypass VPN for Proxyman」,或手动调整系统路由,让Proxyman流量绕过VPN路由。
三、openconnect无法触发Okta认证的修复方案
openconnect原生不支持Okta的Web交互认证,可通过以下方式解决:
- 先使用官方Global Protect客户端完成Okta认证,提取VPN会话cookie,然后用openconnect直接复用该cookie连接:
openconnect --cookie=<提取的cookie值> <你的VPN服务器地址> - 若无法提取cookie,可执行
openconnect --script-tun --script "vpnc-script /etc/vpnc/vpnc-script" <VPN服务器地址>,同时手动在本地浏览器中打开openconnect提示的认证链接,完成Okta认证流程。
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

