Сетевые соединения в Jabber: различия между версиями

Материал из Мир Jabber
Перейти к навигацииПерейти к поиску
м (добавил starttls)
 
(не показано 25 промежуточных версий 7 участников)
Строка 1: Строка 1:
== Порты ==
== Порты ==


Стандартными портами для подключения Jabber-клиента к серверу являются 5222 и 5223. Раньше 5222 применялся для незащищенного, а 5223 - для шифрованного SSL-соединения. Сейчас порт 5222 может применяться для любых типов соединений.
Стандартными портами для подключения Jabber-клиента к серверу являются 5222 и 5223. Порт 5222 применяется для соединения с использованием STARTTLS, а также незащищенного соединения (у тех серверов, которые позволяют это), а 5223 для [[Шифрование в Jabber|шифрования]] с помощью SSL или TLS.


== Нестандартные порты ==
== Нестандартные порты ==


Некоторые серверы позволяют подключаться и к другим портам, изначально не предназначавшихся для джаббера, например, FTP (21) или HTTPS (443). Это может быть полезно в случае недоступности стандартных портов. Для использования этой возможности откройте менеджер учетных записей в Вашем [[Клиенты Jabber|Jabber-клиенте]] и перейдите на вкладку настроек сетевых подключений. Отметьте опцию принудительного указания сервера и порта и впишите необходимые значения, после чего переподключите учетную запись.
Некоторые серверы позволяют подключение и к другим портам, изначально не предназначавшихся для Jabber, например, FTP (21), HTTP (80), HTTP proxy (8080 или 3128) или HTTPS (443). Это может быть полезно в случае недоступности стандартных портов. Для использования этой возможности откройте менеджер учетных записей в своём [[Клиенты Jabber|Jabber-клиенте]] и перейдите на вкладку [[Настройки сети в Jabber-клиентах|настроек сетевых подключений]]. Отметьте опцию принудительного указания сервера и порта и впишите необходимые значения, после чего переподключите учетную запись.


[[Нестандартные порты в Jabber|Таблица нестандартных портов в джаббер]]
* [[Нестандартные порты в Jabber|Таблица нестандартных портов в джаббер]]


== Подключение через HTTP-прокси ==
== Подключение через HTTP-прокси ==


Работа через прокси типична для офисных сетей. Как правило, используется прокси типа HTTP/HTTPS, уточнить можно у системного администратора конретной сети.
Работа через прокси типична для офисных сетей. Как правило, используется прокси типа HTTP/HTTPS, уточнить можно у системного администратора конкретной сети.


При настройке клиента Jabber нужно указать:
При настройке клиента Jabber нужно указать:
* тип прокси (обычно HTTP/HTTPS);
* тип прокси (обычно HTTP/HTTPS);
* адрес сервера прокси (можно посмотреть в своём браузере, например, в Internet Explorer в "свойствах обозревателя" на вкладке "соединение" под кнопкой "Cеть");
* адрес сервера прокси (можно посмотреть в своём браузере, например, в Internet Explorer в «свойствах обозревателя» на вкладке «соединение» под кнопкой «Cеть»);
* порт сервера прокси (обычно 3128, но может быть и другой, также можно посмотреть в своём браузере);
* порт сервера прокси (обычно 3128, но может быть и другой, также можно посмотреть в своём браузере);
* если прокси требует ввода логина и пароля, их нужно указать в соответствующих полях.
* если прокси требует ввода логина и пароля, их нужно указать в соответствующих полях.


После настройки нужно попробовать соединиться. Если соединение не проходит, наверняка в настройке сервера прокси запрещено соединение с портами 5222 или 5223 и нужно использовать "обходной маневр": соединяться с сервером по порту, характерному для обычного веб, то есть по порту 443. Но не все серверы jabber принимают соединение на этом порту, [[Нестандартные порты в Jabber|список]] таких серверов указан параграфом выше. Если Вы использует другой сервер и он не настроен на работу через 443 порт, Вам придётся регистрироваться на сервере, который имеет такую возможность, например, jabber.ru.
После настройки нужно попробовать соединиться. Если соединение не проходит, наверняка в настройке сервера прокси запрещено соединение с портами 5222 или 5223 и нужно использовать «обходной маневр»: соединяться с сервером по порту, характерному для обычного веб, к примеру, 443. Но не все серверы jabber принимают соединение на этом порту, [[Нестандартные порты в Jabber|список]] таких серверов указан параграфом выше. Если вы использует другой сервер и он не настроен на работу через 443 порт, вам придётся регистрироваться на сервере, который имеет такую возможность, например, jabber.ru.


