Как обойти блокировку Telegram в России с помощью протокола SOCKS5. Как обойти блокировку Telegram в России с помощью протокола SOCKS5 Инструкция по использованию SOKCS прокси

SOCKS - сетевой протокол, который позволяет клиент-серверным приложениям прозрачно использовать сервисы за межсетевыми экранами (фаерволами). SOCKS - это сокращение от "SOCKet Secure". SOCKS не зависит от конкретных протоколов уровня приложений (7-го уровня модели OSI) и базируется на стандарте TCP/IP - протоколе 4-го уровня.

    Что такое SOCKS proxy server?

Хотя этот протокол разработан достаточно давно, он является относительно новым (по сравнению с proxy). SOCKS позволяет работать с любыми (версия Socks 4 - с TCP, Socks 5 - с Порты TCP и UDP) протоколами. SOCKS proxy просто передает данные от клиента к серверу, не вникая в содержимое самих данных (поэтому он может работать с Методы и структура протокола HTTP , Протокол FTP протокол передачи файлов , SMTP - простой протокол передачи почты , POP3 , NNTP, etc.).

Поскольку SOCKS передает все данные от клиента серверу, ничего не добавляя от себя, то с точки зрения web-сервера socks proxy является клиентом. Поэтому анонимность этого типа proxy-серверов всегда является действительно полной .

HTTP прокси, в отличии от SOCKS прокси, умеет кэшировать данные и может более тщательно фильтровать содержимое передаваемых данных.

Как обойти блокировку Telegram

Универсальный способ обхода блокировки Telegram, сервисов Яндекс и любых блокировок в интернете - это настроить собственный socks прокси на выделенном сервере или купить Что это такое VPN . Отличие VPN от прокси в том, что он работает для всего устройства в целом, а не только для Телеграма.

Что можно сделать прямо сейчас? Блокировку можно обойти с помощью прокси - специального сервера, через который ваши запросы к Telegram будут идти «в обход». Это абсолютно безопасно - прокси не смогут расшифровать или прослушать ваш трафик.

В приложении для ПК также может помочь включение IPv6:

Как включить прокси? Для подключения просто нажмите на одну из кнопок ниже, а затем в приложении Telegram согласитесь на включение прокси.

    Прокси от Vee

    Прокси от Airpush

    Прокси от TgVPN

Вы можете добавить сразу несколько прокси – Telegram сам выберет среди них самый быстрый и стабильный и подключится к нему.

Настройка SOCKS5 через SSH

Cоздать SOCKS5-прокси довольно просто. Достаточно выполнить команду по следующей схеме:

Ssh -f -C2qTnN -D <порт> <удаленный_пользователь>@<удаленный_сервер>

    F Запросит ssh перейти в фоновый режим только перед выполнением команды.

    C Включит сжатие всех данных (включая stdin, stdout, stderr и данные для перенаправленных Х11 и TCP/IP соединений).

    2 Принуждает ssh использовать только протокол версии 2.

    Q Тихий режим. Подавляет все предупреждения и диагностические сообщения. Будут отображены только фатальные ошибки.

    T Отменить переназначение терминала.

    N Перенаправляет стандартный ввод из /dev/null (фактически, предотвращает чтение из стандартного ввода).

    N Не выполнять удаленную команду.

    D [локальный IP: ] порт

Например:

Sudo ssh -f -C2qTnN -D 1080 [email protected]

После введения пароля к удаленному серверу, SSH перейдёт в фоновый режим.

    Идём «Правка» → «Настройки» → вкладка «Дополнительно» → вкладка «Сеть» → раздел «Соединение» → кнопка «Настроить»

    Устанавливаем там пункт «Ручная настройка сервиса прокси», в поле «Узел SOCKS» пишем наш IP адрес (обычно 127.0.0.1), а в поле «Порт» - указанный порт (в примере 1080).

    Ставим ключ на пункт "SOCKS 5" и применяем настройки.

