Windows使用Charles对模拟器/真机进行抓包 问题记录

准备工作

1. win10上安装Charles -->下载地址 (注:官方版本如果不付费的每30分钟就会断开)

2. 打开Charles进行设置

  • PC端
    • Proxy-> Windows Proxy 这个去掉勾选,这样就不会整个电脑都走代理了
    • Proxy-> Proxy Settings -> HTTP Proxy ->Port 设置代理的端口号如8888
    • Proxy-> Proxy Settings -> SSL Proxying -> Enable SSL Proxying 这个要勾选,使得Charles拦截和代理SSL请求
    • Proxy-> SSL Proxying Settings -> Include -> Location 在这个框下点击ADD,添加让Charles监听的SSL站点,使用*号作为通配符匹配任意站点。
    • 点击ok
  • 模拟器端(Android Studios的模拟器 Android 6 版本)
    • 点击右侧的 "...",进入设置页面
    • 点击左侧边栏的Settings
    • 点击右侧界面的Proxy标签,进入代理设置页面
    • 点中Manual proxy configuration
    • Host name填入电脑ip地址,Port number填入在Charles设置的端口号,如8888
    • 点击APPLY
    • 打开模拟器中的浏览器输入cls.pro/ssl,并按照提示下载证书,之后会在电脑Charles端弹出一个提示,点击allow就好了
    • 真机可能需要在 设置->安全->从SD卡安装证书 选择下载的证书手动安装,之后在 信任的凭据->用户 下可以看到安装的证书

遇到的坑

  1. 提示SSL Proxying not enabled for this host: enable in Proxy Settings, SSL locations
    解决方案:
    把目的ip添加到Proxy-> SSL Proxying Settings -> Include -> Location下(这一点很奇怪,这是网上查的方法,我设置之后也少了很多红色unknown,但是*号应该是包含所有host地址的,不知道为什么还需要手动添加host)
  2. 手机端设备设置代理之后,访问cls.pro/ssl失败,提示超时,手机无法上网(已确认电脑与手机在同一网段内)
    解决方案:
    关闭Windows防火墙。控制面板->更新和安全->windows安全中心->防火墙和网络保护->把网络的防火墙给关掉(可能需要重启,之前charles一直没有弹出allow的提示框,重启之后才弹出)
  3. 出现蓝色的unknown
    解决方案:
    设置DNS
  4. 提示You may need to configure your browser or application to trust the Charles Root Certificate. See SSL Help...
    解决方案:
    重新下载安装证书
  5. 手机访问cls/pro,提示Name lookupfailed for remote Charles failed to resolve the name of the remote host into an IP address
    解决方案:
    查看Charles -> Help -> SSL proxying -> install ……
    弹出提示框,看到IP地址与手机端代理设置不一致,但这个地址不是电脑本地获得的ip地址
    查看Charles -> Help -> local ip address,发现当前Charles识别到多个ip地址,其中包括了虚拟机的地址,且排在了第一位

    在电脑端控制面板\网络和 Internet\网络连接,把虚拟机的网络设备禁用
posted @ 2020-04-08 09:21  丛影HHZ  阅读(2252)  评论(0编辑  收藏  举报