Проблемы при подключении к Jabber: различия между версиями

Материал из Мир Jabber
Перейти к навигацииПерейти к поиску
 
(не показано 19 промежуточных версий 5 участников)
Строка 5: Строка 5:
Для определения характера проблемы надо выполнить следующие действия:
Для определения характера проблемы надо выполнить следующие действия:


* Запустить консоль, щелкнув по кнопке ''Пуск'' (''Start'') и выбрав пункт ''Выполнить'' (''Run'').
* Windows:
* В открывшемся окне наберите ''telnet имя_сервера 5222'' и нажмите ''Enter''. Пример:
** Запустить консоль, щелкнув по кнопке ''Пуск'' (''Start''), затем выбрав ''Все программы''->''Стандартные''->''Командная строка''.
** В открывшемся окне наберите ''telnet имя_сервера 5222'' и нажмите ''Enter''. Пример:
telnet jabber.ru 5222
* Unix-like:
** Запустить консоль, используя средства Вашего DE/WM. Если Вы не знаете, как это сделать - нажмите Ctrl-Alt-F1 и войдите от своего имени.
** В открывшемся окне наберите ''telnet имя_сервера 5222'' и нажмите ''Enter''. Пример:
  telnet jabber.ru 5222
  telnet jabber.ru 5222


После этих действия окно должно стать полностью черным и только на верхней строке будет мигать курсор. Далее нажмите любую букву, но на экране вы ее не увидите (таковы особенности работы [[ru_wikipedia:Telnet|Telnet]]-клиента в Windows), а затем клавишу ''Enter''. Появится текст, похожий на приведённый ниже.
В Windows после этих действия окно должно стать полностью черным и только на верхней строке будет мигать курсор. Далее нажмите любую букву, но на экране вы ее не увидите (таковы особенности работы [[ru_wikipedia:Telnet|Telnet]]-клиента в Windows), а затем клавишу ''Enter''. Появится текст, похожий на приведённый ниже.


  <nowiki><?xml version='1.0'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams'
  <nowiki><?xml version='1.0'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams'
Строка 23: Строка 28:
  Could not open a connection to host on port 5222 : Connect failed
  Could not open a connection to host on port 5222 : Connect failed


Это значит, что действительно по какой-то причине нет соединения с сервером. Попробуйте выполнить тоже самое, указав другой сервер. Например, ''jabber.org''.
Это значит, что действительно по какой-то причине нет соединения с сервером. Попробуйте выполнить тоже самое, указав другой сервер. Например, ''telnet jabber.org 5222''.


В случае неудачи вам следует поразмыслить, какие настройки вашей операционной системы могут препятствовать соединению на 5222 порт. <BR> Это может быть следствие работы программного брандмауэера (firewall), в правилах которого указано запрещать соединения с интернет определенным программам (тому же ''telnet.exe'').
В случае неудачи вам следует поразмыслить, какие настройки вашей операционной системы могут препятствовать соединению на 5222 порт. <BR> Это может быть следствие работы программного брандмауэера (firewall), в правилах которого указано запрещать соединения с интернет определенным программам (тому же Telnet).


==Удаленные проблемы==
==Удаленные проблемы==
Если Вы точно уверены, что брандмауэр не запрещает telnet.exe доступ в Интернет, но соединения с сервером все ещё нет, то проблема связана со способом выхода в сеть. Чаще всего подобная проблема возникает при работе из корпоративной сети. Возможные проблемы и способы их решения можно узнать ниже.
Если Вы точно уверены, что брандмауэр не запрещает Telnet доступ в Интернет, но соединения с сервером все ещё нет, то проблема связана со способом выхода в сеть. Чаще всего подобная проблема возникает при работе из сети предприятия. Возможные проблемы и способы их решения можно узнать ниже.
===Прокси===
===Прокси===
Довольно распространен способ выхода в Интернет [[Сетевые соединения в Jabber|через прокси]]. В первую очередь необходимо посмотреть в настройках браузера настройки прокси.  
[[Изображение:Psi proxy.png|thumb|right|Пример настройки прокси в [[Psi]]]]
===Блокирование портов===
 
Иногда стандартные порты для соединения с Jabber сервером (5222 и 5223) закрыты. В этом случае можно попробовать использовать [[Нестандартные порты в Jabber|нестандартный порт]], если это настроено на сервере. Если Вы нашли свой сервер в [[Нестандартные порты в Jabber|этой таблице]] - введите [[Настройки сети в Jabber-клиентах|настройках]] своего клиента указанные там хост и один из перечисленных нестандартных портов.
Довольно распространен способ выхода в Интернет [[Сетевые соединения в Jabber|через прокси]]. В первую очередь необходимо узнать настройки прокси. Самый простой вариант - посмотреть настройки браузера:
* в случае с Firefox они располагаются на странице "''Дополнительно''" настроек, вкладке "''Сеть''" в разделе "''Соединение''"
* в случае Internet Explorer 6 - "''Сервис''" - "''Свойства обозревателя''" - "''Подключения''" - "''Настройка LAN''" - "''Прокси-сервер''" - "''Дополнительно''"
Необходимы три параметра: тип, адрес и порт. Откройте настройки Вашего Jabber-клиента в разделе прокси (в случае Psi это "''Меню''"->"''Аккаунты''"->"''Изменить''"->"''Соединение''"->"''Прокси-сервер''"->"''Изменить''"-"''Создать''"), впишите туда адрес прокси-сервера и порт. Не забывайте правильно указать тип. Пример настройки можно увидеть справа, однако параметры, указанные на изображении, могут не совпадать с Вашими параметрами. После выполнения настройки можно подключаться.
 
====Если ваш клиент не поддерживает работу через прокси-сервер====
 
