手机连接Charles配置好代理后无法上网

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手机连接Charles配置好代理后无法上网相关的知识,希望对你有一定的参考价值。

参考技术A

问题:手机配置好代理后,能连接到Charles,但是手机无法上网。
表现为进入浏览器页面无法加载,charles接口显示建立三次握手失败。

1:第一种方法

一般情况下,当用户手机配置完代理后电脑charles会弹出一个弹框,如果没有出现。

点击Proxy->Access control settings,添加你的手机IP。

Access Control Settings —- 访问控制设置 。这里配置charles要访问的域名范围,如果写成0.0.0.0/0则Charles将会识别所有IP,这样的话如果电脑本地ip改变也不用再手动配置。

无法使用Charles Web Proxy作为反向代理接收和转发远程请求

我试图捕获一个不符合系统代理设置的旧应用程序。我可以更改的唯一配置是服务器IP地址。

使用Wireshark捕获数据包。如果没有Charles反向代理,我可以在前三次握手请求后看到请求。

without reverse proxy

使用反向代理,握手请求后连接卡住了。

with reverse proxy

我注意到,当Charles收到请求并连接到某个地方但它会卡在那里:

connecting

以下是反向代理的配置(远程主机已删除):

reverse proxy config

任何帮助,解决方案和解决方法将不胜感激!

答案

首先,您的应用既不使用HTTP也不使用HTTPS。研究成功连接的屏幕截图给出了使用的协议的一些细节:

  • handhsake之后的第一条消息是由服务器发起的,与常见的客户端 - 服务器方法相反,客户端负责发送查询。这个事实足以跨越HTTP和HTTPS。
  • 有效载荷数据不是人类可读的,因此它是二进制协议。
  • 基于PUSH标志,协议更可能是基于消息而不是基于流的

所以客户端建立连接,立即从服务器获取一些命令并回复它。然后沟通继续。我无法猜出确切的协议。端口号可能无关紧要,但即使不是,也有only few protocols默认使用4321端口。无论如何,它始终可以是自定义私有协议。

我不熟悉Charles,但转发任意TCP流可能是由其port forwarding功能而不是反向代理覆盖的。但是,在这种情况下,我没有看到通过Charles发送流量的任何好处,在PC上捕获数据应该足以研究细节。

如果您正在寻找流量操作,对于任意TCP流,这不是一件容易的事,但必须是可行的。我不知道合适的工具,快速谷歌搜索显示了大量的工具,但其中一些看起来只适用于基于文本的流,因此需要更深入的研究。

另一答案

失败的原因

这可能是因为您从远程作用域请求本地IP地址,而Charles代理不适用。对于POS(声明证明),请参阅以下链接

https://www.charlesproxy.com/documentation/faqs/localhost-traffic-doesnt-appear-in-charles/


所以为了解决当前场景的问题,请使用

http://192.168.86.22.charlesproxy.com/

注意:您请求的URL只能由Charles正确代理,而不是任何其他代理服务。

以上是关于手机连接Charles配置好代理后无法上网的主要内容,如果未能解决你的问题,请参考以下文章

关于Charles手机设置好代理后,无法上网的问题

mac下Charles https抓包,手机不能上网

Charles设置代理之后,为啥电脑和手机都不能上网?

Charles设置代理之后,为啥电脑和手机都不能上网。

mac上关闭charles后,电脑无法上网问题

使用burpsuite抓包工具,手机wifi设置代理不能上网,怎么解决?看网上说关闭公共防火墙,可还是不行