繁体   English   中英

问题 Android 设备 - Charles Proxy - inte.net 连接

[英]Problems Android device - Charles Proxy - internet connection

我正在尝试从 android 设备获取 Charles Log,但它无法正常工作。 使用Proxy 设置Wifi 后,android 设备的浏览器无法连接到inte.net。 我列出了在我的计算机上设置 Charles 代理并配置 android 设备以使用 charles 代理的步骤。

我非常感谢任何帮助,但我只想指出几件事:

*我有正确的 Android 设备代理设置的 Wifi.network 和 IP 地址(参见下面的第 18 步)。

*据我所知,我没有在 android 设备上使用 VPN 或防火墙。 我怎样才能仔细检查这个?

*我已经使用 2 个版本的 Charles Proxy 尝试了以下步骤。
查尔斯代理:4.2.7
查尔斯代理:3.12.3 我每次都删除并重新安装该程序。

*android 设备上的 Chrome 和 Firefox 将无法通过代理设置连接到 inte.net。

有关步骤,请参见下面的列表,非常感谢!!!


系统:MacOS 10.10.5 Android:6.0.1

  1. 菜单:代理:勾选 Mac OS 代理
  2. 菜单:帮助 > SSL 代理 > 安装证书
  3. 在 Keychain > 找到证书 > 单击 Always Trust(输入密码)
  4. 在 Charles Proxy 中,单击代理菜单
  5. 菜单 > 代理 > SSL 代理设置
  6. 勾选启用 SSL 代理
  7. 点击添加
  8. 主机 * 端口 443。
  9. 菜单:代理 > 代理设置
  10. 单击代理选项卡:Http 代理端口:8888
  11. 勾选:启用透明 HTTP 代理
  12. 单击 MacOSX 选项卡
  13. 勾选:Enable Mac OS Proxy, Use HTTP proxy, Enable MacOS proxy at start up
  14. 单击 Mozilla Firefox 选项卡:启用 Mozilla Firefox 代理,使用 HTTP 代理,启动时启用 Mozilla Firefox 代理。
  15. 菜单:代理 > 访问控制设置
  16. 点击add,设置IP Range 0.0.0.0/0
  17. 勾选:提示允许非授权连接。
  18. 菜单 > 帮助 > 本地 IP 地址 - 写下此 IP 地址并使用此号码设置 android 设备。

在 Android 设备上:

  1. 使用 USB 电缆将 Android 连接到 Mac。 端口 USB 2.0
  2. 设置 > 网络和互联网 > Wi-Fi
  3. 长按活动 wifi 连接,选择:Modify.network
  4. 展开高级选项,点击代理下方的无并选择手动
  5. 在代理主机名字段中输入第 18 步中的 IP 地址。
  6. 在代理端口字段中输入 8888
  7. 单击保存。
  8. 打开 Chrome
  9. 输入http://charlesproxy.com/getssl/或短版 chls.pro/ssl
  10. 收到错误消息:“err_proxy_connection_failed”或“err_connection_timed_out” 请注意:Mac 上的 Charles Proxy 上没有出现关于 Android 设备的对话框。
  11. 据我所知,我不使用 VPN,也不在 android 设备上使用防火墙。 我怎样才能检查这个?

手动将安全证书添加到 Android 设备: 30:在 Mac 桌面上 – Charles Proxy > Menu Help > SSL Proxy > Save Certificate 31. 将证书保存到桌面。 32. 通过 USB 电缆将证书复制到 android 设备/下载文件夹(不在 SD 卡上)。

在 android 设备上: 33. 找到 charles 代理证书文件,长按。

  1. 在对话框中:将证书重命名为 Charles Proxy Certificate

  2. 单击的 VPN 和应用程序

  3. 点击保存。

  4. 注意:这里没有要求我重新输入我的设备 PIN

  5. 打开 Chrome 应用程序。 获取错误消息“err_proxy_connection_failed”或“err_connection_timed_out”

  6. Android 设备:通知第三方可能正在观看。

  7. 我检查是否安装了证书:设置 > 安全 > 可信凭据 > 用户 > 安装了 XYZ Charles Proxy 安全证书。

我还使用带有 crt 和 pem 后缀的证书完成了步骤 30 到 38。

我尝试了以下变体:*在 Android 设备上设置代理,而无需 USB 连接到 mac *在 Android 设备上设置代理,同时通过 USB 连接到 mac *在 Android 设备上设置代理,然后再打开。Charles Proxy