== Подключение через SOCKS-прокси ==
== Подключение через SOCKS-прокси ==


SOCKS — сетевой протокол, который позволяет клиент-серверным приложениям прозрачно использовать сервисы за межсетевыми экранами (фаерволлами). SOCKS — это сокращение от «SOCKetS» (сокеты, гнёзда). Клиенты за межсетевым экраном, нуждающиеся в доступе к внешним серверам, вместо этого могут соединяться с SOCKS прокси сервером. Такой прокси сервер контролирует права клиента для доступа к внешним ресурсам и передаёт запрос к серверу.
'''[[ru_wikipedia:SOCKS|SOCKS]]''' — сетевой протокол, который позволяет приложениям прозрачно подключаться к серверам за межсетевыми экранами. Приложение подключается к SOCKS-прокси, а тот передает запросы серверу.


Многие Jabber-клиенты позволяют подключаться к Jabber-серверам, используя SOCKS-прокси. Настройка делается аналогично настройке при подключении через HTTP-прокси - Вы указываете адрес SOCKS прокси-сервера, порт для подключения, при необходимости - имя пользователя и пароль. Эти параметры Вы можете узнать у администратора Вашей сети.
Многие Jabber-клиенты позволяют подключаться к Jabber-серверам, используя SOCKS-прокси. Настройка производится аналогично настройке при подключении через HTTP-прокси — укажите адрес SOCKS прокси-сервера, порт для подключения, при необходимости имя пользователя и пароль. Эти параметры нужно узнать у администратора вашей сети или из настроек веб-браузера, аналогично случаю с HTTP-прокси.


== Заключение ==
== Заключение ==


После прочтения предыдущих разделов, думаю, становится понятно, что запретить использовать джаббер, пока у Вас доступен хоть какой-то порт в интернет невозможно. Допустим, если у Вас на работе перекрыто подключение по стандартным портам (5222 и 5223), либо закрыт доступ на любые другие сервера, кроме корпоративного - можно использовать подключение по нестандартным портам, использовать корпоративный либо анонимный HTTP-прокси. Также можно воспользоваться SOCKS-подключением через корпоративный прокси, либо использовать прокси, предварительно настроенный у себя дома (если у Вас, конечно, домашний компьютер имеет внешний IP-адрес).
После прочтения предыдущих разделов, думаю, становится понятно, что запретить использовать джаббер пока вам доступен хоть какой-то порт в интернет невозможно. Допустим, если у вас на работе перекрыто подключение по стандартным портам (5222 и 5223), либо закрыт доступ на любые другие сервера, кроме корпоративного можно использовать подключение по нестандартным портам, использовать корпоративный либо анонимный HTTP-прокси. Также можно воспользоваться SOCKS-подключением через корпоративный прокси, либо использовать прокси, предварительно настроенный у себя дома (если у вас, конечно, домашний компьютер имеет внешний IP-адрес).


