Xmpp connect troubleshooting
Проблемы при подключении к jabber-серверу
Ниже рассматривается ситуация, когда доступ к интернету имеется, по крайней мере браузер и почтовый клиент функционируют, а подключиться к jabber-серверу не удается.
Прежде всего нужно ответить на вопрос, не из корпоративной сети вы пытаетесь подключиться? Это это так, то ситуация может усложнятся настройками сетевого оборудования, которое управление доступом к интернет. Об работе из локальной сети предприятия будет сказано ниже.
В любом случае надо выполнить следующие действия:
- Запустить консоль, щелкнув по кнопке Пуск(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.
Работа из корпоративной сети
В некоторых компаниях осуществляется фильтрация соединений по нестандартным портам. К "нестандартным" при этом относят всё что не 80 (HTTP), 25 (SMTP) и 110 (POP).
Тест с telnet (описанный выше) в таком случае окончится неудачей. Модифицируйте его, указав в качестве сервера allports.jabber.ru , а для порта - 80 или 25.
telnet allports.jabber.ru 80
Если соединения удасться достичь в этом случае, то в настройках подключения клиента нужно произвести соответствующие изменения. Т.е. явно указать порт (Port) и хост (Host).
Если ваша учетная запись находится не на jabber.ru, то возможны следующие варианты:
- завести учетную запись на jabber.ru
- найти другой сервер, который позволяет соединятся по произвольным портам и использовать его
- связаться с администратором вашего jabber-сервера и объяснив ему ситуацию, попосить настроить сервер соответствующим образом
Типовые проблемы
В этом разделе перечислены ситуации, когда подключиться к серверу можно, но авторизация не выполняется успешно.
- Указан неверный пароль
В случае указания неверного пароля сервер будет возвращать ошибку Forbidden. Если пароль утерян, то остаются следующие варианты:
- Запросить пароль посредством специальной функции. Зачастую она отсутствует на вашем сервере (поскольку не является обязательным его компонентов) либо вы не указали e-mail-адрес в vCard, поэтому она недоступна.
- Если в вашем распоряжении имеется носитель, где сохранился "запомненный" пароль в jabber-клиенте, то нужно отыскать программу, которая восстановит этот пароль. Для более подробной информации смотрите страницу.
- Обратиться за помощью к администратору сервера. Если вы достигнете договоренности, то вам окажут помощь. При этом восстановить пароль скорее всего не удастся (потому что на большинстве серверов они хранятся в защищенном виде), но можно будет его сменить на новый.
- Есть уже другое соединение с тем же ресурсом.
В этом случае отображается сообщение Conflict.
Эта ситуация легко может возникнуть, если запустить, например, дома и на работе клиент Psi и не поменять в настройках ресурс. Это еще один довод сразу после установки клиента производить указание уникального ресурса.
Чтобы выполнить подключение, измените в настройках значение в поле Ресурс (Resource) и повторите попытку.
В некоторых клиентах эту ситуацию "обходят" вводя в ресурс по умолчанию какую-то переменную часть. Там, например, поступили разработчики Gtalk-клиента и Gaim.
- Несуществующая учетная запись
При попытке подключиться к серверу с использованием несуществующего имени появится сообщение Not authorized
Если в написании имени вы уверены, то следует учитывать возможность того, что администратор сервера может производить по своему разумению удаление неактивных учетных записей (например тех, что не использовались несколько месяцев). Это не является общепринятым поведением и большая часть серверов функционирует по правилу "вечной учетной записи". Для уточнения ситуации свяжитесь с администратором сервера.