我不知道接下来要尝试什么。 希望您能提供帮助,感谢您阅读到这里::)

我在我的 Windows 机器上使用 Charles Proxy。 我已关注此博客以获取详细信息

这些步骤可以总结如下。

  • 下载并安装适用于 Mac/Windows 笔记本电脑的 charles 代理
  • 使您的移动设备和笔记本电脑连接在同一网络中
  • 在 Charles 中启用开始录制
  • 如果还连接了笔记本电脑,则在选定的 wifi 网络中为移动设备启用代理
  • 提供笔记本电脑 Charles 帮助选项> SSL 代理> 在移动设备或远程浏览器上安装查尔斯证书中给出的 IP 详细信息
  • 确保提供相同的 IP 和 8888 端口号
  • 打开手机浏览器浏览http://chls.pro/ssl
  • 这应该在移动设备中下载并安装查尔斯证书
  • 在笔记本电脑中,您可以看到设备尝试连接的通知。 也允许这样做
  • 现在您可以在 Charles 中查看您的移动设备的所有网络日志
  • OS 7+设备中需要包含一个额外的配置文件,如下

network_security_config.xml content should be as follows

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
            <certificates src="user" />
        </trust-anchors>
    </base-config>
</network-security-config>

我什至买了查尔斯,也有同样的问题。 我用不同的设备尝试过,并在两个不同的 Wifi 中尝试过。 没有。 得到与 Ana 相同的错误。 是的,我已经设置了网络安全配置。

从 Android 10 开始,它需要额外的配置才能拦截来自 Android 设备的 HTTPS 流量。

添加到res/xml/network_security_config.xml

<network-security-config>
<debug-overrides>
    <trust-anchors>
        <!-- Trust user added CAs while debuggable only -->
        <certificates src="user" />
        <certificates src="system" />
    </trust-anchors>
</debug-overrides>

<base-config cleartextTrafficPermitted="true">
    <trust-anchors>
        <certificates src="system" />
    </trust-anchors>
</base-config>

<domain-config>
    <!-- Make sure your URL Server here -->
    <domain includeSubdomains="true">your_test_url</domain>
    <trust-anchors>
        <certificates src="user"/>
        <certificates src="system"/>
    </trust-anchors>
</domain-config>

添加到AndroidManifest.xml

<manifest>
    <application android:networkSecurityConfig="@xml/network_security_config">
    </application>
</manifest>

如果您仍然在挣扎,请查看https://docs.proxyman.io/debug-devices/android-device#sample-android-project 上的完整文档和示例项目

如果您为 android N 及更高版本运行 Charles 代理,请确保您已将以下内容添加到您的 Android 清单中

Android 从 Android N 开始,您需要向您的应用添加配置,以使其信任由 Charles SSL Proxying 生成的 SSL 证书。 这意味着您只能对您控制的应用程序使用 SSL 代理。

为了将您的应用程序配置为信任 Charles,您需要向您的应用程序添加网络安全配置文件。 该文件可以覆盖系统默认值,使您的应用能够信任用户安装的 CA 证书(例如 Charles Root 证书)。 您可以指定这仅适用于应用程序的调试版本,以便生产版本使用默认信任配置文件。

将文件 res/xml/network_security_config.xml 添加到您的应用程序:

<network-security-config> 
  <debug-overrides> 
    <trust-anchors> 
      <!-- Trust user added CAs while debuggable only -->
      <certificates src="user" /> 
    </trust-anchors> 
  </debug-overrides> 
</network-security-config>

然后在您的应用清单中添加对此文件的引用,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application android:networkSecurityConfig="@xml/network_security_config" ... >
        ...
    </application>
</manifest>

如果network_security_config没有帮助,您可以仔细检查是否有任何VPN/Proxy/Cloudfare正在运行。

我关掉它们就解决了。

在我的例子中,它是一个 Windows Defender 防火墙。 在我禁用它之后,一切都开始正常工作。 Charles 看到了我的电话连接并代理了所有请求。

如果我关闭 charles,inte.net 连接仍然丢失,但这是因为 WIFI 中设置了代理。 我的路由器有 2 个 wifi 点 2.4 和 5 gz。 所以我在 2.4 上设置了 charles 代理并使用 5g 进行日常冲浪。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM