Как работает Socks5
Как работает Socks5
Socks-сервер устанавливается на шлюзовых компьютерах, то есть на границе локальной сети и Internet. Socks обладает двумя ключевыми особенностями, выделяющими его из группы прокси-серверов. 1. Он не зависит от высокоуровневых протоколов (HTTP, FTP, POP3, SMTP, NNTP и т. д.), так как осуществляет представительство клиентов на более низком уровне (TCP и UDP). 2. Приложение в локальной сети может попросить Socks-сервер выступить в роли сервера от лица клиента. То есть приложение в локальной сети сможет принимать соединения извне, несмотря на отсутствие реального IP-адреса. Вообще говоря, многие из описанных проблем решаются просто путем отображения портов с помощью Mapping-proxy (тема для отдельного разговора), но Socks - более рациональное средство, не требующее в отличие от MAP знания тонкостей конкретных протоколов и приложений. Через Socks5 можно заставить работать даже приложения, которые и понятия не имеют о прокси! Многие современные программы сами умеют работать через Socks. Примеры - Mirabilis ICQ, MS Internet Explorer, Netscape Navigator - хотя все с некоторыми оговорками, о которых позже. В протоколе Socks5 есть запросы (от Socks-клиента Socks-серверу) со следующим смыслом:
* Установи TCP-соединение от моего лица с таким-то сервером и передавай между нами данные в обе стороны (установленное соединение дальше работает как простое отображение, без "вникания" Socks-сервера в суть происходящего в канале - это могут быть команды и данные любых высокоуровневых протоколов).
* Работай сервером от моего лица на таком-то TCP-порте, принимай входящие соединения и передавай мне для обработки (после приема соединения Socks-сервер опять-таки тупо передает данные между двумя сторонами, не вникая в содержание).
* Установи UDP-отображение заданного порта (UDP не ориентирован на соединения, поэтому ярко выраженных клиентов и серверов нет, обе стороны можно считать и тем и другим).
Фактически Socks-сервер является программно-управляемым mapping-proxy, причем с описанным единым интерфейсом. Все mapping-proxy так или иначе программно управляются, но под руководством администратора сети (человека), и отображения статичны. А Socks-сервер управляется прикладными программами, и отображения устанавливаются, только когда они нужны, и на то время, пока они нужны. Запросы Socks хорошо согласуются с запросами, посылаемыми программами к интерфейсу winsock, именно поэтому существует возможность "насильно" заставить любую Internet-программу пойти через Socks-сервер, даже если она сама не умеет. Socks4 и Socks5 Цифры в названии означают версию протокола. Socks5 - последняя версия, определенная в RFC1928.