Что такое SOCKS сервер и зачем нужен. Что такое сокс5 прокси

Анонимность в сети — тема не новая. И вы наверняка устанавливали к себе на комп прогу типа A4Proxy, SocksChain
и им подобные. Лично я не люблю, когда для работы с проксями нужна какая-то отдельная прога. Во-первых
некрасиво, когда много окон на панели задач или значков в трее, во-вторых проги эти требуют кряков, а их
искать лень 🙂 Поэтому я и написал классы для поддержки SOCKS5-серверов, которые я теперь могу заюзать
в какой-нибудь своей проге. И вот теперь хочу всем рассказать, как это делать.

То, к каким серверам и по каким протоколам мы может обращаться через прокси, зависит от
типа этого прокси, т. е. протокола, по которому мы обращаемся к нему. Типов проксей существует нескольно:
HTTP-proxies, SOCKS4, SOCKS5, SSL CONNECT и т.д. HTTP-proxy наиболее распространены, их легче всего найти и инете, но работают они только с HTTP, к тому
же могут вставлять в заголовки запроса адрес клиента, то есть быть
не анонимными. Протокол SOCKS наиболее примечателен тем, что он инкапсулирует протоколы не прикладного, а
транспортного уровня, т.е. TCP/IP и UDP/IP. Поскольку только по этим протоколам возможна работа в Сети,
через SOCKS можно работать с любыми серверами, в том числе и такими же SOCKS и,
таким образом, организовывать цепочки SOCKS-серверов. По этой же причине ВСЕ SOCKS-сервера анонимны — невозможно
на уровне TCP/IP и UDP/IP передать дополнительную информацию, не нарушив работу вышестоящего
протокола.

Мы остановимся на протоколе SOCKS5. Его описание лежит в
. Для SOCKS5 стандартным является порт 1080, но, впрочем, на этот
стандарт никто особого внимания не обращает. Каждое SOCKS-соединение проходит стадию аутентификации, если она требуется, затем клиент
посылает команду. Команда может быть одна из трех:
CONNECT — исходящее TCP-соединение с указанным адресом. Использование этой команды мы рассмотрим
подробнее, так как она нужна наиболее часто. BIND — открыть порт (сервер выбирает порт и посылает клиенту адрес и порт) и принять TCP соединение.
Серверу может понадобится знать, кто будет соннектиться. На этот случай нужно передать эту инфу. UDP ASSOCIATE — открыть UDP-порт (сервер выбирает порт). Данные, предназначенные для конечного
хоста и данные от него идут тоже по UDP. Данные в SOCKS5 передаются в бинарном виде, а не в текстовом, как в HTTP, SMTP, POP3 и др.

Описание протокола

Сконнектившись с сервером, клиент шлет пакет, в котором указана версия протокола и поддерживаемые
методы аутентификации. Этот пакет имеет следующий формат:

BYTE Version;
BYTE nMethods;
BYTE methods

Версия должна быть 5. Каждый элемент methods определяет не только метод аутентификации, но и способ шифрования данных,
если оно используется. Из этих методов сервер выбирает один. Можно указывать любое количество методов, но, если сервер не требует аутентификации, то никакие методы,
кроме 0x00 (не использовать ни аутентификацию, ни шифрование) не потребуются. В ответ сервер шлет пакет следующего содержания:

BYTE Version
BYTE method,

где method — выбранный сервером метод или 0xFF (ни один из предложенных методов не поддерживается). Если метод 0x00, то можно сразу посылать команду.

Пакет команды имеет следующий формат:

BYTE Version; // 5
BYTE Cmd ; // 1 — CONNECT
BYTE Reserved; // 0

BYTE addr;
WORD port; // Байты в сетевом порядке, т. е. htons(Port);

Если используется доменное имя, то сначала идет байт длины, а затем строка без завершающего нуля.

Сервер посылает ответ:

BYTE Version; // 5
BYTE Rep ; // 0 — Ok
BYTE Reserved; // 0
BYTE AType; // 1 — IPv4; 3 — domain name; 4 — IPv6
BYTE addr;
WORD port;