Приведу реальный пример такого "экстремального" подключения (на примере Linux-систем, Windows-пользователи могут поискать соответствующие инструменты самостоятельно). Допустим, на Вашем компьютере нет возможности подключиться к публичному Jabber-серверу, но есть возможность подключиться по SSH к некоему шлюзу, имеющему выход на другой компьютер, на котором есть доступ к необходимому Вам серверу. Тогда можно воспользоваться замечательным свойством SSH для пробрасывания необходимых портов и использования SSH в качестве SOCKS-прокси. Выполните команду
{{Hider hiding|
|title=Для самых продвинутых
|content=


'''user1@host1~$ ssh -L 12345:localhost:12345 user2@host2 "ssh -D 12345 user3@host3"'''
Приведу реальный пример такого «экстремального» подключения на примере Unix-like систем (пользователи Windows могут воспользоваться аналогичной возможностью в putty). Допустим, на вашем компьютере нет возможности подключиться к публичному Jabber-серверу, но есть возможность подключиться по SSH к некоему шлюзу, имеющему выход на другой компьютер, на котором есть доступ к необходимому вам серверу. Тогда можно воспользоваться замечательным свойством SSH для пробрасывания необходимых портов и использования SSH в качестве SOCKS-прокси. Выполните команду


Через несколько секунд на Вашем компьютере на порту 12345 будет доступен SOCKS-сервер, который можно прописать в настройках Jabber-клиента. Учтите, Вам необходима авторизация по ключам со шлюза '''host2''' на компьютер '''host3'''.
user1@host1~$ ssh -tL 12345:localhost:12345 user2@host2 "ssh -D 12345 user3@host3"


Как это работает? Когда Вы со своего компьютера '''host1''' подключаетесь на шлюз '''host2''', порт 12345 шлюза становится доступен локально на Вашем компьютере, т.е., Вы обращаетесь к нему так, как будто Вы находитесь на '''host2'''. В свою очередь, после Вашего логина на шлюзе выполняется команда "''ssh -D 12345 user3@host3''", которая создает SOCKS-сервер, доступный на этом же самом порту - 12345 и забирающий трафик с компьютера '''host3'''. В итоге Ваш Jabber-клиент подключается к сети так, как если бы он был запущен на '''host3'''. Таким вот простым способом можно обойти запрет на подключение необходимым Вам серверам.
Через несколько секунд на вашем компьютере на порту 12345 будет доступен SOCKS-сервер, который можно прописать в настройках Jabber-клиента.


== Различные сетевые настройки ==
Как это работает? Когда вы со своего компьютера '''host1''' подключаетесь на шлюз '''host2''', порт '''12345''' шлюза становится доступен локально на Вашем компьютере, т.е., вы обращаетесь к нему так, как будто находитесь на '''host2'''. В свою очередь, после вашего логина на шлюзе выполняется команда «<code>ssh -D 12345 user3@host3</code>», которая создает SOCKS-сервер, доступный на этом же самом порту — '''12345''' и забирающий трафик с компьютера '''host3'''. В итоге ваш Jabber-клиент подключается к сети так, как если бы он был запущен на '''host3'''. Таким вот простым способом можно обойти запрет на подключение к необходимым вам серверам.
}}


; '''Шифровать соединение''' : Использовать один из доступных типов шифрования - SSL или TLS
== Ссылки ==


; '''Игнорировать предупреждения SSL''' : Не выводить предупреждающие сообщения в случае некорректного SSL-сертификата. Требуется для нормальной работы с некоторыми серверами Jabber при использовании шифрования.
* [[Настройки сети в Jabber-клиентах|Настройки сетевых подключений в Jabber-клиентах]]
* [[Проблемы при подключении к Jabber|Если подключиться не удается...]]


; '''Сжимать трафик''' : Сжимать передаваемый трафик.
[[Category:Сеть]][[Category:Тонкости работы]]
 
; '''Отправлять keep-alive пакеты''' : Периодически посылать на сервер пакеты, служащие для поддержания соединения. Бывает необходимо на некоторых провайдерах или при работе из локальной сети организации. Также необходимо для Livejournal.
 
; '''Авторизация открытым текстом''' : Передавать пароль в открытом виде, на случай, если сервер не поддерживает авторизацию с закодированным паролем.
 
; '''Вручную указать адрес сервера и порт''' : Используется в тех случаях, когда сервер в JID и реальный сервер не совпадают либо для указания нестандартных портов.
 
; '''Указать прокси-сервер''' : Используется для указания прокси-сервера для данного соединения.
 
[[Category:Подключение]][[Category:Сеть]][[Category:Тонкости работы]]

Текущая версия на 12:25, 9 сентября 2022

Порты[править]

Стандартными портами для подключения Jabber-клиента к серверу являются 5222 и 5223. Порт 5222 применяется для соединения с использованием STARTTLS, а также незащищенного соединения (у тех серверов, которые позволяют это), а 5223 — для шифрования с помощью SSL или TLS.

Нестандартные порты[править]

