Как настроить socks5 прокси для сокрытия IP адреса. Прозрачное Socks5 проксирование приложений в linux Настроить свой socks5 прокси сервер

Как настроить безопасный доступ к Internet ?

Организация безопасного доступа к сети интернет является актуальной проблемой не только для крупных компаний и корпораций, но и для рядовых пользователей. Всеми привычный доступ к сети через проводного интернет-провайдера или оператора мобильной связи не позволяет говорить о какой-либо защищенности Ваших данных от злоумышленников, которые в последние годы активно воруют конфиденциальные данные пользователей. Кроме того, провайдеры зачастую вводят региональные ограничения доступа пользователей к определенным веб-ресурсам и сервисам, блокируя доступ по IP -адресам.

Обойти блокировки и добиться достаточно высокого уровня защищенности и анонимности можно при помощи связки RDP + socks прокси. Такую связку для выхода в сеть достаточно просто организовать, и мы подробно опишем в данном руководстве как это сделать.

Что такое RDP (Remote Desktop Protocol) ?
Особенности и преимущества RDP

RDP – аббревиатура от английского словосочетания « Remote Desktop Protocol», то есть «протокол удаленного рабочего стола». Данный протокол был изначально создан компанией Microsoft для обеспечения возможности удаленного доступа пользователей к серверам и компьютерам, работающим под управлением операционной системы Windows. По сути, RDP позволяет пользователю удаленно управлять компьютером с ОС Windows, подключенным к локальной сети или к сети интернет, с другого компьютера, на котором установлена программа-клиент RDP.

Благодаря RDP пользователь может выходить в интернет не напрямую со своего компьютера, а через удаленный компьютер в сети, что позволяет полностью скрыть факт использования туннелирования, то есть для конечного веб-узла, с которым Вы работаете, Вы будете выглядеть так, словно Вы работаете напрямую со своего компьютера без использования туннелирования. Таким образом, Вы используете защищенный канал связи, который в совокупности с использованием прокси-сервера socks позволяет добиться максимальной безопасности и анонимности.

Получение бесплатного RDP
Инструкция - как получить бесплатный RDP

В сети интернет можно найти массу бесплатных или бюджетных сервисов, предоставляющих доступ к выделенным серверам с ОС Windows, на которых можно настроить связку RDP+ socks-прокси для организации анонимного и защищенного доступа к веб-ресурсам. Приведем несколько ссылок на подобные сервисы.

· VPS.ua

· Rusonyx

· Inferno Solutions

· 1Gb.ru

· Siteko.net

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

После регистрации Вы получите доступ к серверу с ОС Windows. Проще всего арендовать сервер именно с этой операционной системой, поскольку серверная версия Windows мало чем отличается от обычной версии, и Вы сможете без проблем устанавливать привычные программные приложения и настраивать систему под все необходимые нужды.

Настройка и подключение к RDP (Удаленный рабочий стол)

После регистрации пользователь получает доступ к личному кабинету управления удаленным Windows-сервером. Среди прочей информации поставщик услуги указывает IP-адрес сервера для подключения к нему с удаленного устройства (ПК, смартфон, планшет и пр.). Для подключения к серверу необходимо ввести этот IP-адрес в адресную строку RDP-клиента, встроенного в ОС Windows на локальном компьютере пользователя. Для этого:

1. Откройте терминальный клиент «Подключение к удаленному рабочему столу», встроенный в Windows. Для этого перейдите в ПУСК->Все программы -> Стандартные -> Подключение к удаленному рабочему столу , либо откройте меню ПУСК -> Выполнить и введите команду mstsc и нажмите «ОК»


2. В открывшемся окне введите IP -адрес арендуемого Windows -сервера, указанный поставщиком услуги. Нажмите кнопку «Показать параметры».


3. В поле «Пользователь» введите имя пользователя для администрирования арендуемого сервера, указанное поставщиком услуги, и перейдите во вкладку «Локальные ресурсы».


4. Во вкладке «Локальные ресурсы» нажмите на кнопку «Подробнее».


5. Выберите устройства и ресурсы локального компьютера, которые Вы будете использовать во время удаленного сеанса. Рекомендуем установить галочку напротив пункта «Диски», чтобы локальный жесткий диск был доступен при работе на удаленном сервере. Нажмите кнопку «ОК» и кнопку «Подключить».


6. В открывшемся окне введите пароль доступа к удаленному серверу и нажмите кнопку «ОК»


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

Получение прокси с панели управления SOCKS Admin

На следующем этапе необходимо получить доступ к сервису SOCKS прокси на сайте . Для этого выполните несколько простых шагов:

