ejabberd && mod_proxy65 && NAT

Linux jabber iptables xmpp ejabberd

Есть два компьютера. Первый - шлюз, смотрит в интернет и локальную сеть. Второй - jabber сервер.
У первого внешний ( белый ) ИП допустим 125.67.23.22 и внутренний 10.0.0.1
У второго 10.0.0.2

У шлюза прописан проброс порта:
$IPT -t nat -A PREROUTING -p tcp ! -s 10.0.0/24 -d 125.67.23.22 --dport 7777 -j DNAT --to-destination 10.0.0.2

У джабер сервера настроен прокси:
{mod_proxy65, [
{host, "proxy.somedomain.com"},
{name, "File Transfer Proxy"},
{ip, {10,0,0,2}},
{port, 7777},
{access, proxy65_access},
{shaper, c2s_shaper}
]} ( шейпер и аксес настроены )

Задача: организовать обмен файлами между клиентами через прокси джабер сервера.
Проблема: При инициализации передачи файлов, клиент посылает запрос на сервер и получает данные о прокси. В нашем случае ответ выходит таким: 10.0.0.2:7777. Клиент посылает данные принимающей стороне. Принимающая сторона пытается подключиться по этому адресу и получается конечно же error.
Решение: Сделать чтобы джабер сервер отдавал данные о внешнем айпи.

Может есть какая-то возможность настроить прокси джабера или сделать какой-то трюк посредством iptables? Варианты решения не связанные с прокси не подходят, нужен прокси.

P.S. для передачи файлов в iptables открыт только 7777, всё остальное дропается правилом по умолчанию. Клиенты настроены по умолчанию на 7777 порт и прокси proxy.somedomain.com. Домен proxy.somedomain.com имеет адрес белого ИП 125.67.23.22.

Примечание:
Юрий Чудновский
Почему не используется? По спецификации xep-0065 ( раздел Mediated Connection ) как я понимаю клиенты производят передачу файлов как раз таки через сервер. На прямую передача файлов происходит когда у одной из сторон есть внешний ип адрес или же происходит передача In-band когда файл кодируется в текст и пересылается через сервер.
hostname помог, спасибо :)
Ответы:
mod_proxy65 не используется для передачи файлов. Вообще, передача файлов идёт напрямую между клиентами без участия жабер-сервера. Он нужен им только чтобы "договориться" о передаче, дальше действую сами и сервер даже не знает, какие порты они договорились использовать для файл трансферинга.
А вообще, вам может помочь добавление опции {hostname,125.67.23.22 }


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.