Некоторые серверы позволяют подключение и к другим портам, изначально не предназначавшихся для Jabber, например, FTP (21), HTTP (80), HTTP proxy (8080 или 3128) или HTTPS (443). Это может быть полезно в случае недоступности стандартных портов. Для использования этой возможности откройте менеджер учетных записей в своём Jabber-клиенте и перейдите на вкладку настроек сетевых подключений. Отметьте опцию принудительного указания сервера и порта и впишите необходимые значения, после чего переподключите учетную запись.

Подключение через HTTP-прокси[править]

Работа через прокси типична для офисных сетей. Как правило, используется прокси типа HTTP/HTTPS, уточнить можно у системного администратора конкретной сети.

При настройке клиента Jabber нужно указать:

  • тип прокси (обычно HTTP/HTTPS);
  • адрес сервера прокси (можно посмотреть в своём браузере, например, в Internet Explorer в «свойствах обозревателя» на вкладке «соединение» под кнопкой «Cеть»);
  • порт сервера прокси (обычно 3128, но может быть и другой, также можно посмотреть в своём браузере);
  • если прокси требует ввода логина и пароля, их нужно указать в соответствующих полях.

После настройки нужно попробовать соединиться. Если соединение не проходит, наверняка в настройке сервера прокси запрещено соединение с портами 5222 или 5223 и нужно использовать «обходной маневр»: соединяться с сервером по порту, характерному для обычного веб, к примеру, 443. Но не все серверы jabber принимают соединение на этом порту, список таких серверов указан параграфом выше. Если вы использует другой сервер и он не настроен на работу через 443 порт, вам придётся регистрироваться на сервере, который имеет такую возможность, например, jabber.ru.

Подключение через SOCKS-прокси[править]

SOCKS — сетевой протокол, который позволяет приложениям прозрачно подключаться к серверам за межсетевыми экранами. Приложение подключается к SOCKS-прокси, а тот передает запросы серверу.

Многие Jabber-клиенты позволяют подключаться к Jabber-серверам, используя SOCKS-прокси. Настройка производится аналогично настройке при подключении через HTTP-прокси — укажите адрес SOCKS прокси-сервера, порт для подключения, при необходимости — имя пользователя и пароль. Эти параметры нужно узнать у администратора вашей сети или из настроек веб-браузера, аналогично случаю с HTTP-прокси.

Заключение[править]

После прочтения предыдущих разделов, думаю, становится понятно, что запретить использовать джаббер пока вам доступен хоть какой-то порт в интернет невозможно. Допустим, если у вас на работе перекрыто подключение по стандартным портам (5222 и 5223), либо закрыт доступ на любые другие сервера, кроме корпоративного — можно использовать подключение по нестандартным портам, использовать корпоративный либо анонимный HTTP-прокси. Также можно воспользоваться SOCKS-подключением через корпоративный прокси, либо использовать прокси, предварительно настроенный у себя дома (если у вас, конечно, домашний компьютер имеет внешний IP-адрес).

Для самых продвинутых

Приведу реальный пример такого «экстремального» подключения на примере Unix-like систем (пользователи Windows могут воспользоваться аналогичной возможностью в putty). Допустим, на вашем компьютере нет возможности подключиться к публичному Jabber-серверу, но есть возможность подключиться по SSH к некоему шлюзу, имеющему выход на другой компьютер, на котором есть доступ к необходимому вам серверу. Тогда можно воспользоваться замечательным свойством SSH для пробрасывания необходимых портов и использования SSH в качестве SOCKS-прокси. Выполните команду

user1@host1~$ ssh -tL 12345:localhost:12345 user2@host2 "ssh -D 12345 user3@host3"

Через несколько секунд на вашем компьютере на порту 12345 будет доступен SOCKS-сервер, который можно прописать в настройках Jabber-клиента.

Как это работает? Когда вы со своего компьютера host1 подключаетесь на шлюз host2, порт 12345 шлюза становится доступен локально на Вашем компьютере, т.е., вы обращаетесь к нему так, как будто находитесь на host2. В свою очередь, после вашего логина на шлюзе выполняется команда «ssh -D 12345 user3@host3», которая создает SOCKS-сервер, доступный на этом же самом порту — 12345 и забирающий трафик с компьютера host3. В итоге ваш Jabber-клиент подключается к сети так, как если бы он был запущен на host3. Таким вот простым способом можно обойти запрет на подключение к необходимым вам серверам.

Ссылки[править]