1. Перейдите на страницу и войдите в свой аккаунт


2. Введите логин и пароль своей учетной записи для доступа к сервису. В результате откроется Панель администратора учетной записи. На данной панели отображаются кнопка поиска прокси socks 4/5 по различным параметрам (Proxy Search ), кнопка вывода списка всех доступных в настоящий момент прокси (List Proxies ) и кнопка вывода информации о Вашем аккаунте (Account Settings ).


3. Нажмите кнопку поиска прокси (Proxy Search ) и выберите любую страну, прокси-серверы которой Вы желаете использовать, после чего нажмите кнопку Go .

4. На экране отображаются результаты поиска с детальной информаций о доступных прокси-серверах: страна, штат, город, сеть, время работы, время последней проверки доступности сервера и скорость.


5. Нажмите на имя любого подходящего Вам сервера, после чего откроется окно с дополнительной информацией. Для просмотра IP -адреса прокси и порта нажмите click here to view .

6. Через несколько секунд на экране отобразится информация об IP -адресе и порте прокси-сервера. Скопируйте или запишите эти данные – они понадобятся для последующей настройки браузеров на удаленном сервере. В приведенном примере IP -адрес: 83.85.214.142, Порт:58933.

Настройка socks 5 прокси на удаленном рабочем столе (RDP) в браузере FireFox

1. Подключитесь к удаленному серверу в соответствии с указаниями, приведенными в начале данного руководства.

2. Скачайте и установите браузер Firefox на удаленном сервере.

3. После завершения установки запустите браузер Firefox , откройте панель настроек и перейдите в меню «Настройки» (« Options »).

4. Откройте вкладку «Дополнительные» (« Advanced »), вкладку «Сеть» (« Network ») и нажмите кнопку «Настроить» (« Settings »)

5. В открывшемся окне выберите следующие параметры:

· Ручная настройка сервиса прокси (Manual proxy configuration )

· SOCKS v 5. Введите IP -адрес прокси SOCKS , который мы получили на https ://5 socks . net (в нашем примере 83.85.214.142)

· Введите номер порта полученного прокси (в нашем примере 58933)

· Активируйте SOCKS 5, а так же « Remote DNS » (все DNS запросы будут выполняться на стороне сокс-сервера)

· Нажмите «ОК».

6. Настройка Firefox завершена.

7. http://www.ipleak.com


По скриншоту мы видим, что сетевой адрес Вашего компьютера соответствует голландскому ip -адресу 83.85.214.142.

Настройка socks 5 прокси на удаленном рабочем столе (RDP) в браузере Internet Explorer

1. Запустите на удаленном рабочем столе браузер Internet Explorer , перейдите в меню «Tools» и выберите пункт «Internet Options».

2. Откройте вкладку «Connections» и нажмите на кнопку «LAN Settings…». В открывшемся окне активируйте пункт «Use a proxy server for your LAN» и нажмите кнопку «Advanced».


3. В открывшемся окне в поле « Socks » IP -адрес прокси SOCKS , который мы получили на https ://5 socks . net (в нашем примере 83.85.214.142), а в поле « Port » введите номер порта полученного прокси (в нашем примере 58933)

ВНИМАНИЕ! Указывайте IP -адрес и порт только в строке SOCKS . Остальные поля необходимо оставить пустыми

3. Нажмите «ОК» во всех открытых в процессе настройки окнах.

4. Настройка Internet Explorer завершена.

4. Убедитесь, что используется именно прокси сервер. Для этого откройте на удаленном рабочем столе Internet Explorer, пройдите по ссылке http://www.ipleak.com и проверьте Ваш текущий IP-адрес.

По скриншоту мы видим, что видимый сетевой адрес Вашего компьютера соответствует голландскому ip -адресу 83.85.214.142.

Опубликовали инструкцию по обходу возможной блокировки Telegram - популярного мессенджера, разработанного командой Павла Дурова. В статье описывается способ обхода, который основывается на использовании сетевого протокола SOCKS5. Этот протокол незаметно пересылает пакеты данных от клиента к серверу через прокси-сервер.

SOCKS - сетевой протокол, который позволяет клиент-серверным приложениям прозрачно (незаметно для них) использовать сервисы за межсетевыми экранами (фаерволами). Опция уже доступна в Telegram Desktop и Mac, а мобильные клиенты получат её в ближайшем обновлении.

Совет: включите в настройках опцию автоматического обновления.

В первую очередь включите SOCKS5 до начала блокировки.