Здесь адрес и порт — это адрес и порт, видимые хосту. Возвращается, как правило, IP-адрес, а не доменное
имя. Этот адрес может отличаться от того, по которому мы обращаемся к серверу, особенно, если сервер
используется по назначению, т. е. для выхода из локалки в инет. Если Rep не ноль, т. е. ошибка, то закрываем соединение, в
противном случае работаем с хостом. Мы не используем шифрование, поэтому просто передаем и принимаем данные, как при обычном соединении. Если одна из сторон закроет соединение с socks-сервером, то он сразу же закроет соединение с другой
стороной. Одно socks-соединение инкапсулирует одно TCP-соединение или попытку его установления,
так что если использовать socks для анонимного сканирования портов, то эта
процедура может занять пол дня.

Кодинг

Поскольку socks инкапсулирует TCP, целесообразно сделать класс socks-соединения производным от
класса сокета, но MFCшный CSocket не подходит, т.к. у него все методы
не виртуальные. Напишем свой класс сокета и назовем его, скажем, CTSocket

#include

class CTSocket
{
public:





virtual void Close();
virtual unsigned long GetHost(); // Узнать свой адрес. Это тоже может понадобиться.

private:
SOCKET sock;
};

Реализацию этого класса каждый сможет написать сам (кто не знает как, RTFM MSDN), так что не буду ее
рассматривать. Теперь напишем класс socks-соединения. Он будет поддерживать только самый необходимый набор
функций: поддерживается только команда CONNECT, не поддерживается аутентификация и SOCKS-сервер
задается только IP-адресом, а не доменным именем. Больше в одной статье не поместится.

Class CSocksSocket: public CTSocket
{
public:
virtual BOOL CreateSocket();
virtual BOOL Connect(unsigned long ip, unsigned short port);
virtual BOOL Connect(LPCSTR name, unsigned short port);
virtual int Send(const char* str, int len);
virtual int Recv(char* buf, int max);
virtual BOOL Close();
virtual unsigned long GetHost();

CTSocket* pSocket;
unsigned long socks_ip;
unsigned short socks_port;

private:
char buffer; // Такого размера точно хватит
unsigned long l_ip; // Адрес, возвращаемый функцией
GetHost()

};

// Реализация
BOOL CSocksSocket::CreateSocket()
{
if (!pSocket->CreateSocket()) return FALSE;
if (!pSocket->Connect(socks_ip, socks_port)) return FALSE;
buffer = 5; // Ver
buffer = 1; // 1 method
buffer = 0; // no auth
pSocket->Send(buffer, 3);
int n = pSocket->Recv(buffer, 2);
if (n != 2) return FALSE;
method 0 not supported
return TRUE;
}

BOOL CSocksSocket::Connect(unsigned long ip, unsigned short port)
{
buffer = 5; // Ver
buffer = 1; // CONNECT
buffer = 0; // Reserved
buffer = 1; // IPv4
*((unsigned long*)(buffer + 4)) = ip;
*((unsigned short*)(buffer + 8)) = port;
pSocket->Send(buffer, 10);
int n = pSocket->Recv(buffer, 10);
if (n != 10) return FALSE;
if (buffer != 0) return FALSE; //
Can’t connect

return TRUE;
}

BOOL CSocksSocket::Connect(LPCSTR name, unsigned short port)
{
buffer = 5;
buffer = 1;
buffer = 0;
buffer = 3; // Domain name
int m = strlen(name);
buffer = m; //
Length byte
memcpy(buffer+5, name, m); //
Копируем строку без завершающего нуля
*((unsigned short*)(buffer + 5 + m)) = port;
pSocket->Send(buffer, m + 7);
int n = pSocket->Recv(buffer, 10);
if (n != 10) return FALSE;
if (buffer != 0) return FALSE;
if (buffer != 1) return FALSE; //
Будем требовать, чтобы нам сказали IP, а не что-нибудь другое.
l_ip = *((unsigned long*)(buffer + 4));
return TRUE;
}

int CSocksSocket::Send(const char* str, int len)
{
return pSocket->Send(str, len);
}

int CSocksSocket::Recv(char* buf, int max)
{
return pScoket->Recv(buf, max);
}

