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

无法使用Charles Web Proxy作为反向代理接收和转发远程请求,proxy,reverse-proxy,wireshark,charles-proxy,Proxy,Reverse Proxy,Wireshark,Charles Proxy,我试图捕获一个不遵守系统代理设置的旧应用程序。我唯一可以更改的配置是服务器IP地址 使用Wireshark捕获数据包。如果没有Charles反向代理,我可以在前三次握手请求之后看到请求 使用反向代理,在握手请求后连接会被卡住 我注意到,当Charles收到一个请求并连接到某个地方时,它会卡在那里: 以下是反向代理的配置(远程主机已删除): 任何帮助、解决方案和解决办法都将不胜感激 首先,你的应用既不使用HTTP也不使用HTTPS。研究成功连接的屏幕截图提供了有关所用协议的一些详细信息:

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

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

使用反向代理,在握手请求后连接会被卡住

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

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


任何帮助、解决方案和解决办法都将不胜感激

首先,你的应用既不使用HTTP也不使用HTTPS。研究成功连接的屏幕截图提供了有关所用协议的一些详细信息:

  • handhsake之后的第一条消息是由服务器发起的,这与普通的客户机-服务器方法相反,客户机负责发送查询。这一事实足以将HTTP和HTTPS划掉
  • 有效负载数据不是人类可读的,因此它是一个二进制协议
  • 基于推送标志,协议更可能是基于消息的,而不是基于流的
所以客户端建立连接,立即从服务器获取一些命令并回复它。然后通信继续。我猜不出确切的协议。端口号可能不相关,但即使不相关,默认情况下也会使用4321端口。无论如何,它始终可以是自定义私有协议

我不熟悉Charles,但转发任意TCP流可能是由它的特性而不是反向代理所覆盖的。然而,我并不认为通过Charles发送流量有什么好处。在这种情况下,在PC上捕获数据应该足以研究细节

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

失败原因 这可能是因为您正在从远程作用域请求本地IP地址,Charles proxy不适用。有关POS(声明证明),请参考以下链接


解决方案 因此,为了解决当前场景中的问题,请使用


注意:您请求的url将仅由Charles而不是任何其他代理服务正确代理。

这可能是因为我能想到两个原因。一是数据是TCP流,而不是http协议本身。下一种可能性是,应用程序正在使用HTTPS证书固定并验证证书的哈希值以供您的评论。我认为这不是HTTPS证书固定,因为应用程序连接到IP地址而不是域。将再次检查TCP流。如果是TCP流,我应该走哪个方向?或者,从技术上讲,捕获和操纵数据包是不可能的?再次感谢。