Если вы по каким-то причинам не успеете это сделать, то придётся туго, т.к. из российских Google Play и AppStore, клиенты Telegram, скорее всего, исчезнут. Здесь помогут Vpn и Tor, через которые можно будет скачать Telegram в американских магазинах. Но не обольщайтесь - впереди закон по запрету средств обхода блокировок, принятый в первом чтении в Госдуме РФ.

Совет: в настройках Android разрешите скачивание обновлений не из официального магазина, и скачайте обновление Telegram с сайта мессенджера telegram.org .

Настройка SOCKS 5

Приводим инструкцию на русском языке:

1) Зайдите в настройки настольного Telegram и нажмите «По умолчанию (сейчас:TCP)».

2) Переключите в меню «Тип соединения» на «TCP socks5-прокси»

3) Введите адрес прокси сервера (например, 192.254.68.37), соответствующий порт (1080). Лучше использовать прокси-адреса Америки, Германии, Швеции или Англии. Затем ставите галочку «Использовать IPv6» и сохраняете.

Как найти прокси-сервера?

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

Только берите сервер для SOCKS5, не перепутайте с HTTP.

Возможна настройка из этого бесплатного списка (socks - sockslist.net).

Теперь по умолчанию ваш Telegram будет соединяться через выбранный прокси-сервер.

Дополнение: Если возникнут проблемы с подключением, нужно настроить брандмауэр Windows - добавить в разрешенные приложения Telegram. Сделать это просто, но у вас должны быть права администратора.

  • Войдите в «Панель управления» и перейдите в «Брандмауэр Windows».
  • Нажмите на пункт «Разрешения взаимодействия с приложениями или компонентами...». Откроется окно с большим количеством программ, но вряд ли вы там найдете Telegram. Поэтому нужно будет его туда добавить.
  • Нажмите на «Изменить параметры», а затем на нижнюю кнопку «Разрешить другое приложение».
  • Во всплывающем окне «Добавление приложение» через Обзор добавьте Telegram.
  • Всё. Снова настраивайте соединение с прокси-сервером.

Носки бывают чрезвычайно полезны. Сейчас мы расскажем, как правильно настроить их на роутере MikroTik. Итак, поговорим о SOCKS ?

Предисловие

SOCKS (SOCKet Secure) – это сетевой протокол, с помощью которого можно обеспечивать прохождение TCP пакетов в обход блокирующих правил Firewall’а. Это реализуется за счёт proxy-сервера (также называют SOCKS-сервер), который контролирует подключение внутренних клиентов и их права на доступ к внешним ресурсам или же наоборот – внешних клиентов, к ресурсам внутри сети. SOCKS работает на сеансовом уровне, поэтому с помощью него можно проксировать FTP, HTTP, Telnet и другие верхнеуровневые протоколы. В то время как HTTP-прокси, как правило, позволяет проксировать только GET и POST запросы.

Установление соединения

Когда клиент хочет получить доступ к внешнему ресурсу, который блокирует Firewall, то соединение происходит следующим образом:

  1. Клиент подключается к proxy-серверу (обычно используется TCP порт 1080);
  2. Сервер проверяет список доступа и выясняет, есть ли у клиента права на доступ к внешним ресурсам;
  3. Если клиент имеет такие права, то proxy-сервер пересылает пакет на внешний ресурс, к которому хочет получить доступ клиент;
  4. Сервер создаёт сессию между клиентом и внешним ресурсом и между ними начинается обмен пакетами верхнеуровневых протоколов. После установления соединения можно передавать и UDP пакеты.

В настоящее время, MikroTik поддерживает SOCKS версии 4 при указании внешнего ресурса он понимает только IP-адрес. Версия SOCKS4a – может резолвить доменные имена внешних ресурсов. Более поздняя версия протокола – SOCKS5 включает расширенную поддержку аутентификации, подключение по UDP и IPv6.

На сегодняшний день, протокол SOCKS5 пока не поддерживается на устройствах MikroTik. Хотя пользователи очень просят разработчиков включить поддержку SOCKS5 в новые релизы RouterOS вот уже 8 лет. Поэтому при работе с SOCKS совместно с MikroTik, клиент также должен иметь 4 версию.

Необходимо очень тщательно настроить Firewall"ьные правила и список доступа SOCKS чтобы исключить нежелательный доступ извне. Как правило, скомпрометированные через уязвимости SOCKS устройства, используются для рассылки спама и фишинговых писем.

Перейдём к настройкам SOCKS-сервера на MikroTik:

Параметры настройки через WinBox

Параметры настройки SOCKS сервера в WinBox находятся в IP Socks :

Как только вы поставите галочку напротив Enabled сервер станет активным. Далее, необходимо настроить списки доступа, для этого нажимаем на кнопку Access :


