使用NEKit在iOS NEPacketTunnelProvider中的代理Websocket连接

时间:2018-10-23 09:40:11

标签: ios websocket networkextension

当我使用适用于iOS的Charles Proxy并玩一些游戏时,我意识到它们建立了协议前缀为“ socket://”的连接,后跟IP地址(而不是主机名,该主机名在其他HTTP( s)连接)。我以为那是websockets。

当前,我正在尝试实现一种工具来跟踪基本的网络活动。为了对此进行存档,我将NEKithttps://zhuhaow.me/NEKit/)与iOS的NEPacketTunnelProvider扩展名结合使用。使用它,我能够设置一个本地HTTP代理服务器,并设置网络接口以通过该本地代理重定向每个HTTP请求。通过观察者,我可以看到所有请求的主机名。

现在,我发现某些游戏(使用websocket的游戏)无法在我的解决方案中正常运行。关于此讨论https://news.ycombinator.com/item?id=16694670,似乎代理HTTP(s)数据流使我无法处理websocket连接:

  

是的,但是Charles的问题(至少与iOS有关)是iOS websocket不通过配置的HTTP代理。它们只是被视为原始套接字。因此,即使在台式机Charles上,这也是一个Nogo。

因此,启用跟踪器后,某些应用甚至无法运行,因为它们无法建立与服务器的连接。

因为GCDHTTPProxyServerNEKit)和NEProxySettingsNetworkExtension)的组合仅适用于HTTP( s)?如何跟踪和(甚至更好)代理websocket连接?

0 个答案:

没有答案