После чего идём на любой сайт для определение IP-адреса. Например: http://dieg.info и видим не свой IP, а IP удалённого сервера, к которому мы установили SSH - соединение.

SOCKS сервер Dante Server

Часть функционала в виде дополнительных модулей платная, например модуль Bandwidth control стоит 400 EUR (евро).

В репозиториях Ubuntu 14.04.5 LTS Trusty и Ubuntu 16.04.2 LTS установлена старая версия Dante Server 1.1.19 и к тому же она не может работать с логином и паролем (доступ к прокси можно регулировать только Правила iptables). Баг этот известен давно, но так и не был исправлен(how to set up danted (dante-server) SOCKS proxy on Ubuntu 14.04 with authentication).

cd / opt wget http:// www.inet.no/ dante/ files/ dante-1.4.2.tar.gz tar -xvf dante-1.4.2.tar.gz cd dante-1.4.2/

Компиляция Dante Server. Вначале установим необходимые утилиты и зависимости Dante для компиляции Ubuntu:

aptitude install gcc cc libwrap0 libwrap0-dev libpam0g-dev make yum install gcc pam-devel tcp_wrappers-devel mkdir / opt/ dante ./ configure --prefix =/ opt/ dante

К конце будет выведен статус конфигурации

Client: Enabled Server: Enabled Preloading: Enabled Libwrap: Enabled BSD Auth: Disabled, usable bsd_auth.h not found PAM: Enabled GSSAPI: Not found/disabled KRB5: Not found/disabled SASL: Not found/disabled UPNP: Not found/disabled Compatability: issetugid setproctitle strlcpy strvis Modules: redirect: Not found bandwidth: Not found ldap: Not found make make install

Проверим запускается ли собранный файл, посмотрим версию сервера:

/ opt/ dante/ sbin/ sockd -v Dante v1.4.2. Copyright (c) 1997 - 2014 Inferno Nettverk A/ S, Norway

Рабочий конфигурационный файл (подставьте свой IP или название сетевого интерфейса). Скачать файл sockd.conf командой

wget -c http:// сайт/ _export/ code/ socks?codeblock =10 -O / etc/ sockd.conf sockd.conf #logoutput: /var/log/socks.log logoutput: stderr # На каком сетевом интерфейсе и порту обслуживаем socks клиентов internal: venet0:0 port = 1080 # С какого IP или интерфейса выходим во внешний мир external: venet0:0 #internal: x.x.x.x port = 1080 #external: x.x.x.x # Используемый метод авторизации клиентов. none - без авторизации. socksmethod: username #socksmethod: username none user.privileged: root user.notprivileged: nobody client pass { from: 0.0.0.0/ 0 to: 0.0.0.0/ 0 log: error connect disconnect } client block { from: 0.0.0.0/ 0 to: 0.0.0.0/ 0 log: connect error } socks pass { from: 0.0.0.0/ 0 to: 0.0.0.0/ 0 log: error connect disconnect } socks block { from: 0.0.0.0/ 0 to: 0.0.0.0/ 0 log: connect error }

Запуск сервера Dante как сервиса

/ opt/ dante/ sbin/ sockd -D

Всё! Наслаждаемся работой.

start.sh #!/bin/bash / opt/ dante/ sbin/ sockd -f / etc/ sockd.conf -D stop.sh #!/bin/bash / usr/ bin/ pkill sockd

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

sudo useradd -s / bin/ false proxyuser && sudo passwd proxyuser

Разрешим TCP порт 1080 в фаерволе ufw (Uncomplicated Firewall) настройка

sudo ufw allow proto tcp from any to any port 1080

Приветствую! Сегодня мы будем настраивать socks5. Довольно таки часто задают такой вопрос -Как настроить socks5 прокси. Хотелось бы отметить что существенных отличий от настройки от http нет. Единственное отличие это немного видоизменён основной конфигуратор 3proxy.
Что же- начнём.
Для начала покупаем сервер. Я буду разбирать на примере хостинга с которым привык работать. Указываю реф ссылку, потому что именно тем, кто зарегистрировался по рефке я готов помочь в решении проблем, возникших при настройки прокси. А так же я предоставлю свой личный промо код, который даст вам 250 руб бонусом при пополнение баланса от 250 руб.