Активные SOCKS сессии, проходящие через сервер можно отслеживать на вкладке Connections

Параметры настройки через Termial

Для того, чтобы настроить SOCKS через терминал нужно также сначала настроить параметры сервера. Настройка проводится через команду ip socks set , доступы следующие параметры:

  • enabled - включает функционал SOCKS proxy-сервера (yes - включен, no - выключен);
  • port - номер порта, на котором сервер будет слушать SOCKS запросы. По умолчанию - 1080
  • connection-idle-timeout - время, через которое будут сброшены неактивные сессии (по умолчанию – 2 минуты (2m ));
  • max-connections - максимальное число одновременных подключений (по умолчанию - 200 )

Посмотреть текущие или настроенные параметры можно командой:

  • action - действие, которое будет предпринято при соответствии критериев данного правила:
    • allow - разрешить прохождение трафика по данному правилу;
    • deny - запретить прохождение трафика по данному правилу.
  • dst-address - адрес сервера назначения;
  • dst-port - TCP порт назначения, на котором удаленный сервер слушает SOCKS
  • src-address - адрес источника пакетов (клиент);
  • src-port - TCP порт источника
Практическое применение

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


Но одному нашему сотруднику обязательно нужно иметь доступ к данному ресурсу. Поэтому сисадмин открывает активирует SOCKS сервер и настраивает список доступа.


В качестве адреса клиента указывается IP адрес компьютера сотрудника, которому нужно открыть доступ (в нашем случае 192.168.11.48 ), в качестве порта источника – любой TCP порт от 1024 до 65535..

Та же самая настройка через терминал выглядит следующим образом:

Ip socks> set enabled=yes ip socks access> add src-address=192.168.11.48 src-port=1024-65535 dst-address=212.193.249.136 dst-port=80 \ \... action=allow

Готово, теперь дело за клиентом, который должен настроить сотрудник. Покажем настройку на примере браузера Google Chrome . Открываем Settings Advanced Confidentiality and Security , крутим в самый низ до пункта System и выбираем Proxy settings . В появившемся окне выбираем LAN settings → ставим галку напротив Use a proxy server for your LAN и заходим в Advanced . В появившемся окне вбиваем параметры нашего SOCKS сервера в строку Socks (в нашем случае 192.168.11.1 и порт 1080 ) и применяем настройки:


Теперь обновляем страничку сайт и ву-а-ля, всё заработало! В окне Connections видны соединения с нашего компьютера до IP адреса сайт.



Послесловие

Данная статья носит исключительно образовательный характер и не ставит своей целью научить кого-либо обходить правила Firewall. Протокол SOCKS 4 устарел, не поддерживает аутентификацию и не может резолвить доменные адреса. В целях безопасности, мы не рекомендуем использовать этот протокол вообще и в том числе – настраивать его на MikroTik.

По умолчанию – сервер SOCKS на роутерах MikroTik отключен. Если Вы обнаружили, что он активирован, то это может быть признаком того, что Ваш роутер был скомпрометирован злоумышленниками. Об этом мы подробнее расскажем в следующих статьях.

Полезна ли Вам эта статья?

Пожалуйста, расскажите почему?

Нам жаль, что статья не была полезна для вас:(Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!

Анонимность в сети — тема не новая. И вы наверняка устанавливали к себе на комп прогу типа 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);

Сетевой протокол SOCKS5 позволяет незаметно пересылать данные от клиента серверу. Функция уже есть в Telegram для Windows и macOS. В ближайшее время она появится и в мобильных версиях мессенджера.

Рекомендуется включить SOCKS5 до вступления блокировки в силу. После неё скачать приложение из Google Play и App Store, скорее всего, станет проблематично. Придётся пользоваться VPN-сервисами для входа в магазин «из другой страны».

Чтобы увеличить шансы получить актуальную версию Telegram, включите автоматическое обновление приложения. Если вы пользуетесь Android, то в настройках операционной системы разрешите скачивание обновлений из сторонних источников и загрузите апдейт с официального сайта мессенджера.

Как настроить SOCKS5 в Telegram

  1. Откройте настройки десктопной версии мессенджера и найдите «Расширенные настройки» (Advanced Settings).
  2. Смените тип соединения (Connection type) на «TCP с нестандартным socks5-прокси» (TCP with custom socks5-proxy).
  3. Введите адрес прокси-сервера и порт. Советуем использовать американский, немецкий, шведский или английский прокси.
  4. Осталось поставить галочку «Использовать IPv6» (Try connecting through IPv6) и сохранить настройки.