使用NEKit在iOS NEPacketTunnelProvider中建立代理websocket连接

使用NEKit在iOS NEPacketTunnelProvider中建立代理websocket连接,ios,websocket,networkextension,Ios,Websocket,Networkextension,当我在iOS上使用Charles Proxy并玩一些游戏时,我发现它们使用协议前缀“socket://”,后跟IP地址(而不是主机名,主机名总是存在于其他HTTP连接中)来创建连接。我假设这些是WebSocket 目前,我正在尝试实现一个跟踪基本网络活动的工具。为了存档,我将使用NEKit()与iOS的NEPacketTunnelProvider扩展相结合。使用它,我可以设置一个本地HTTP代理服务器,并设置网络接口以通过该本地代理重定向每个HTTP(s)请求。通过观察者,我可以看到所有请求的主

当我在iOS上使用Charles Proxy并玩一些游戏时,我发现它们使用协议前缀“socket://”,后跟IP地址(而不是主机名,主机名总是存在于其他HTTP连接中)来创建连接。我假设这些是WebSocket

目前,我正在尝试实现一个跟踪基本网络活动的工具。为了存档,我将使用
NEKit
()与iOS的
NEPacketTunnelProvider
扩展相结合。使用它,我可以设置一个本地HTTP代理服务器,并设置网络接口以通过该本地代理重定向每个HTTP(s)请求。通过观察者,我可以看到所有请求的主机名

现在我发现,一些游戏(那些使用WebSocket的游戏)不能正常使用我的解决方案。关于此讨论,代理HTTP(s)数据流似乎无法使我处理websocket连接:

是的,但是Charles的问题(至少与iOS相关)是iOS WebSocket不通过配置的HTTP代理。他们只是被认为是一个原始的插座。因此,即使是在桌面上,查尔斯,这也是一个迷

因此,有些应用程序在启用“我的跟踪器”时甚至无法工作,因为它们无法与服务器建立连接


由于
GCDHTTPProxyServer
NEKit
)和
NEProxySettings
NetworkExtension
)的组合仅适用于HTTP,是否有可能对websocket连接进行类似的存档?如何跟踪和(甚至更好地)代理websocket连接

您尝试过GCDSOCKS5ProxyServer吗?