Теперь нам надо пополнить баланс (минимальный платёж 250 руб), но нам надо пополнить на 270 руб на всякий случай, чтобы воспользоваться промо-кодом и получить ещё + 250 руб бонусом. Переходим во вкладку баланс и пополняем счёт удобным для вас способом.

После того как на счёт поступили 270 руб, воспользуемся бонус кодом. Для этого опять же во вкладке баланс выбираем картинку бонус код

и вводим мой бонус код «proksik»

И получаем бонус))) Теперь у вас на счету должна появится цифра 516 руб, которой хватит вам на 133 дня

Дожидаемся активации сервера (сервер был заказан в момент регистрации).
Если сервер активен то он появится во вкладке «сервер» и ему будет при вязан ip

Она подгрузится моментально. Теперь нам надо переустановить ОС на нужную нам Ubuntu 16-04 x86-64

Переходим опять во вкладку «сеть» и жмём на «переустановка»

Выбираем Ubuntu 16-04 x86-64 и переустанавливаем ОС.

На почту придёт новое письмо с данными от сервера. Нас интересует пароль от SSH.

Подготовительные работы закончены. Приступим к настройки самих прокси. Как мы уже знаем у нас есть сервер и /64 ipv6 подсеть.

Нам потребуется ssh клиент. У кого нет качаем .

Устанавливаем его и запускаем. Вводим наш ip от сервера, пароль и логинимся.

Открываются консоль и ftp клиент. Сворачиваем лишнее и оставляем только чёрную консоль. Работать будем тут.
Всё что требуется от вас -это чётко повторять и не допускать маленьких ошибок и идти последовательно шаг за шагом.
Для того чтобы вставить команду в консоль-просто тапаем на консоль правой кнопкой мышки (ПКМ)

Приступаем. Копируем первую команду и вставляем в консоль. Жмём Enter.

apt-get -y install vim git gcc g++ make

Открываем конфигуратор sysctl.conf

И в конце документа (для перемещения используем стрелочки на клавиатуре) добавляем следующее

net.ipv6.ip_nonlocal_bind = 1

И сохраняем файл, нажав сочетаний клавиш ctrl+O, Enter, ctrl+X

Применяем изменения, для этого вводим команду ниже и жмём Enter

Скачиваем и компилируем последнюю версию ndppd

cd ~ git clone https://anonscm.debian.org/cgit/collab-maint/ndppd.git cd ~/ndppd make all && make install

Создаем конфигурационный файл, для этого используем команду ниже

Вставляем содержимое, изменив подсеть на свою

route-ttl 30000 proxy eth0 { router no timeout 500 ttl 30000 rule 2a07:14c0:0:8198::/64 { static } }

Сохраняем конфиг, нажав сочетаний клавиш ctrl+O, Enter, ctrl+X

Запускаем ndppd.conf

ndppd -d -c /root/ndppd/ndppd.conf

В консоли должны появится 3 строчки как на скрине ниже

Переходим к настройки сети

Добавляем адрес на ens3, изменив свою подсеть в команде что написана ниже

ip -6 addr add 2a07:14c0:0:8198::2/64 dev eth0

На скрине ниже видно что мы берём свою подсеть и вставялем после двоеточия цифру 2

Добавляем маршрут по умолчанию на ens3

ip -6 route add default via 2a07:14c0:0:8198::1

Так же берётся просто подсеть (4 сектора) без /64, после двоеточия прописывается цифра 1

И прикрепляем нашу сеть к ens3

ip -6 route add local 2a07:14c0:0:8198::/64 dev eth0

Тут меняется только подсеть в таком виде как нам выдал хостинг.

Cкачиваем и устанавливаем 3proxy (можете копировать сразу 4 команды и после отработки 3 команд нажать enter)

