Fiddler 在安卓高版本无法联网的解决方法


Fiddler 是一个运行在 Windows 平台上的用于 HTTP 调试的抓包工具,可以用于查看和编辑网站的 HTTP 流量。但在安卓高版本设备上使用时,可能会发现无法联网,本文将从多个方面为大家进行详细的阐述。

一、设置安卓设备代理

在使用 Fiddler 进行抓包时,需要将安卓设备的网络代理地址设置为 Fiddler 的代理地址,这样 Fiddler 才能拦截到安卓设备的网络请求。具体方法如下:

1.连接 Wi-Fi 网络;

2.进入 Wi-Fi 设置,长按当前连接的 Wi-Fi 网络,选择 "修改网络";

3.在弹出的界面中,勾选 "高级选项",选择 "代理";

4.将代理设置为手动,输入 Fiddler 的代理地址(Fiddler 的默认代理地址为 127.0.0.1 端口号为 8888);

5.保存设置,重新打开一个网站,此时 Fiddler 就可以正常抓包了。

二、解决安卓 7.0+ HTTPS 请求无法抓包的问题

在安卓 7.0+ 版本中,Google 引入了一项名为 Network Security Configuration 的功能,它要求所有应用程序只能通过 HTTPS 发送网络请求,此时默认情况下无法直接抓取 HTTPS 协议的网络流量。

因此,要想成功抓到 HTTPS 协议的网络请求,我们需要先在 Fiddler 中安装相关的证书。

下面是具体步骤:

1.在 Fiddler 点击 "Tools" -> "Fiddler Options" -> "HTTPS";

2.勾选 "Capture HTTPS CONNECTs" 和 "Decrypt HTTPS traffic",点击 "Actions" -> "Export Root Certificate to Desktop";

3.将证书文件拷贝到安卓设备上,进入设备的 "设置" -> "安全" -> "安装来自 SD 卡的证书",选中证书文件进行安装;

4.重新启动设备,连接到需要抓包的 Wi-Fi 网络,将代理设置为 Fiddler 代理地址,此时 Fiddler 就可以成功抓取 HTTPS 协议的网络请求了。

三、配置 Fiddler 的监听地址和端口号

如果在 Fiddler 中修改了监听地址和端口号,那么需要相应修改安卓设备的代理地址。具体步骤如下:

1.在 Fiddler 中点击 "Tools" -> "Fiddler Options" -> "Connections";

2.在 "Fiddler listens on port" 一栏中填写 Fiddler 的监听端口号(默认为 8888),在 "IP address to bind to" 一栏中填写 Fiddler 监听的 IP 地址,通常填写 127.0.0.1 即可;

3.在安卓设备中设置代理时,将代理地址设置为修改后的 Fiddler 监听地址和端口号(例如 192.168.0.2:8888)。

四、总结

以上就是针对 Fiddler 在安卓高版本无法联网的解决方法。通过本文的多个方面的阐述,相信读者可以成功解决 Fiddler 在安卓高版本无法联网的问题。

附录:设置安卓设备代理代码示例

// 连接 Wi-Fi 网络
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
String ssid = wifiInfo.getSSID();
Log.d(TAG, "SSID: " + ssid);

// 设置代理
try{
    ProxySettings.setProxySettings(this.getApplicationContext(), proxyHost, proxyPort);
} catch(Exception e){
    Log.e(TAG, "setProxy error", e);
}

评论关闭