void CSocksSocket::Close()
{
pSocket->Close();
}

unsigned long CSocksSocket::GetHost()
{
return l_ip;
}

// Ну, а теперь тестовая прога
void main()
{
WSADATA wsadata;
CTSocket tsock;
CSocksSocket ssock(&tsock);

WSAStartup(MAKEWORD(2,2), &wsadata);

ssock.socks_ip = inet_addr(«10.10.10.10»); // Впишите сюда нужный адрес
ssock.socks_port = 1080; //
Впишите сюда порт

if (!ssock.CreateSocket()) return; // Can’t connect to socks
// or auth required
if (!ssock.Connect(«www.mail.ru», htons(80))) return; //
www.mail.ru
// is inaccessible
LPSTR q = «HEAD / HTTP/1.1\xD\xAHost: www.mail.ru:80\xD\xAUser-Agent: xakep\xD\xA\xD\xA»;
ssock.Send(q, strlen(q));

char buf;
int n = ssock.Recv(buf, 1000);
buf[n] = 0;
printf("%s", buf);

Сокс – вид спорта хотя и не столь экстремальный, но достаточно новый и бесспорно интересный. Сама игра, о происхождении которой существует множество предположений, по одной из теорий возникла в начале 70-х, когда на далеком американском континенте господин Джон Сталбергер прямо на улице упражнялся с небольшим мячиком набитым чем-то сыпучим, в нем он искал спасительной терапии для своей ранее поврежденной нижней конечности, нуждавшейся в постоянной разминке. Парень по имени Майк Маршалл ненавязчиво составил ему компанию.

С этого момента парочка, в самом благовоспитанном смысле этого слова, положила начало движению «носка» в массы. Первое название забавы, которым наделили игру сами создатели «Hack the Sack». Сейчас основные носочно-чулочные направления – это Footbag Net, Volley Sock и Foоtbag Freestyle. Footbag Net – игра для всех и каждого и дорожка для начинающих, ведущая «от пинеток» к большому профессиональному «носку».

Главное правило, которое стоит запомнить – не касаться мячика руками и даже поднимать его нужно только при помощи ног. Лучше, если количество игроков составит не меньше трех. Все игроки для игры образуют небольшой круг, передавая мяч друг другу. Начинающий игру делает первый пас рукой. Из дополнительных правил – запрет на неловкие извинения перед партнерами, плевки в круг, пасы самому себе. В этом формате существует также и игра в «лесенку» — пас делается после нескольких «чеканок», так сказать, показательного выступления.


Volley Sock – роль первопроходца в этой игре приписывают России. В этой игре мяч перебрасывается между двумя командами, разделенными сеткой высотою в 1,4 метра. Размер поля обычно составляет 12X8 метров. В самой команде, как правило, от 3 до 5 игроков. Самым зрелищным является направление Freestyle. Представляет оно из себя синтез спорта и искусства. Основное отличие – высокое мастерство исполнителей, присутствие большого количества, иногда практически каскадерских, трюков. В свободном стиле довольно часто проводятся соревнования. Несмотря на кажущуюся простоту и неприглядность, в руках, а точнее в ногах мастера мячик способен творить невероятные пируэты, а сам носочник проявлять чудеса растяжки, акробатики и быстроты реакции. Кажущееся спокойствие игры, скрывает большое количество затрачиваемой спортсменами энергии, спорт это вполне активный и способный помочь сбросить лишние калории, дурные мысли и кислое настроение.

Приверженцы сокса – товарищи миролюбивые, к их кругу не составит труда приобщиться. Манежная или Пушкинская площадь – популярное местоположение. Мячик в соксе непросто спортивный снаряд, но и предмет эксклюзивный. Он давно перестал быть тем, чем, собственно говоря, назван, то есть носком. Сегодня мячик для сокса можно приобрести даже в магазине, но значительно престижней смастерить самому из того, что было, не стесняйтесь заимствовать бабушкины спицы. Яркость, как известно, только приветствуется. Наполнить носочек можно любой крупой или специальными шариками. Что касается экипировки, то все здесь подчинено принципу удобства.

Лучше всего подойдут мягкие кеды или мокасины. Зажиточные западные буржуа уже создают специальные коллекции обуви для сокс, но можно обойтись и без такового профи-снаряжения. В общем, сокс – игра уличная, максимально демократичная и незатейливая, абсолютно не затратная и доступная всем. Принять идеологию, правила игры и присоединиться может помешать разве что отсутствие желания как такового. Так что, вписывайтесь в круг и делайте сокс, если вы к этому готовы.

Особенно популярно в русскоязычных странах. Как научится играть в сокс? Он не имеет особых правил. Игроки просто перебрасывают ногами друг другу тряпичный мяч (это сокс), стараясь не уронить его на землю.

История возникновения футбэга

Футбэг был изобретен в городе Орегон (США) в 1972 г. Сокс - это один из многих видов этой игры. Джон Сталбергер искал способ разработать колено после операции. Во время прогулки он встретил Майка Маршалла, который пинал небольшой самодельный мешок, набитый бобами. Майк предложил новому знакомому поучаствовать в его занятии. Новая игра очень понравилась Джону. Он придумал для нее название «Hack the Sack» ("пинай мешок"). В ней могли участвовать несколько игроков, которые становились в круг и передавали мячик друг другу. Друзья всячески популяризировали игру, стремясь сделать ее по-настоящему массовой. Ведь она не требовала больших финансовых затрат. Для нее нужен был только мяч, который изготавливался из любых подручных материалов. Вскоре Майк и Джон создали собственную компанию по производству мячиков для футбэга. Через 3 года Майк неожиданно скончался от сердечного приступа. Ему было всего 28 лет. Джон решил продолжить развивать игру, несмотря на смерть друга. В настоящее время это увлечение превратилось в отдельный вид спорта, который популярен далеко за пределами Америки.

Новый вид спорта

В конце 80-х у европейцев еще возникал вопрос, что такое socks. Во многих станах только в конце 90-х годов начали проводить национальные чемпионаты по футбэгу. Появление интернета способствовало распространению информации о новом виде спорта. Первые соревнования по футбэгу в России состоялись в 1998 году. В настоящее время ассоциация футбэга организовывает международные соревнования. По новым правилам сокс можно было отбивать не только ногой, но и другими частями тела. При этом не приветствуется отбивание мяча рукой.

Основные направления

Игра получила несколько направлений. В самом популярном из них сокс перебрасывается через полутораметровую сетку. Игрокам запрещается касаться мяча коленом и руками. Побеждает команда, первой набравшая 15 очков. Эта дисциплина получила название нет-гейм. В России больше распространен ее командный вид - Volley Sock. В нет-гейм можно играть один на один, парами и в "миксе". Для него используют упругие кожаные мячики. Игра требует хорошей физической подготовки. При регулярных тренировках у спортсменов отлично развиваются мышцы ног. Самым красивым и сложным видом футбега считается фристайл. В нем игроки демонстрируют различные трюки с мячом под музыку. Существует более 200 видов трюков с футбэгом. Но спортсмены продолжают изобретать новые элементы. Главная дисциплина фристайла - Рутина. Участники представляют по две программы: короткую и произвольную. На выступление спортсмену отводится не более двух минут. Победителя определяет специальное жюри. Этот вид спорта можно сравнить с фигурным катанием и акробатикой. Фристайлом увлекаются как парни, так и девушки.

Мяч и экипировка

Мяч для игры делают из нескольких кусков материала. Их количество может достигать 120. Многие футбэгеры считают, что оптимальное количество панелей для мяча - 32 кусочка. Что такое сокс? Мяч для игры также называют соксом или футбэгом. Мячи, продающиеся в магазинах, не отличаются высоким качеством. Профессиональные мячи изготавливаются только на заказ. Мячи для фристайла не должны быть слишком упругими. Их начиняют пластиковым наполнителем только на две трети. Новые футбэги нуждаются в разбивке. Раскрашивание мяча для сокса стало отдельным видом искусства. На него наносят различные узоры и изображения. Многие игроки шьют соксы самостоятельно. Для этого используются хлопковые нити, шерсть или замша. Изнутри сокс набивают пластиковыми цилиндрами и другими сыпучими материалами. уделяют большое внимание своей обуви. Существует несколько вариантов шнуровки ботинок для футбэга. Недавно была создана новая модель кроссовок для фристайла - Quantum Shoe.

Самое популярное направление футбэга в России - это сокс. Он появился в нашей стране в начале 90-х годов прошлого века. Свое название он получил от имени компании "Hacky Sack", которая производила мячи для игры. При этом игроки предпочитали изготавливать мячики самостоятельно. Часто их делали из старых носков. Самыми популярными стали вязаные соксы, наполненные различными наполнителями. Мячики начиняли рисом, фасолью, песком и другими материалами.

Существует очень много различных предположений о происхождении сокса, но хотелось бы высказать одно, которое наиболее реально. Изобретена игра была в Америке в 1972-м году, когда Джон Сталбергер встретил Майка Маршалла, который пинал самодельный мешочек, набитый бобами. Встреча эта произошла в Орегоне. Джон не так давно перенес операцию на колене, и искал способ его разработать. Они немедленно взялись за игру. Впоследствии это их сблизило, и они с Маршаллом стали хорошими друзьями. Также два друга придумали название — «Hack the Sack». Сталбергер и Маршалл вскоре были полностью увлечены игрой. Маршалл надеялся продвинуть сокс в «массы». Они всячески популяризировали новый вид спорта, пока Майк Маршалл не перенес сердечный приступ во сне в 1975-м году. Он умер в возрасте 28 лет.

Сталбергер, шокированный смертью своего друга, не остановился и продолжил развивать уже полюбившиеся занятие. В дальнейшем Сталбергер придумал отбивать сокс не только одной ногой, а ещё и коленями и различными частями тела.

Сейчас сокс развивается в нескольких направлениях. Одно из них — Footbag Net или Volley Sock, когда мяч падает через сетку. А самое сложное и красивое направление — Fottbag Freestyle. Последнее настолько своеобразно, и порой, приходя на соревнования по «свободному стилю», вы видите такие движения и варианты отбивания сокса, что в голове встаёт вопрос: «Как ему удается так выкручиваться?».

Этот маленький мячик в последнее время стал своеобразным искусством, не только в плане движений, но и в раскраске сокса. Зайдя в магазин, можно увидеть мячики с рисунками кроссовок, телефонов, иголок, людей и зданий. Вы спросите, а в чём же здесь эксклюзивность? А она и не здесь. Экстравагантные соксы шьют сами игроки. Одним из таких мне приходилось играть самому, он был с надписью «666», а второй, который просто попался на глаза, был в виде автомобильного колеса.

Со временем были придуманы правила для этой, на первый взгляд, простой игры. В игру Footbag Net играют практически все. Здесь, если так можно сказать, правила не писаны. Правда, не сильно приветствуется, когда отбивают сокс рукой, а так — ограничений не существует. Зато в Volley Sock вы должны перекидывать сокс через сетку и стараться не держать его долго на своей зоне, руками здесь уже трогать сокс нельзя. Также есть и опредёлённые рамки, своеобразные границы площадки, на которой проводится игра. В Volley Sock можно играть как один на один, так и парами, а недавно появился и «микс» — то есть, девушка с парнем против девушки с парнем.

Люди, которые играют в сокс, получают огромный заряд энергии. Иногда, проведя более двух часов беспрерывной игры, вы выматываетесь так, как будто пробежали десятикилометровый кросс. Но какой подросток захочет бегать? А вот сокс — это своеобразный выход из положения. Ведь сколько сейчас разговоров об избыточном весе! Девушки об этом только и «трубят». А играй они в сокс, были бы точно стройными и красивыми. Девушки-игроки, а их, как ни странно, немало, могут привлечь к себе внимание самого красивого парня.

Сокс — это не просто набитый рисом или другой кашей мешочек — это своеобразный вид спорта, который уже давно полюбился молодёжи разных стран мира. Хоть сейчас и не привлёчёшь многих подростков к занятиям спортом, хорошо, что они хоть такими своеобразными видами занимаются. Главное — быть здоровыми!

Статьи по теме: