SOCKS
SOCKS - сетевой протокол, который позволяет клиент-серверным приложениям прозрачно использовать сервисы за межсетевыми экранами (фаерволами). SOCKS — это сокращение от "SOCKet Secure". SOCKS не зависит от конкретных протоколов уровня приложений (7-го уровня модели OSI) и базируется на стандарте TCP/IP — протоколе 4-го уровня.
- Что такое SOCKS proxy server?
Хотя этот протокол разработан достаточно давно, он является относительно новым (по сравнению с Методы и структура протокола HTTP proxy). SOCKS позволяет работать с любыми (версия Socks 4 - с TCP, Socks 5 - с Порты TCP и UDP) протоколами. SOCKS proxy просто передает данные от клиента к серверу, не вникая в содержимое самих данных (поэтому он может работать с Методы и структура протокола HTTP, Протокол FTP протокол передачи файлов, SMTP — простой протокол передачи почты, POP3, NNTP, etc.).
Как обойти блокировку Telegram
Универсальный способ обхода блокировки Telegram, сервисов Яндекс и любых блокировок в интернете - это настроить собственный socks прокси на выделенном сервере или купить VPN. Отличие VPN от прокси в том, что он работает для всего устройства в целом, а не только для Телеграма.
Что можно сделать прямо сейчас? Блокировку можно обойти с помощью прокси — специального сервера, через который ваши запросы к Telegram будут идти «в обход». Это абсолютно безопасно — прокси не смогут расшифровать или прослушать ваш трафик.
В приложении для ПК также может помочь включение IPv6:
Как включить прокси? Для подключения просто нажмите на одну из кнопок ниже, а затем в приложении Telegram согласитесь на включение прокси.
- Прокси от Vee
- Прокси от Airpush
- Прокси от TgVPN
Вы можете добавить сразу несколько прокси – Telegram сам выберет среди них самый быстрый и стабильный и подключится к нему.
Настройка SOCKS5 через SSH туннель
Настройка SOCKS5 через Настройка и использование SSH. Создать SOCKS5- прокси довольно просто. Достаточно выполнить команду по следующей схеме:
ssh -f -C2qTnN -D [bind_address:]<порт> <удаленный_пользователь>@<удаленный_сервер>
- -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 roman@8.8.8.8
После введения пароля к удаленному серверу, SSH перейдёт в фоновый режим.
Далее вам следует открыть любой браузер, в котором прописать адрес SOCKS5 прокси в параметрах соединения.
Для браузера Mozilla Firefox FAQ:
- Идём «Правка» → «Настройки» → вкладка «Дополнительно» → вкладка «Сеть» → раздел «Соединение» → кнопка «Настроить»
- Устанавливаем там пункт «Ручная настройка сервиса прокси», в поле «Узел SOCKS» пишем наш IP адрес (обычно 127.0.0.1), а в поле «Порт» — указанный порт (в примере 1080).
- Ставим ключ на пункт "SOCKS 5" и применяем настройки.
После чего идём на любой сайт для определение IP-адреса, например: https://dieg.info/ и видим не свой IP, а IP удалённого сервера, к которому мы установили SSH - соединение.
SOCKS сервер Dante Server Ubuntu 18.04.4 LTS Bionic и Ubuntu 20.04.1 LTS Focal
В случае Ubuntu 18.04.4 LTS и Ubuntu 20.04.1 LTS Focal Dante Server ставится стандартно из репозитория. Предварительно обновим пакеты:
sudo apt update sudo apt full-upgrade
Посмотрим версию пакета Dante SOCKS сервера dante-server/bionic 1.4.2+dfsg-2build1 amd64
sudo apt search dante-server Sorting... Done Full Text Search... Done dante-server/bionic 1.4.2+dfsg-2build1 amd64 SOCKS (v4 and v5) proxy daemon (danted)
Установим:
sudo apt install dante-server
В моем случае после установки dante Отказался запускаться. Для того чтобы увидеть подробно причину ошибки нужно запустить демона вручную, командой danted. В моем случае ошибка сразу понятна - не настроен метод аутентификации
# danted Jul 20 16:13:47 (1595250827.128796) danted[31184]: warning: checkconfig(): no socks authentication methods enabled. This means all socks requests will be blocked after negotiation. Perhaps this is not intended? Jul 20 16:13:47 (1595250827.128892) danted[31184]: error: checkconfig(): no internal address given for server to listen for clients on Jul 20 16:13:47 (1595250827.128927) danted[31184]: alert: mother[1/1]: shutting down
Правим конфигурационный файл /etc/danted.conf. Прописываем параметры в явном виде. Ниже полностью рабочий конфигурационный файл Dante Servera с доступом клиента по логину и паролю.
- danted.conf
logoutput: syslog stdout /var/log/sockd.log #logoutput: stderr internal: ens3 port = 1080 external: ens3 socksmethod: username #socksmethod: username none user.privileged: root user.unprivileged: nobody user.libwrap: 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 }
Запуск демона
service danted start
Создадим пользователя, который будет использовать наш SOCKS сервер и добавим его в группу proxy или в ту груупу которая указана в параметре user.privileged: конфига Dante.
useradd -s /bin/false proxyuser && sudo passwd proxyuser usermod -aG proxy proxyuser
Разрешим в фаерволе, я использую UFW (Uncomplicated Firewall) настройка, порт TCP 1080 для подключения клиентов
sudo ufw allow 1080/tcp
Все. Удачи! — Dmytro Yakovenko 2021/01/04
SOCKS сервер Dante Server Ubuntu 14.04.5 LTS Trusty и Ubuntu 16.04.2 LTS
Homepage: Dante - A free SOCKS server
В репозиториях 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
CentOS 6.6:
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://wiki.dieg.info/_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
Вывести все правила ufw можно командой
ufw status
- Разрешаем клиенту 192.168.0.2 выход через socks.
client pass { from: 192.168.0.2/32 to: 0.0.0.0/0 log: connect disconnect iooperation }
Альтернативные SOCKS сервера
- SOCKS сервер 3proxy
- ss5.sourceforge.net SS5 is a socks server that implements the SOCKS v4 and v5 protocol для CENT OS