[英]Internet Connection lost when setting Charles proxy on Android
[英]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
在 Android 设备上:
手动将安全证书添加到 Android 设备: 30:在 Mac 桌面上 – Charles Proxy > Menu Help > SSL Proxy > Save Certificate 31. 将证书保存到桌面。 32. 通过 USB 电缆将证书复制到 android 设备/下载文件夹(不在 SD 卡上)。
在 android 设备上: 33. 找到 charles 代理证书文件,长按。
在对话框中:将证书重命名为 Charles Proxy Certificate
单击的 VPN 和应用程序
点击保存。
注意:这里没有要求我重新输入我的设备 PIN
打开 Chrome 应用程序。 获取错误消息“err_proxy_connection_failed”或“err_connection_timed_out”
Android 设备:通知第三方可能正在观看。
我检查是否安装了证书:设置 > 安全 > 可信凭据 > 用户 > 安装了 XYZ Charles Proxy 安全证书。
我还使用带有 crt 和 pem 后缀的证书完成了步骤 30 到 38。
我尝试了以下变体:*在 Android 设备上设置代理,而无需 USB 连接到 mac *在 Android 设备上设置代理,同时通过 USB 连接到 mac *在 Android 设备上设置代理,然后再打开。Charles Proxy
我不知道接下来要尝试什么。 希望您能提供帮助,感谢您阅读到这里::)
我在我的 Windows 机器上使用 Charles Proxy。 我已关注此博客以获取详细信息
这些步骤可以总结如下。
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.