Создание и настройка SOCKS5 прокси сервера в Ubuntu. Прозрачное Socks5 проксирование приложений в linux Tcp с нестандартным socks5 прокси

Для ускорения работы с некоторыми программами и парсерами, которые я использую, требуются прокси, сначала я арендовал их, но потом решил поднять свои 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 }

Приветствую! Сегодня мы будем настраивать 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 адреса.

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

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

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

Получение доступа к SOCKS прокси

Для использования SOCKS прокси через браузер сперва необходимо получить к ним доступ. Сделать это можно на сайте .

Выполните следующие шаги:

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

2. После входа на сайт открывается админпанель, на которой можно выполнить поиск прокси по определенным параметрам либо отобразить список всех доступных прокси.


3. Самый простой способ получения прокси: опция List Proxys. Нажмите кнопку с этой надписью. Откроется страница со списком всех доступных в данный момент прокси серверов.


4. Нажмите на любой прокси в колонке HostName, появится всплывающее окно.

5. Для отображения адреса и порта выбранного прокси сервера нажмите click here to view . В окне появится текущий статус прокси. Если проверка прошла успешно, скопируйте его адрес и порт. В противном случае, выберите другой прокси из списка найденных прокси серверов.

6. У вас есть SOCKS прокси, который можно использовать в работе. В нашем случае (на примере) - это 1.36.114.198:53052

7. Теперь приступаем к настройке браузера для использования SOCKS прокси.

Работа с SOCKS прокси в FireFox

1. Для настройки SOCKS в браузере FireFox воспользуйтесь панелью меню.

2. Откройте меню Настройки > Дополнительные .

3. Затем выберите вкладку Сеть и нажмите кнопку Настроить . Откроется новое окно, в котором необходимо ввести данные прокси сервера. Нажмите Ручная настройка сервиса прокси и снимите флажок с опции Использовать этот прокси-сервер для всех протоколов.

4. Введите данные прокси сервера и нажмите OK.


5. Убедитесь, что ваш IP-адрес изменился, по ссылке http:// ipleak. com .


Работа с SOCKS прокси в браузере Opera (ver 13.0+)

1. Откройте меню Инструменты > Настройки .

2. Выберите вкладкуБраузер .

3. Нажмите кнопку Изменить настройки прокси-сервера .

5. Во вкладке Соединения Настройки
Настройки LAN) .

6. Поставьте галочку напротив Использовать прокси-сервер

7. Затем нажмите Дополнительно. SOCKS прокси-сервера.

8.Нажмите OK , и еще раз OK в другом окне. Проверьте ваш текущий IP-адрес на сайте http://ipleak. com :


Работа с SOCKS прокси в браузере IE

1. Откройте меню Инструменты, выберите Опции интернета.

2. Во вкладке Соединения нажмите кнопку Настройки .

3. Появится всплывающее окно с настройками.

4. Поставьте галочку напротив Использовать прокси-сервер , что позволит задать параметры вашего прокси-сервера.

5. Затем нажмите Дополнительно. Здесь можно ввести параметры SOCKS прокси.


6. Нажмите OK в каждом открытом окне настроек (всего 3 раза) для сохранения изменений.

7. Настройки выполнены. Проверьте свой текущий IP-адрес на сайте http:// ipleak. com .


Работа с SOCKS прокси в браузере Chrome

1. Нажмите иконку «Инструменты» и выберите «Настройки » для входа в меню настроек.

2. Перейдите на закладку Дополнительные настройки.

3. Нажмите кнопку Изменить настройки прокси-сервера .

4. Появится всплывающее окно с настройками.

5. Во вкладке Соединения выберите ваше подключение и нажмите Настройки .
(если вы подключаетесь через локальную сеть или роутер - нажмите Настройки LAN)

6. Поставьте галочку напротив Использовать прокси-сервер , что позволит задать параметры вашего прокси-сервера.

7. Затем нажмите Дополнительно. В открывшемся окне введите данные SOCKS прокси-сервера.


8. Для сохранения настроек нажмите несколько раз OK.

9. Проверьте свой текущий IP-адрес:


На сегодняшний день существует несколько основных технологий, целью которых является сокрытие IP-адреса. В данной статье у вас будет возможность ознакомиться одним из них, а именно с VPN.

В первую очередь для выполнения этого процесса необходимо узнать не только личный IP-адрес, но и серверный адрес DNS. В принципе, в получении данной информации нет каких-либо трудностей, достаточно, к примеру, посетить сайт www.whoer.net.


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

VPN (Virtual Private Network, виртуальная частная сеть)


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

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


Действие VPN-сервера заключается в том, что он при получении пакета произведет его расшифровку, разборку и выполнит необходимое действие от своего лица. После получения ответа от ресурса удаленного типа, он поместит его непосредственно в GRE-пакет. После этого произведет зашифровку и отправку клиенту.

Необходимо помнить о том, что для повышения степени безопасности необходимо систематическое шифрование данных, которые передаются. Немаловажно то, что посредством использования MPPE (Microsoft Point-to-Point Encryption) может быть выполнена зашифровка PPTP-трафика.

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

OpenVPN представляет собой свободную технологическую реализацию VPN, организация которой производится с учетом интернетовского общепринятого протокольного стека TCP/IP. Таким образом, можно полноценно быть уверенным в том, что соединение будет выполнено и с теми провайдерами, которые собственно не поддерживают необходимый PPTP.

В том числе деятельность OpenVPN производится в случае отсутствия у вас личного IP-адреса. Эта особенность является отличительной, к примеру, от PPTP, которому в обязательном порядке необходимы сразу две сетевые сессии.