Назад | Перейти на главную страницу

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

Для целей этой публикации корневой домен example.com.

У меня есть XMPP-сервер (ejabberd), работающий на Debian 6.

В клиентах (Pidgin, Adium), когда я пытаюсь добавить учетную запись gtalk xmpp в качестве контакта, я получаю сообщения «Не авторизован» вместе с ошибками 404 и 503 (вывод отладки ниже).

Хотя это может указывать на неправильную конфигурацию ejabberd, если я настрою сервер XMPP для размещения chat.example.com, добавление пользователя gtalk будет работать нормально. То же самое верно, если на сервере XMPP размещается seconddexample.com.

Возможно, это проблема DNS? Что ж, я просмотрел DNS, файлы хостов и убедился, что они верны. Но я их снял и на всякий случай заменил.

Сборка сервера? Я восстановил его с нуля. Та же проблема. Сеть? Я пробовал это в другой сети.

У меня закончились идеи.

Может ли gtalk занести сервер в черный список? По ошибке?

Если у вас есть идеи, они будут оценены.

Вывод консоли XMPP из клиента Pidgin с 'exampleuser@example.com' при попытке добавить пользователя 'gtalk@gmail.com':

<iq type='result' to='example.com' id='2188721256'/>
<iq type='set' id='purplec8d28432'>
    <query xmlns='jabber:iq:roster'>
        <item jid='gtalk@gmail.com' name=''>
            <group>Buddies</group>
        </item>
    </query>
</iq>
<presence to='gtalk@gmail.com' type='subscribe'/>
<iq from='exampleuser@example.com' to='exampleuser@example.com/test' id='push524344776' type='set'>
    <query xmlns='jabber:iq:roster'>
        <item subscription='none' jid='gtalk@gmail.com'>
            <group>Buddies</group>
        </item>
    </query>
</iq>
<iq type='result' id='push524344776'/>
<iq from='exampleuser@example.com' to='exampleuser@example.com/test' id='purplec8d28432' type='result'/>
<iq from='exampleuser@example.com' to='exampleuser@example.com/test' id='push1181680121' type='set'>
    <query xmlns='jabber:iq:roster'>
        <item ask='subscribe' subscription='none' jid='gtalk@gmail.com'>
            <group>Buddies</group>
        </item>
    </query>
</iq>
<iq type='result' id='push1181680121'/>
<presence from='gtalk@gmail.com' to='exampleuser@example.com/test' type='error'>
    <error code='404' type='cancel'>
        <remote-server-not-found xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
    </error>
</presence>

Решено. Проблема заключалась во внутреннем DNS gtalk.

Оказывается, предшественник открыл (бесплатную) учетную запись Google Apps для домена 6 лет назад, перестал ее использовать 5 лет назад, никому не сказал и, вероятно, сам забыл об этом.

Это означает, что когда gtalk@gmail.com пытался поговорить с user@example.com, внутренние записи показали, что @ example.com использует службу gtalk, а не службу ejabberd, которую я установил. Тогда не было бы ни ответа, ни авторизации.

Больше всего в этой проблеме беспокоило то, что все записи NS, которые я смог найти, показали, что я все настроил правильно, включая dig srv _xmpp-server._tcp.example.com. @ 8.8.8.8

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