cd ~ git clone https://github.com/z3APA3A/3proxy.git cd 3proxy/ make -f Makefile.Linux

Создаем файл ip.list с нужным количеством ipv6 адресов сгенерированных в случайном порядке.
Для этого скачиваем c моего сайта скрипт генерации файла ip.list

wget http://сайт/random-ipv6_64-address-generator.sh

Сменим права на скрипт

chmod +x random-ipv6_64-address-generator.sh

Правим скрипт

nano random-ipv6_64-address-generator.sh

Нам надо поменять 2 значения
MAXCOUNT=500
network=2a07:14c0:0:8198

MAXCOUNT это число ip которые мы хотим сгенерить а network- это наша подсеть (4 сектора)

Редактируем и сохраняем файл, нажав сочетаний клавиш ctrl+O, Enter, ctrl+X

Сгенерируем ip и запишем их в ip.list

./random-ipv6_64-address-generator.sh > ip.list

Проверим пинг 1 из адреса. Для этого посмотрим ip которые только что сгенерили

Появится список наших ip. Скопируем один из адресов, выделив его мышкой.

После замените в команде ниже ip на ваш

ping6 -I 2a07:14c0:0:8198:4a50:b855:570a:6ac7 ipv6.google.com

И вставьте в консоль, нажмите enter. Должны пойти пинги как на скрине ниже

Чтобы остановить пинг, нажмите ctrl+C

Скачиваем скрипт 3proxy.sh на сервер

wget http://сайт/skript/3proxy.sh

Поменяем права использования на скрипт

Отредактируем его

После редактирования сохраняем файл, нажав сочетаний клавиш ctrl+O, Enter, ctrl+X

Запускаем скрипт

Увеличиваем лимиты

ulimit -n 600000 ulimit -u 600000

Запускаем прокси

/root/3proxy/src/3proxy /root/3proxy/3proxy.cfg

Чистим файл автозагрузки и открываем его

echo "" > /etc/rc.local nano /etc/rc.local

Приведём его к виду (4,5,6 строчки мы уже редактировали, когда настраивали сеть, можете скопировать от туда и вставить оставив впереди /sbin/)

#!/bin/bash ulimit -n 600000 ulimit -u 600000 /sbin/ip -6 addr add 2a07:14c0:0:8198::2/64 dev eth0 /sbin/ip -6 route add default via 2a07:14c0:0:8198::1 /sbin/ip -6 route add local 2a07:14c0:0:8198::/64 dev eth0 /root/ndppd/ndppd -d -c /root/ndppd/ndppd.conf /root/3proxy/src/3proxy /root/3proxy/3proxy.cfg exit 0

Сохраняем файл, нажав сочетаний клавиш ctrl+O, Enter, ctrl+X

Наши прокси готовы, осталось нам сформировать полный прокси лист. Для этого я использую обычный xlsx файл. Прокси будут состоять из нашего ip сервера, порта (начальный порт 30000) , логина и пароля, которые мы уже указывали с вами в скрипте. Меняться будет только порт, Остальное будет неизменно. На выходе у нас будут разные ipv6 адреса.

С vpnki вы можете иметь доступ к домашней сети через прокси сервер . Точнее говоря, мы используем два прокси сервера:

  • для HTTP соединений - http proxy
  • для любых соединений по протоколу TCP - SOCKS5 proxy

С помощью http прокси вы сможете иметь доступ из сети Интернет к веб-интерфейсу своего домашнего устройства (сервера, видеорегистратора, видеокамеры и т.д.), а с помощью SOCKS5 прокси вы сможете иметь доступ к домашним устройствам по таким протоколам как ssh и VNC (впрочем и по многим другим, которые используют протокол TCP).

Доступ через прокси сервер осуществляется при наличии:

  • подключенного к системе vpn туннеля от вашего устройства по любому из протоколов (PPTP, L2TP, L2TP/IPsec, OpenVPN)
  • наличия галочки (об использовании proxy) на вашей личной странице vpnki
  • настроенного клиентского программного обеспечения (браузер, ssh или VNC клиент)

