Difference between revisions of "Xmpp connect troubleshooting"

From JaWiki (Jabber/XMPP wiki)
Jump to: navigation, search
 
(xml)
 
(12 intermediate revisions by 5 users not shown)
Line 1: Line 1:
==Проблемы при подключении к jabber-серверу==
+
{{RealTitle|Диагностика проблем при подключении к jabber-серверу}}
Ниже рассматривается ситуация, когда доступ к интернету имеется, по крайней мере браузер и почтовый клиент функционируют, а подключиться к jabber-серверу не удается.
+
{{Interwiki
 +
| ruwiki =  
 +
| enwiki =
 +
| jworld = Проблемы при подключении к Jabber
 +
}}
  
Прежде всего нужно ответить на вопрос, не из корпоративной сети вы пытаетесь подключиться? Это это так, то ситуация может усложнятся настройками сетевого оборудования, которое управление доступом к интернет. Об работе из локальной сети предприятия будет сказано ниже.
+
Ниже рассматривается ситуация, когда доступ к [[w:Интернет|Интернету]] имеется, по крайней мере, браузер и почтовый клиент функционируют, а подключиться к [[server|серверу]] Jabber не удается.
 +
 
 +
Рекомендации даны для операционных систем семейства [[MS Windows]].
 +
[[File:Psi-xmlconsole-dialog.png|thumb|XML-консоль]]
 +
При общении с администратором проблемного сервера или с разработчиком того или иного ПО, например, XMPP-клиента, с которым у вас возникли проблемы - вам поможет информация из [[XML_console|XML-консоли]].
 +
 
 +
== Начало ==
 +
 
 +
Прежде всего нужно ответить на вопрос, не из корпоративной ли сети вы пытаетесь подключиться? Если это так, то ситуация может осложняться настройками сетевого оборудования, которое управляет доступом к Интернету. О работе из локальной сети предприятия будет сказано ниже.
  
 
В любом случае надо выполнить следующие действия:
 
В любом случае надо выполнить следующие действия:
  
* Запустить консоль, щелкнув по кнопке Пуск(Start) и выбрав пункт ''Выполнить''(Run).
+
* Запустить консоль, щелкнув по кнопке ''Пуск'' (''Start'') и выбрав пункт ''Выполнить'' (''Run'').
* В открывшемся окне наберите ''telnet имя_сервера 5222'' и нажмите ''Enter''.
+
* В открывшемся окне наберите ''telnet имя_сервера 5222'' и нажмите ''Enter''. Пример:
 
  telnet jabber.ru 5222
 
  telnet jabber.ru 5222
  
После этих действия окно должно стать полностью черным и только на верхней строке будет загораться и гаснуть курсор. Далее нажмите любую букву, но на экране вы ее не увидите (таковы особенности работы [[telnet]]-клиента в Windows), а затем ''Enter''. Появится текст похожий на приведенный ниже.
+
После этих действия окно должно стать полностью черным и только на верхней строке будет мигать курсор. Далее нажмите любую букву, но на экране вы ее не увидите (таковы особенности работы [[w:Telnet|Telnet]]-клиента в Windows), а затем клавишу ''Enter''. Появится текст, похожий на приведённый ниже.
  
  <?xml version='1.0'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' id='none' from='jabber.ru'
+
  <nowiki><?xml version='1.0'?><stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams'
version='1.0'><stream:error><xml-not-well-formed xmlns='urn:ietf:params:xml:ns:xmpp-streams'/></stream:error></stream:stream>
+
id='none' from='jabber.ru' version='1.0'><stream:error><xml-not-well-formed
Connection to host lost.
+
xmlns='urn:ietf:params:xml:ns:xmpp-streams'/></stream:error></stream:stream>
 +
Connection to host lost.</nowiki>
  