или с подключением какие-либо проблемы, можно создать туннель через прокси, например с помощью утилиты [http://www.dest-unreach.org/socat/ socat] (есть практически в любом дистрибутиве Linux, в [http://trac.macports.org/browser/trunk/dports/sysutils/socat/Portfile Macports], также существуют бинарные сборки для [http://blog.gentilkiwi.com/programmes/socat#englishversion Windows/Cygwin]):
 
./socat TCP4-LISTEN:13666,reuseaddr,fork PROXY:your-proxy:allports.jabber.ru:443,proxyport=8080


===HTTP Polling===
В данном примере мы создаем туннель через прокси-сервер с адресом ''your-proxy:8080'' с порта 13666 локальной машины на 443-й порт сервера ''allports.jabber.ru''. Теперь в настройках аккаунта указываем нашему клиенту сервер подключения - localhost (127.0.0.1) и порт 13666.
Иногда выход в сеть разрешается только по протоколу [[ru_wikipedia:HTTP|HTTP]]. В таком случае необходимо использовать HTTP Polling.
{{-}}


{{ToDo|Дописать. Копипасту с JaWiki переписать. Скопипастить с "Сетевые соединения в Jabber"}}
===Блокирование портов===
Иногда стандартные порты для соединения с Jabber сервером (5222 и 5223) закрыты. В этом случае можно попробовать использовать [[Нестандартные порты в Jabber|нестандартный порт]]. Не все сервера предоставляют доступ по нестандартным портам. Если Вы нашли свой сервер в [[Нестандартные порты в Jabber|этой таблице]] - введите [[Настройки сети в Jabber-клиентах|настройках]] своего клиента указанные там хост (адрес для подключения) и один из перечисленных нестандартных портов. Если у вашего сервера есть несколько нестандартных портов, то сначала надо попробовать порт 443, при этом SSL должно быть включено. Как правило, этот порт открыт. Если этот порт закрыт, то нужно пробовать другие из списка.


===jwchat===
'''Не нужно путать хост (адрес для подключения) и адрес сервера из [[JID]]. Адрес сервера из JID не зависит ни от хоста, ни от способа подключения. По этой причине JID'ы вида "someuser@allports.jabber.ru" не являются корректными и не следует его писать в соответствующее поле в настройках клиента. В данном примере в поле JID необходимо записать "someuser@jabber.ru", а "allports.jabber.ru" следует записать в поле "хост".'''
Также возможен вариант использования браузерного клиента [[JWChat]], который работает для любого сервера.


==Если у вас Gmail==
===HTTP Polling/Binding===
Иногда выход в сеть разрешается только по протоколу [[ru_wikipedia:HTTP|HTTP]]. В таком случае необходимо использовать HTTP Polling/Binding. Как правило, настройки HTTP Polling располагаются там же, где и настройки прокси. В случае с Psi специально выделен тип HTTP Polling. В этом случае нужно узнать так называемый "URL для поллинга". Его можно посмотреть в [[Нестандартные порты в Jabber|этой таблице]]. Остальные поля нужно заполнять только в том случае, если используется прокси (см. выше).


Если вы используете Gmail в качестве jabber-сервера — то вы можете использовать [http://mail.google.com web-интерфейс gmail] или [http://www.google.com/talk/intl/ru GTalk гаджет] для общения со своими контактами. Для работы GTalk гаджета требуется Flash.
===Веб-клиент===
Если ничего из вышеперечисленного не помогает - то возможно использование ''веб-клиента''. Это не так удобно, как обычный клиент, но в данной ситуации может быть решением. Выбрать наиболее подходящий веб-клиент можно на [[Веб-клиенты|этой странице]].


[[Category:Подключение]][[Category:Сеть]][[Category:Тонкости работы]]
[[Category:Сеть]][[Category:Тонкости работы]]

Текущая версия на 08:45, 13 апреля 2015

К сожалению, не всегда удается подключиться к Jabber серверу без настройки клиента. Сначала необходимо определить, что мешает подключению.

Локальные проблемы[править]

Для определения характера проблемы надо выполнить следующие действия:

  • Windows:
    • Запустить консоль, щелкнув по кнопке Пуск (Start), затем выбрав Все программы->Стандартные->Командная строка.
    • В открывшемся окне наберите telnet имя_сервера 5222 и нажмите Enter. Пример:
telnet jabber.ru 5222
  • Unix-like:
    • Запустить консоль, используя средства Вашего DE/WM. Если Вы не знаете, как это сделать - нажмите Ctrl-Alt-F1 и войдите от своего имени.
    • В открывшемся окне наберите telnet имя_сервера 5222 и нажмите Enter. Пример:
telnet jabber.ru 5222

В Windows после этих действия окно должно стать полностью черным и только на верхней строке будет мигать курсор. Далее нажмите любую букву, но на экране вы ее не увидите (таковы особенности работы Telnet-клиента в Windows), а затем клавишу Enter. Появится текст, похожий на приведённый ниже.

<?xml version='1.0'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams'
id='none' from='jabber.ru' version='1.0'><stream:error><xml-not-well-formed
xmlns='urn:ietf:params:xml:ns:xmpp-streams'/></stream:error></stream:stream>
Connection to host lost.

С доступностью сервера всё в порядке и причина в неверной настройке клиента, либо проблемами, которые препятствуют самому подключению. Например, неверный пароль или попытка получить новую учетную запись, когда она уже существует на сервере.

Если же на экране отображается около минуты

Connecting To jabber.ru...

а затем

Could not open a connection to host on port 5222 : Connect failed

Это значит, что действительно по какой-то причине нет соединения с сервером. Попробуйте выполнить тоже самое, указав другой сервер. Например, telnet jabber.org 5222.

В случае неудачи вам следует поразмыслить, какие настройки вашей операционной системы могут препятствовать соединению на 5222 порт.
Это может быть следствие работы программного брандмауэера (firewall), в правилах которого указано запрещать соединения с интернет определенным программам (тому же Telnet).

Удаленные проблемы[править]

Если Вы точно уверены, что брандмауэр не запрещает Telnet доступ в Интернет, но соединения с сервером все ещё нет, то проблема связана со способом выхода в сеть. Чаще всего подобная проблема возникает при работе из сети предприятия. Возможные проблемы и способы их решения можно узнать ниже.

Прокси[править]

Пример настройки прокси в Psi

Довольно распространен способ выхода в Интернет через прокси. В первую очередь необходимо узнать настройки прокси. Самый простой вариант - посмотреть настройки браузера:

  • в случае с Firefox они располагаются на странице "Дополнительно" настроек, вкладке "Сеть" в разделе "Соединение"
  • в случае Internet Explorer 6 - "Сервис" - "Свойства обозревателя" - "Подключения" - "Настройка LAN" - "Прокси-сервер" - "Дополнительно"

Необходимы три параметра: тип, адрес и порт. Откройте настройки Вашего Jabber-клиента в разделе прокси (в случае Psi это "Меню"->"Аккаунты"->"Изменить"->"Соединение"->"Прокси-сервер"->"Изменить"-"Создать"), впишите туда адрес прокси-сервера и порт. Не забывайте правильно указать тип. Пример настройки можно увидеть справа, однако параметры, указанные на изображении, могут не совпадать с Вашими параметрами. После выполнения настройки можно подключаться.

Если ваш клиент не поддерживает работу через прокси-сервер[править]

или с подключением какие-либо проблемы, можно создать туннель через прокси, например с помощью утилиты socat (есть практически в любом дистрибутиве Linux, в Macports, также существуют бинарные сборки для Windows/Cygwin):

./socat TCP4-LISTEN:13666,reuseaddr,fork PROXY:your-proxy:allports.jabber.ru:443,proxyport=8080

В данном примере мы создаем туннель через прокси-сервер с адресом your-proxy:8080 с порта 13666 локальной машины на 443-й порт сервера allports.jabber.ru. Теперь в настройках аккаунта указываем нашему клиенту сервер подключения - localhost (127.0.0.1) и порт 13666.

Блокирование портов[править]

Иногда стандартные порты для соединения с Jabber сервером (5222 и 5223) закрыты. В этом случае можно попробовать использовать нестандартный порт. Не все сервера предоставляют доступ по нестандартным портам. Если Вы нашли свой сервер в этой таблице - введите настройках своего клиента указанные там хост (адрес для подключения) и один из перечисленных нестандартных портов. Если у вашего сервера есть несколько нестандартных портов, то сначала надо попробовать порт 443, при этом SSL должно быть включено. Как правило, этот порт открыт. Если этот порт закрыт, то нужно пробовать другие из списка.

Не нужно путать хост (адрес для подключения) и адрес сервера из JID. Адрес сервера из JID не зависит ни от хоста, ни от способа подключения. По этой причине JID'ы вида "someuser@allports.jabber.ru" не являются корректными и не следует его писать в соответствующее поле в настройках клиента. В данном примере в поле JID необходимо записать "someuser@jabber.ru", а "allports.jabber.ru" следует записать в поле "хост".

HTTP Polling/Binding[править]

Иногда выход в сеть разрешается только по протоколу HTTP. В таком случае необходимо использовать HTTP Polling/Binding. Как правило, настройки HTTP Polling располагаются там же, где и настройки прокси. В случае с Psi специально выделен тип HTTP Polling. В этом случае нужно узнать так называемый "URL для поллинга". Его можно посмотреть в этой таблице. Остальные поля нужно заполнять только в том случае, если используется прокси (см. выше).

Веб-клиент[править]

Если ничего из вышеперечисленного не помогает - то возможно использование веб-клиента. Это не так удобно, как обычный клиент, но в данной ситуации может быть решением. Выбрать наиболее подходящий веб-клиент можно на этой странице.