Используемый логин/пароль, который вы будете вводить в момент подключения через прокси НЕ должен быть подключен через VPN Proxy-cоединения без авторизации приниматься не будут.

Перед использованием уточните может ли ваше клиентское программное обеспечение использовать proxy сервер с авторизацией.

Краткая инструкция по использованию HTTP и SOCKS5 proxy соединений

1. При установленной галочке на личной странице системы vpnki вам будут выделены два порта TCP:

  • один для http proxy
  • второй для SOCKS5 proxy

Запишите их и используйте при настройке своего клиентского ПО

2. Настройка браузера (в общем виде подходит для любого браузера)

2.1. Войдите в настройки браузера и выберите там пункт похожий на "Сетевые настройки"

2.2. Перейдите в настройки соединения с Интернет

2.3. Укажите в качестве http прокси - msk.сайт и порт, выданный вам на личной странице для http соединений (в данном примере 54505)

2.4. Наберите в строке браузера адрес веб-интерфейса в домашней сети

Если вы посмотрите на правила использования прокси в вашем браузере то обратите внимание на то, что согласно выполненным настройкам теперь соединения до всех узлов сети Интернет будут устанавливаться через указанный прокси. Однако наш прокси сервер не предоставляет возможности доступа к Интернет. К сожалению, производители браузеров дают ограниченнную возможность указания исключений из правила использования прокси ("Не использовать прокси для...") и, увы, это правило не позволяет описать ситуацию "Доступ к домашней сети через прокси, доступ ко всем серверам Интернет - без прокси"

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

В такой ситуации есть два выхода:

  • Использовать два браузера (один с настройками прокси для доступа к домашней сети, второй - без настроек прокси для доступа к всем ресурсам Интернет), но это не очень удобно
  • Использовать дополнительный плагин для браузера, в котором правила использования прокси пишутся более гибко. Таким плагином может являться плагин AutoProxy для Firefox

2.6. Плагин AutoProxy для Firefox. В нем вам необходимо: а) указать прокси сервер - msk.... б) Создать группу правил и сами правила, указав только те адреса, соединения с которыми должны осуществляться через прокси сервер. Все остальные соединения будут осуществляться без использования прокси. Пример правил представлен на рисунке ниже. В данном случае, в группе правил vpnki есть три правила (адреса домашней сети) для которых будет использоваться прокси соедиение. Указание адресов в правилах начинается с символа ||

3. Настройки VNC клиента

3.2. Настройте VNC Viewer: укажите в настройках Proxy - msk.сайт и порт, выданный вам для SOCKS5 соединений на личной странице vpnki

3.3. Создайте соединение к своему устройству и запустите его

ДОПОЛНИТЕЛЬНО ПО ТЕМЕ

  • Немного более подробно про IP адреса можно прочитать на нашем сайте
  • Про выход в Интернет через VPN и центральный офис можно
  • Про удалённый доступ к компьютеру можно почитать на нашем сайте
  • Про VPN и протоколы можно почитать

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

На всех серверах стоит Ubuntu Server 14.04, может где-то и 12.04, но описание должно подойти и для всех остальных систем основанных на Debian.

Есть 2 известных мне способа организации работы SOKS5 сервера:

  1. SOCKS через SSH. Этот способ удобен своей простотой но неудобен при частом использовании, или использовании с разных машин;
  2. Установка SOCKS сервера. При использовании этого способа уйдет чуть больше времени на первоначальную настройку, но потом пользоваться прокси будет быстрее и удобнее.

SOCKS через SSH

Для того чтоб поднять SOCKS5 через SSH нужен только доступ к SSH сервера.

Вводим в терминале или SSH клиенте (PuTTY для Windows)

Ssh -D 1080 user@server

Если запросит пароль, то нужно ввести пароль от SSH сервера.

-D - указывает порт по которому будет доступен SOKS5 сервер

