не удается подключиться к веб-сокету в Ubuntu 13.10

У нас возникла странная проблема на работе, и я надеюсь, что кто-нибудь здесь может подсказать мне, как ее устранить.

Проблема в том, что я не могу подключаться к веб-сокету с моей рабочей станции Kubuntu 13.10. Я пробовал как из Chrome, так и из Firefox. Я за прокси и сначала подумал, что это должно быть причиной. Тем не менее, я заставил нескольких коллег попытаться подключиться к одной и той же эхо-демонстрации websocket, и все они смогли это сделать, кроме одного. Он был единственным, кто работал на Ubuntu (так же, как и я), остальные были на Mac, Windows и даже на RedHat! У них все работало нормально.

Хорошо, а теперь самое странное. Я создал и запустил виртуальную машину на своей рабочей станции (та, которая не могла подключиться). Виртуальная машина — это Lubuntu 13.10, и что вы знаете, эта чертова штука прекрасно устанавливает соединение через веб-сокет!

Поэтому любые идеи о том, как устранить эту проблему, или даже некоторые предложения по решениям, будут очень признательны.


person StFS    schedule 08.03.2014    source источник
comment
Как вы устанавливаете связи? Как выглядит установка? Вы реализовали свой собственный сервер веб-сокетов или подключаетесь к общедоступному?   -  person Kurt Pattyn    schedule 09.03.2014
comment
Я попытался подключиться к локальному (nodejs) серверу веб-сокетов, который я запускаю локально на своем компьютере, и это работает. Что не сработало, так это любая веб-страница, использующая веб-сокеты. Я пробовал несколько, но наиболее заметными были, вероятно, websocket.org/echo.html и websocketstest.com. Ни один из них не работал. Так что это как-то связано с комбинацией Ubuntu и сети, в которой мы находимся.   -  person StFS    schedule 10.03.2014


Ответы (1)


Эээ... ну этот был тупой.

Получается, что в Linux можно поставить галочку в настройках Network Proxy (настройках системы), которая будет использовать один и тот же прокси для всех протоколов.

Да... не делай этого!

Если только ваш прокси-сервер не поддерживает SOCKS, а также HTTP/HTTPS/FTP (крайне маловероятно).

Оказывается, если вы отметите этот флажок, ваш прокси-сервер будет зарегистрирован как прокси-сервер SOCKS, и по какой-то причине соединения через веб-сокет как в Chrome, так и в Firefox захотят его использовать. Таким образом, ваш HTTP-прокси в конечном итоге получит кучу странных рукопожатий SOCKS, которые он не понимает, и любое соединение через веб-сокет завершится ошибкой.

Это было протестировано как на Ubuntu, так и на Kubuntu, и «проблема» существует на обоих.

TL;ДР; Не устанавливайте флажок «Использовать этот прокси-сервер для всех протоколов», если ваш прокси-сервер не поддерживает протокол SOCKS. Вместо этого вручную заполните один и тот же сервер для разных протоколов (http, https и ftp), но оставьте протокол socks пустым (или укажите реальный прокси-сервер socks).

person StFS    schedule 17.03.2014