我们在工作中遇到了一个奇怪的问题,我希望这里有人可以就如何排除故障给我一些想法。
问题是我无法从我的Kubuntu 13.10工作站进行websocket连接。我试过Chrome和Firefox。我支持代理,首先我认为这一定是原因。但是,我让一些同事试图连接到相同的websocket echo演示,除了一个之外,所有人都可以。他是唯一一个运行Ubuntu的人(和我一样),其他人在Mac,Windows甚至是RedHat上!他们一切都很好。
好的,现在真的很奇怪。我在我的工作站上创建并运行了一个虚拟机(无法连接的虚拟机)。 VM是一个Lubuntu 13.10,你知道什么,这个darn的东西建立了一个websocket连接就好了!
因此,非常感谢任何有关如何解决此问题或甚至一些解决方案建议的想法。
答案 0 :(得分:14)
事实证明,在Linux中,您可以选中网络代理设置(系统设置)中的复选框,该复选框将对所有协议使用相同的代理。
是啊......不要这样做!
除非,即代理服务器支持SOCKS以及HTTP / HTTPS / FTP(极不可能)。
事实证明,如果您选中该复选框,您的代理服务器将被注册为SOCKS代理,并且出于某种原因,Chrome和Firefox中的websocket连接都希望使用它。所以你的HTTP代理最终会得到一堆奇怪的SOCKS握手,它不会理解,任何websocket连接都会失败。
这是在Ubuntu和Kubuntu以及"问题"上测试的。两者都存在。
TL; DR;不要检查"将此代理服务器用于所有协议"复选框,除非您的代理服务器支持SOCKS协议。相反,手动为不同的协议(http,https和ftp)填写相同的服务器,但保持socks协议为空(或指向实际的socks代理服务器)。