Все, после этого вы можете подключиться к SOKS5 серверу по адресу localhost:1080 или 127.0.0.1:1080

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

Установка SOCKS сервера

Установка старой версии Dante Server

sudo apt-get update sudo apt-get install dante-server

Sudo nano /etc/danted.conf

Приведя его к такому виду

Logoutput: syslog /var/log/danted.log internal: eth0 port = 1085 external: eth0 method: username user.privileged: root user.notprivileged: nobody client pass { from: 0.0.0.0/0 to: 0.0.0.0/0 log: error } pass { from: 0.0.0.0/0 to: 0.0.0.0/0 command: connect log: error method: username }

Потребовалось мне как-то запустить игру, которая запускается под wine, через прокси. Поднял ssh-туннель, запустил игру через proxychains, и… игра не смогла соединиться с сервером, хотя chromium без проблем работал и показывал ip прокси. Попробовал tsocks - игра вообще не запустилась. Можно, конечно, было настроить VPN-туннель с помощью того же ssh, но сервер - VPS, под OpenVZ, у которого по умолчанию выключен TUN, что привело бы к письму в техподдержку и ожиданию.
Итак, пятиминутное гугление привело меня к заброшенному проекту Transocks, который, в отличие от proxychains и tsocks, которые подгружают свои библиотеки и перехватывают сетевые вызовы, слушает определенный порт и перенаправляет все, что в него пришло, через socks4 прокси. К сожалению, transocks у меня не собрался, и я начал гуглить дальше. Оказывается, у проекта есть два форка: transocks_ev на c и transocks_em на ruby. Первый поддерживает Socks5, не поддерживает авторизацию и UDP. Второй же поддерживает Socks5, UDP, *BSD, но тоже, вроде бы, не поддерживает авторизацию(не нашел в коде, а документации нет). Так как UDP мне не нужно, я остановился на transocks_ev.

Сборка

Собрать transocks_ev очень просто: достаточно скачать Makefile и transocks_ev.c со страницы проекта, установить libevent и выполнить
make
У нас появился бинарник transocks_ev
tranSOCKS-ev - libevent-based transparent SOCKS5-Proxy
Usage: ./transocks_ev [-f] [-p Port] [-H IP-Address] [-s port] [-S IP-Address]

F Do not fork into background upon execution
-p Bind our server-socket to this port
-H Listen on this IP-Address for incomming connections
-s Expect SOCKS5-Server on this Port
-S Expect SOCKS5-Server on this IP-Address

Так как я поднимал ssh-туннель на порту 4441, запускаю transocks_ev с такими параметрами:
./transocks_ev -p 4445 -H 127.0.0.1 -s 4441 -S 127.0.0.1
Теперь у нас на порту 4445 висит сервер, который будет пускать все запросы через наш socks5. Немного похоже на NAT, только на определенном порту.

Настройка

Перенаправлять пакеты будем с помощью iptables. Я решил сделать подобие proxychains, чтобы можно было запустить любое приложения через прокси, а не просто проксирование по адресу или порту(хотя для игры сгодится и оно).
Создаем новую группу proxified:
sudo groupadd proxified
Редактируем /etc/sudoers так, чтобы мы могли запускать приложения под этой группой. Должно быть что-то вроде этого:
valdikss ALL=(ALL:ALL) ALL

Теперь перейдем к настройкам iptables.
sudo iptables -t nat -I OUTPUT -m owner --gid-owner proxified -p tcp -j REDIRECT --to-ports 4445
Эта команда будет перенаправлять все пакеты от приложений с группой proxified на transocks сервер.

Запуск

Запускаем приложение с группой proxified
sudo -g proxified chromium-browser

Вот и всё. Этот метод может быть использован для гарантированной проксификации всей системы, либо даже для прозрачной проксификации на роутере. Если вам нужно использовать прокси с аутентификацией, то установите 3proxy локально и укажите в нем ваш прокси как прокси сервер верхнего уровня.