отправка файлов по jabber
передача файлов в разных im на моей памяти неоднократно ломалась и начинала работать опять. Впрочем, в последнее время она довольно устойчиво зависла в состоянии «не работает». Я возмутился, что мой реальный IP никак не помогает, и решил разобраться с проблемой. Основную часть мне удалось решить
кратко: для успешной отправки файлов достаточно указать в настройках клиента свой внешний ip-адрес или домен и пробросить нужный порт. То есть, если у вас стрим и вы используете нечто вроде DynDNS, то всё просто. Конкретных рекомендаций не буду давать, клиенты все разные
а теперь подробности. Стандарт описывает два способа передачи:
- отправитель имеет реальный ip или контроль над своим NAT
- отправитель знает socks5-прокси, с которым могут соединиться оба участника
из этого следует, что если вы хотите получить от кого-то файл, и этот человек — не технарь, то скорее всего вам нужно искать другие способы передачи. А вот для отправки файла можно немного повозиться. Лучше всего, конечно, знать свой внешний ip и иметь проброшенный порт. Иначе придётся добывать прокси. Но публичные прокси мало кто держит — редкий человек будет оплачивать такие объёмы трафика. Можно поднять свой, но тут другие проблемы. Во-первых, абы какой socks5 не подойдёт, тут нужны некоторые расширения, которые реализованы, видимо, исключительно в jabber-серверах. Во-вторых, сервер должен принимать подключения и от тех, кто хочет послать вам файл, поэтому придётся заморочиться с авторизацией или терпеть огромный трафик от анонимусов, которые скоро обнаружат эту проксю
опытный человек может возмутиться, что всю жизнь для p2p было достаточно одного реального IP у любой стороны. Да, это так. Но спека на socks5 bytestreams в джаббере требует этого именно от отправителя. Psi реализует нестандартное расширение, позволяющее обходиться реальным адресом у получателя, но черновик его был зарублен и не стал стандартом, поэтому фичу убрали из Gajim. Теоретически всё может работать и посредством jingle file transfer, но эта спека ещё не стала даже черновиком
по-хорошему, проблема должна полностью исчезнуть благодаря IPv6, если мы его когда-нибудь дождёмся. Впрочем, говорят, в висте он уже встроенный
в итоге я доволен, что хотя бы отправка файлов у меня работает надёжно, тем более, что мне редко что-то посылают : )