Ubuntu 13.10 中的 websocket 连接失败

Posted

技术标签:

【中文标题】Ubuntu 13.10 中的 websocket 连接失败【英文标题】:websocket connection fails in Ubuntu 13.10 【发布时间】:2014-04-12 03:41:59 【问题描述】:

我们在工作中遇到了一个奇怪的问题,我希望这里的人能给我一些关于如何解决它的想法。

问题是我无法从我的 Kubuntu 13.10 工作站建立 websocket 连接。我已经尝试过 Chrome 和 Firefox。我支持代理,首先我认为这一定是原因。但是,我让一些同事尝试连接到同一个 websocket echo 演示,除了一个之外,他们都能够连接。他是唯一一个运行 Ubuntu(和我一样)的人,其他人都在 Mac、Windows 上,甚至还有一个在 RedHat 上!他们的一切都很好。

好的,现在开始真正奇怪的部分。我在我的工作站(无法连接的那个)上创建并运行了一台虚拟机。虚拟机是 Lubuntu 13.10,你知道吗,这该死的东西可以很好地建立 websocket 连接!

因此,我们将非常感谢任何有关如何解决此问题的想法,甚至是一些解决方案的建议。

【问题讨论】:

您如何建立联系?设置如何?您实现了自己的 Web 套接字服务器还是连接到公共服务器? 我尝试连接到本地(nodejs)websocket 服务器,该服务器在我的计算机上本地运行并且可以正常工作。没有工作的是使用 websockets 的 任何 网页。我尝试了一些但最值得注意的可能是websocket.org/echo.html 和websocketstest.com。这些都不起作用。所以这与 Ubuntu 和我们所在的网络的结合有关。 【参考方案1】:

呃……好吧,那是个笨蛋。

事实证明,在 Linux 中,您可以选中网络代理设置(系统设置)中的复选框,该复选框将对所有协议使用相同的代理。

是的...不要那样做!

除非,也就是说,您的代理服务器支持 SOCKS 以及 HTTP/HTTPS/FTP(极不可能)。

事实证明,如果您选中该复选框,您的代理服务器将被注册为 SOCKS 代理,并且出于某种原因,Chrome 和 Firefox 中的 websocket 连接都需要使用它。所以你的 HTTP 代理最终会得到一堆它不理解的奇怪的 SOCKS 握手,任何 websocket 连接都会失败。

这在 Ubuntu 和 Kubuntu 上都进行了测试,并且两者都存在“问题”。

TL;DR;除非您的代理服务器支持 SOCKS 协议,否则不要选中“将此代理服务器用于所有协议”复选框。相反,为不同的协议(http、https 和 ftp)手动填写同一服务器,但将 socks 协议留空(或指向实际的 socks 代理服务器)。

【讨论】:

以上是关于Ubuntu 13.10 中的 websocket 连接失败的主要内容,如果未能解决你的问题,请参考以下文章

升级到 Ubuntu 13.10 后 Eclipse 菜单不显示

如何在 Ubuntu 13.10 上安装 PHP PECL 扩展“SQLite”

ubuntu13.10升级到ubuntu14.04

如何在 Ubuntu 13.10 上安装 Graphite?

Ubuntu 服务器 13.10 上的 ZPanel

如何在 ubuntu 13.10 中创建虚拟主机