С доступностью сервера все в порядке и причина в неверной настройке клиента, либо проблемами, которые препятствуют самому подключению. Например, неверный пароль или попытка получить новую учетную запись, когда она уже существует на сервере. Ознакомьтесь с документацией на клиент или задайте вопрос на форуме.
+
С доступностью сервера всё в порядке и причина в неверной настройке клиента, либо проблемами, которые препятствуют самому подключению. Например, неверный пароль или попытка получить новую учетную запись, когда она уже существует на сервере. Ознакомьтесь с документацией на клиент или задайте вопрос на [http://forum.jrudevels.org форуме].
  
 
Если же на экране отображается около минуты  
 
Если же на экране отображается около минуты  
 
  Connecting To jabber.ru...
 
  Connecting To jabber.ru...
А затем
+
а затем
 
  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.
+
Это значит, что действительно по какой-то причине нет соединения с сервером. Попробуйте выполнить тоже самое, указав другой сервер. Например, ''jabber.org''.
  
{{todo|Дописать раздел}}
+
В случае неудачи вам следует поразмыслить, какие настройки вашей операционной системы могут препятствовать соединению на 5222 порт. <BR> Это может быть следствие работы программного брандмауэера (firewall), в правилах которого указано запрещать соединения с интернет определенным программам (тому же ''telnet.exe'').
  
===Работа из корпоративной сети===
+
Напоследок надо сказать, что если это домашний доступ в интернет (посредством районной сети, [[:w:ADSL|ADSL]]-модема или какого-то более экзотического способа), то работать с Jabber '''вы можете'''. Интернет-провайдер не будет блокировать или ограничивать доступ. <BR>
В некоторых компаниях осуществляется фильтрация соединений по нестандартным портам. К "нестандартным" при этом относят всё что не '''80''' ([[HTTP]]), '''25''' ([[SMTP]]) и '''110''' ([[POP]]). <BR>
+
Это утверждение справедливо для таких способов доступа к глобальной сети, как коммерческие сети WiFi ([http://goldenwifi.ru/ Golden WiFi]) и [[:w:GPRS|GPRS]] от российских операторов мобильной связи.
Тест с telnet (описанный выше) в таком случае окончится неудачей. Модифицируйте его, указав в качестве сервера ''allports.jabber.ru'' , а для порта - 80 или 25.
+
 
 +
Если вы уверены в том, что на вашем компьютере все в порядке, то обратитесь в службу поддержки провайдера (лучше письменно), сообщив что вы не можете организовать соединение с сервером (тут укажите его имя, например, jabber.ru) на удаленный порт 5222.
 +
 
 +
----
 +
 
 +
=== Работа из корпоративной сети ===
 +
 
 +
Если в организации, где вы трудитесь нет собственного Jabber-сервера (кстати, стоит поинтересоваться у сотрудников осуществляющих сопровождение сети - почему так?), это не повод не использовать jabber в частном порядке. <BR> Единственная загвоздка в том, что порой доступ в интернет организован таким образом, чтобы затруднить работникам использование чего-то отличного от веб-браузера.
 +
 
 +
Перечислим наиболее распространенные способы ограничений:
 +
 
 +
====Фильтрация соединений по нестандартным портам====
 +
К &laquo;нестандартным&raquo; при этом относят всё что не 80 ([[:w:HTTP|HTTP]]), 443 [[:w:HTTPS|HTTPS]], 25 ([[w:SMTP|SMTP]]) и 110 ([[w:POP|POP]]). Впрочем, последние два могут быть также заблокированы, если в организации делается упор на использование корпоративного почтового сервера.
 +
 
 +
Тест с запуском telnet (описанный выше) в таком случае окончится неудачей. Модифицируйте его, указав в качестве сервера ''allports.jabber.ru'', а для порта 80, 443 или 25.
  
 
  telnet allports.jabber.ru 80
 
  telnet allports.jabber.ru 80
  
Если соединения удасться достичь в этом случае, то в настройках подключения клиента нужно произвести соответствующие изменения. Т.е. явно указать порт (Port) и хост (Host).<BR>
+
Если соединения в этом случае удасться достичь, то в настройках подключения клиента нужно произвести соответствующие изменения. Т.е. явно указать порт (Port) и хост (Host).<BR>
Если ваша учетная запись находится не на jabber.ru, то возможны следующие варианты:
+
 
* завести учетную запись на jabber.ru
+
Если ваша учетная запись находится не на [[jabber.ru]], то возможны следующие варианты:
* найти другой сервер, который позволяет соединятся по произвольным портам и использовать его
+
* завести учетную запись на ''jabber.ru'';
* связаться с администратором вашего jabber-сервера и объяснив ему ситуацию, попосить настроить сервер соответствующим образом
+
* найти другой сервер, который позволяет соединятся по произвольным портам и использовать его;
 +
* воспользоваться [[J2J]] транспортом, перепоручив которому работать с учетной записью Jabber на стороннем сервере (например [[LJ Talk]]).
 +
* связаться с администратором вашего Jabber-сервера и объяснив ему ситуацию, попросить настроить сервер соответствующим образом (т.е. настроить сервер на прослушивать портов отличных от стандартных).
 +
 
 +
'''Примечание''': Если ограничения в вашей сети вызваны желанием повысить безопасность внутренней сети, то вполне возможно договориться с администраторами об открытии портов нужных jabber (5222/5223 TCP-портов). На безопасность это никак не влияет, потому что соединение инициируется из локальной сети.
 +
 
 +
====Доступ в интернет организован через PROXY====
 +
Необходимо уточнить какого типа proxy и поддерживает ли его jabber-клиент, который вы хотите использоваться. Если поддерживает, то произведите соответствующую настройку и попробуйте подключиться к стандартному порту. Если не получится, то попробуйте указать 80 и 443 порты.
 +
 
 +
====Доступ через [[:w:Microsoft_ISA_Server|MS ISA]]====
 +
Если на вашем компьютере установлен ISA-клиент, то для организации доступа к сети использовано именно это ПО производства Microsoft. <BR> В том случае, если клиент не установлен, но ISA в сети все равно имеется, то могут возникнуть определенные сложности. В основу его работы положена [[:w:en:NTLM|NTLM]]-авторизация, которую jabber-клиенты не поддерживают (равно как и другие прикладные программы). Понадобиться дополнительное ПО под названием [http://ntlmaps.sourceforge.net/ ntlmaps], которое будет выполнять роль посредника между jabber-клиентом и ISA-сервером. <BR>Дополнительная информация по использованию [http://sys.net.ru/index.php?option=com_content&task=view&id=53&Itemid=35 ntlmaps и jabber].
 +
 
 +
====Доступен только HTTP====
 +
Ситуация, когда компьютер может общаться с внешним миром только посредством прикладного протокола HTTP.
 +
 
 +
=====Использование polling=====
 +
Если вам доступен только HTTP-протокол, но пользоваться веб-клиентами не хочется.
 +
* Клиенты с поддержкой поллинга, кривизна поллинга, сервера с поллингом (httppoll.jabber.ru)
 +
 
 +
=====Использование веб-приложений=====
 +
В случае когда обойти ограничения не удается, то всегда остается возможность использовать [[веб-клиент]] jabber, который работают прямо в браузере.
 +
 
 +
====Запрет на установку ПО в MS Windows====
 +
Если запись в каталог ''Program Files'' и в ветку реестра ''HKEY_CURRENT_USER'' заблокированы, то достаточно скачать дистрибутив Jabber-клиента без инсталлятора, просто в архиве (или не в архиве). Не забывайте, что любые ограничения вводятся не просто так. Поступайте так, если вы осознаете последствия.
 +
 
 +
----
 +
 
 +
== Типовые проблемы при подключении==
 +
 
 +
В этом разделе перечислены ситуации, когда подключиться к серверу можно, но авторизация не выполняется успешно.
 +
 
 +
* '''Указан неверный пароль'''
 +
В случае указания неверного [[Password|пароля]] сервер будет возвращать ошибку ''Forbidden''.
 +
 
 +
Если вы не можете его вспомнить самостоятельно и попытаться подключиться ещё раз, то обратитесь к странице [[Password Recovering|&laquo;Восстановление пароля&raquo;]].
 +
 
 +
Учитывайте, что пароль может вводится в любой раскладке. Сервер хранит его именно в том виде, как вы указали его при регистрации. Соответственно и ограничений на длину пароля (в отличии от [[ICQ]]) нет.
 +
 
 +
* '''Есть уже другое соединение с тем же [[Resource|ресурсом]]. '''
 +
В этом случае отображается сообщение ''Conflict''.
 +
 
 +
Эта ситуация легко может возникнуть, если запустить, например, дома и на работе клиент [[Psi]] и не поменять в настройках ресурс. Это еще один довод сразу после установки клиента производить указание уникального ресурса.
 +
 
 +
Чтобы выполнить подключение, измените в настройках значение в поле Ресурс (Resource) и повторите попытку.
 +
 
 +
В некоторых клиентах эту ситуацию &laquo;обходят&raquo;, вводя в ресурс по умолчанию какую-то переменную часть. Там, например, поступили разработчики [[Gtalk]]-клиента и [[Gaim]].
 +
 
 +
* '''Несуществующая учетная запись'''
 +
При попытке подключиться к серверу с использованием несуществующего имени появится сообщение ''Not authorized''
  
{{todo|Раскрыть тему proxy (+ISA), http-polling, binging(?) и прочих извратов + сказать про Желательность SSL}}
+
Если в написании имени вы уверены, то следует учитывать возможность того, что администратор сервера может производить по своему разумению удаление неактивных учетных записей (например тех, что не использовались несколько месяцев). Это не является общепринятым поведением и большая часть серверов функционирует по правилу &laquo;вечной учетной записи&raquo;. Для уточнения ситуации свяжитесь с администратором сервера.
{{todo|Раскрыть тему веб-бейзед жабберинга при запрете на запуск сторонних аппликаций и проблем с http-polling}}
+

Latest revision as of 13:57, 22 November 2010

В соответствии с принятыми в данной вики договорённостями, правильное название этой статьи — Диагностика проблем при подключении к jabber-серверу.
Для ссылок сюда с других страниц
ЯВики используйте название
Диагностика проблем при подключении к jabber-серверу
На других ресурсах
можно также давать ссылку
http://jawiki.ru/Xmpp_connect_troubleshooting

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

Рекомендации даны для операционных систем семейства MS Windows.

XML-консоль

При общении с администратором проблемного сервера или с разработчиком того или иного ПО, например, XMPP-клиента, с которым у вас возникли проблемы - вам поможет информация из XML-консоли.

Начало[edit]

Прежде всего нужно ответить на вопрос, не из корпоративной ли сети вы пытаетесь подключиться? Если это так, то ситуация может осложняться настройками сетевого оборудования, которое управляет доступом к Интернету. О работе из локальной сети предприятия будет сказано ниже.

В любом случае надо выполнить следующие действия:

  • Запустить консоль, щелкнув по кнопке Пуск (Start) и выбрав пункт Выполнить (Run).
  • В открывшемся окне наберите telnet имя_сервера 5222 и нажмите Enter. Пример:
telnet jabber.ru 5222

После этих действия окно должно стать полностью черным и только на верхней строке будет мигать курсор. Далее нажмите любую букву, но на экране вы ее не увидите (таковы особенности работы 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

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

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

Напоследок надо сказать, что если это домашний доступ в интернет (посредством районной сети, ADSL-модема или какого-то более экзотического способа), то работать с Jabber вы можете. Интернет-провайдер не будет блокировать или ограничивать доступ.
Это утверждение справедливо для таких способов доступа к глобальной сети, как коммерческие сети WiFi (Golden WiFi) и GPRS от российских операторов мобильной связи.

Если вы уверены в том, что на вашем компьютере все в порядке, то обратитесь в службу поддержки провайдера (лучше письменно), сообщив что вы не можете организовать соединение с сервером (тут укажите его имя, например, jabber.ru) на удаленный порт 5222.


Работа из корпоративной сети[edit]

Если в организации, где вы трудитесь нет собственного Jabber-сервера (кстати, стоит поинтересоваться у сотрудников осуществляющих сопровождение сети - почему так?), это не повод не использовать jabber в частном порядке.
Единственная загвоздка в том, что порой доступ в интернет организован таким образом, чтобы затруднить работникам использование чего-то отличного от веб-браузера.

Перечислим наиболее распространенные способы ограничений:

Фильтрация соединений по нестандартным портам[edit]

К «нестандартным» при этом относят всё что не 80 (HTTP), 443 HTTPS, 25 (SMTP) и 110 (POP). Впрочем, последние два могут быть также заблокированы, если в организации делается упор на использование корпоративного почтового сервера.

Тест с запуском telnet (описанный выше) в таком случае окончится неудачей. Модифицируйте его, указав в качестве сервера allports.jabber.ru, а для порта — 80, 443 или 25.

telnet allports.jabber.ru 80

Если соединения в этом случае удасться достичь, то в настройках подключения клиента нужно произвести соответствующие изменения. Т.е. явно указать порт (Port) и хост (Host).

Если ваша учетная запись находится не на jabber.ru, то возможны следующие варианты:

  • завести учетную запись на jabber.ru;
  • найти другой сервер, который позволяет соединятся по произвольным портам и использовать его;
  • воспользоваться J2J транспортом, перепоручив которому работать с учетной записью Jabber на стороннем сервере (например LJ Talk).
  • связаться с администратором вашего Jabber-сервера и объяснив ему ситуацию, попросить настроить сервер соответствующим образом (т.е. настроить сервер на прослушивать портов отличных от стандартных).

Примечание: Если ограничения в вашей сети вызваны желанием повысить безопасность внутренней сети, то вполне возможно договориться с администраторами об открытии портов нужных jabber (5222/5223 TCP-портов). На безопасность это никак не влияет, потому что соединение инициируется из локальной сети.

Доступ в интернет организован через PROXY[edit]

Необходимо уточнить какого типа proxy и поддерживает ли его jabber-клиент, который вы хотите использоваться. Если поддерживает, то произведите соответствующую настройку и попробуйте подключиться к стандартному порту. Если не получится, то попробуйте указать 80 и 443 порты.

Доступ через MS ISA[edit]

Если на вашем компьютере установлен ISA-клиент, то для организации доступа к сети использовано именно это ПО производства Microsoft.
В том случае, если клиент не установлен, но ISA в сети все равно имеется, то могут возникнуть определенные сложности. В основу его работы положена NTLM-авторизация, которую jabber-клиенты не поддерживают (равно как и другие прикладные программы). Понадобиться дополнительное ПО под названием ntlmaps, которое будет выполнять роль посредника между jabber-клиентом и ISA-сервером.
Дополнительная информация по использованию ntlmaps и jabber.

Доступен только HTTP[edit]

Ситуация, когда компьютер может общаться с внешним миром только посредством прикладного протокола HTTP.

Использование polling[edit]

Если вам доступен только HTTP-протокол, но пользоваться веб-клиентами не хочется.

  • Клиенты с поддержкой поллинга, кривизна поллинга, сервера с поллингом (httppoll.jabber.ru)
Использование веб-приложений[edit]

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

Запрет на установку ПО в MS Windows[edit]

Если запись в каталог Program Files и в ветку реестра HKEY_CURRENT_USER заблокированы, то достаточно скачать дистрибутив Jabber-клиента без инсталлятора, просто в архиве (или не в архиве). Не забывайте, что любые ограничения вводятся не просто так. Поступайте так, если вы осознаете последствия.


Типовые проблемы при подключении[edit]

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

  • Указан неверный пароль

В случае указания неверного пароля сервер будет возвращать ошибку Forbidden.

Если вы не можете его вспомнить самостоятельно и попытаться подключиться ещё раз, то обратитесь к странице «Восстановление пароля».

Учитывайте, что пароль может вводится в любой раскладке. Сервер хранит его именно в том виде, как вы указали его при регистрации. Соответственно и ограничений на длину пароля (в отличии от ICQ) нет.

  • Есть уже другое соединение с тем же ресурсом.

В этом случае отображается сообщение Conflict.

Эта ситуация легко может возникнуть, если запустить, например, дома и на работе клиент Psi и не поменять в настройках ресурс. Это еще один довод сразу после установки клиента производить указание уникального ресурса.

Чтобы выполнить подключение, измените в настройках значение в поле Ресурс (Resource) и повторите попытку.

В некоторых клиентах эту ситуацию «обходят», вводя в ресурс по умолчанию какую-то переменную часть. Там, например, поступили разработчики Gtalk-клиента и Gaim.

  • Несуществующая учетная запись

При попытке подключиться к серверу с использованием несуществующего имени появится сообщение Not authorized

Если в написании имени вы уверены, то следует учитывать возможность того, что администратор сервера может производить по своему разумению удаление неактивных учетных записей (например тех, что не использовались несколько месяцев). Это не является общепринятым поведением и большая часть серверов функционирует по правилу «вечной учетной записи». Для уточнения ситуации свяжитесь с администратором сервера.