乐闻世界logo
搜索文章和话题

如何使用 whistle 调试移动端应用,配置步骤是什么?

2月21日 16:23

答案

使用 whistle 调试移动端应用需要配置移动设备的网络代理,使其通过 whistle 代理服务器访问网络。

基本配置步骤

1. 确保设备和电脑在同一网络

  • 手机和电脑连接到同一个 Wi-Fi 网络
  • 或者使用 USB 共享网络

2. 获取电脑 IP 地址

Windows:

bash
ipconfig

Mac/Linux:

bash
ifconfig

记录电脑的 IP 地址,例如:192.168.1.100

3. 启动 whistle

bash
w2 start

确认 whistle 正在运行,默认端口为 8899

4. 配置手机代理

iOS 设备:

  1. 打开"设置" → "无线局域网"
  2. 点击当前连接的 Wi-Fi 右侧的 "i" 图标
  3. 滚动到底部,找到"HTTP 代理"
  4. 选择"手动"
  5. 服务器:输入电脑 IP 地址
  6. 端口:输入 8899

Android 设备:

  1. 打开"设置" → "Wi-Fi"
  2. 长按当前连接的 Wi-Fi
  3. 选择"修改网络"或"网络详情"
  4. 显示高级选项
  5. 代理:选择"手动"
  6. 代理主机名:输入电脑 IP 地址
  7. 代理端口:输入 8899

HTTPS 证书配置

1. 在手机浏览器访问 whistle

在手机浏览器中访问:http://电脑IP:8899/

例如:http://192.168.1.100:8899/

2. 下载并安装证书

  1. 点击 "HTTPS" 标签
  2. 点击 "下载 RootCA" 下载证书
  3. 下载完成后安装证书

iOS 证书安装:

  1. 下载后打开"设置" → "已下载描述文件"
  2. 点击安装证书
  3. 安装后进入"设置" → "通用" → "关于本机" → "证书信任设置"
  4. 找到 whistle 证书,开启"针对根证书启用完全信任"

Android 证书安装:

  1. 下载后打开证书文件
  2. 按照提示安装证书
  3. 安装后进入"设置" → "安全" → "加密与凭据" → "受信任的凭据"
  4. 确认证书已安装

验证配置

1. 测试 HTTP 请求

在手机浏览器访问任意网站,检查 whistle 管理界面是否显示请求记录。

2. 测试 HTTPS 请求

访问 HTTPS 网站,确认能够正常加载且 whistle 能够拦截请求。

常见问题解决

1. 无法连接到代理

检查项:

  • 确认电脑和手机在同一网络
  • 检查电脑防火墙是否阻止了 8899 端口
  • 确认 whistle 正在运行
  • 尝试 ping 电脑 IP 地址

2. HTTPS 请求失败

解决方法:

  • 确认证书已正确安装并信任
  • 重启手机浏览器
  • 清除浏览器缓存
  • 检查 whistle 的 HTTPS 拦截是否启用

3. 某些应用无法拦截

原因:

  • 应用使用了证书绑定(Certificate Pinning)
  • 应用使用了自定义的网络库
  • 应用检测到了代理环境

解决方法:

  • 使用支持证书绑定的调试工具
  • 对应用进行逆向分析
  • 使用虚拟机或模拟器进行调试

高级技巧

1. 使用 USB 调试

对于 Android 设备,可以使用 ADB 转发端口:

bash
adb reverse tcp:8899 tcp:8899

2. 配置规则

在 whistle 中添加针对移动端的规则:

shell
# 移动端专用规则 m.example.com resBody://{mobile-mock.json} app.example.com reqHeaders://{mobile-headers.json}

3. 抓取 App 网络请求

  • 确保 App 使用系统网络库
  • 关闭 App 的网络检测功能
  • 使用 Wi-Fi 而非移动数据

安全注意事项

  1. 不要在公共网络使用

    • 避免在咖啡厅等公共场所配置代理
    • 防止敏感信息被窃取
  2. 调试完成后关闭代理

    • 及时关闭手机代理设置
    • 停止 whistle 服务
  3. 保护证书安全

    • 不要将证书分享给他人
    • 定期更换证书
标签:Whistle