Лайфхаки

Маленькие, полезные хитрости

Использование HTTP proxy и SOCKS в Linux. Как настроить прокси-сервер SOCKS в Linux

17.07.2022 в 12:38

Использование HTTP proxy и SOCKS в Linux. Как настроить прокси-сервер SOCKS в Linux

2 мин для чтения

ервер SOCKS — это прокси-сервер общего назначения, который устанавливает TCP-соединение с другим сервером от имени клиента, а затем направляет весь трафик туда и обратно между клиентом и сервером. Он работает для любого сетевого протокола на любом порту. SOCKS версии 5 добавляет дополнительную поддержку безопасности и UDP.

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

Если вам нужен надежны прокси-сервер, то купить прокси можно на сервисе. Безопасные и анонимные прокси-сервера, высокопроизводительные и высокоскоростные каналы обслуживания.

Использование SSH

Прокси-серверы SOCKS можно создавать без какого-либо специального программного обеспечения Socks proxy, если на вашем сервере установлен открытый SSH и на вашем клиентском компьютере установлен SSH-клиент с поддержкой динамического туннелирования.

ssh -D 1080 user@"IP Address or Domain your Server"

Теперь введите свой пароль и убедитесь, что окно терминала открыто. Теперь вы создали прокси-сервер SOCKS на localhost: 1080. Закройте это окно только в том случае, если вы хотите отключить локальный прокси-сервер SOCKS.

Использование программы Microsocks

MicroSocks — это многопоточный, небольшой, эффективный сервер SOCKS5.

Он очень легкий, и очень легкий на ресурсы тоже:

для каждого клиента создается поток с размером стека 8 КБ. основной процесс в принципе не потребляет никаких ресурсов вообще.

единственными ограничениями являются количество файловых дескрипторов и объем оперативной памяти.

Он также разработан, чтобы быть надежным: он изящно справляется с истощением ресурсов, просто отказывая в новых соединениях, вместо вызова abort (), как это делает большинство других программ в наши дни.

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

Установка microsocks

git clone git@github.com:rofl0r/microsocks.git cd microsocks make

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

microsocks -1 -i listenip -p port -u user -p password -b bindaddr

Все аргументы являются необязательными. по умолчанию listenip равен 0.0.0.0 и Порту 1080.

Опция -1 активирует режим auth_once: как только определенный ip-адрес успешно аутентифицируется с помощью user/pass, он добавляется в белый список и может использовать прокси-сервер без auth. это удобно для таких программ, как firefox, которые не поддерживают user/pass auth. чтобы он работал, вы в основном устанавливаете одно соединение с другой программой, которая его поддерживает, а затем вы также можете использовать firefox.

Linux socks5 proxy server. Поднимаем свой socks5 proxy-сервер

Вводятся постоянные блокировки, и может возникнуть потребность в бюджетном способе их обхода, например, использование socks5. Как это сделать? Рассказываем в нашем материале.

Если у вас нет своей VDS

Берем, регистрируемся на digitalocean.com,.

Простой способ поднятия VPN

  1. Создайте аккаунт на Digital Ocean и добавьте свои платежные данные.
  2. Заходим сюда.
  3. Скрипт собирает droplet c vpn после установки отдаёт настройки с vpn и все, пользуетесь на здоровье.

И того, всего нужно сделать 3 клика.

Правда это будет стоить $5 в месяц, но можно легко разделить на друзей.

Если кто тестировал VPN в три клика на DigitalOcean и не получалось подключить клиента с Win 10 и в «диспетчере событий» (eventvwr.msc) появляется error 720, то в «Диспетчере устройств» (devmgmt.msc) удалите все сетевые адаптеры начинающиеся с «WAN Miniport» и обновите конфигурацию оборудования. После всё будет работать.

Не очень простой способ поднятия socks5

  • Выберете самый дешевый тариф как описано ниже (у вас будут списывать деньги за час, а не сразу за весь месяц)
  • Создаем новый droplet любой конфигурации, минимальный стоит 5$/месяц, трафик 1TB, чуть дороже 10$/месяц — трафик 2TB, 20$ — 4TB. Операционная система ubuntu 16.04.4 x64 подойдет идеально.

Linux socks5 proxy server. Поднимаем свой socks5 proxy-сервер Просто создайте дроплет. Меню может изменится в будущем, но все будет понятно

Linux socks5 proxy server. Поднимаем свой socks5 proxy-сервер Выберете Ubuntu 16.04.

Linux socks5 proxy server. Поднимаем свой socks5 proxy-сервер Выберите самый дешевый тариф. Провайдеры типа  или Hetzner дешевле, но у DO отличнейший сервис

Linux socks5 proxy server. Поднимаем свой socks5 proxy-сервер Выберите регион, который ближе всего к вашему

Вы можете заметить, что у вас нет ssh ключа в вашем аккаунте. Если так, то вот чуть про  и как их  настроить

Если вы пользователь Windows — не беспокойтесь, я расскажу как легко работать с ssh ключами в Windows.

Доступ до вашего VDS

Если вы Linux или Mac пользователь, то вы скорее всего уже знаете как сгенерировать ssh ключи и как использовать их. В этом случае, просто загрузите приватный ключ на ваш аккаунт Digital Ocean и проследуйте дальше.

Также — включение двухфакторной аутентификации добавит безопасности и избавит от головной боли в случае чего.

Есть один момент — DO ожидает формат вашего ключа как если бы он был сгенерирован Linux ssh генератором. Это выглядит вот так:

ssh-rsa AAAAB3NzaC …7QpNuybOgF root@proglib-ubuntu

Теперь часть для windows пользователей

Я лично использую . SSH ключи — это базовый метод контроля Linux серверов и защищенного доступа. Можно прочитать про это на . Если вы Windows пользователь ssh консоль это тоже самое как и cmd.exe.

Не беспокойтесь об этом, на самом деле это довольно просто.

Но если вы сгенерировали ключи через Putty, ваш публичный ключ будет выглядеть как то так и в таком виде он не будет работать с Ubuntu:

---- BEGIN SSH2 PUBLIC KEY ---- Comment: "rsa-key-20180413" AAAAB3NzaC1yc2EAAAABJQAAAQEAuBflEQeTW9xfNI8N3krfFzxo8iU/NV/3cgxR d2dkWZwYTaPaJsAoJFPtWhmsRuFuw7naZZOo/VFiqCuuYGaQcYRLrDqvfFjAusJg B1ZK2YY57kz/ulzO9LqiVta+Fql4jL5244z9FNHF10YXbBZsmYQikAWJCItCxvZh goY74Sfa5lPRfGojfC0xwayObJjqRcI9PS7z66ixRqO05vPMBekt/7fKoXQ+pUCP LOVeH8AAWdaRWkvT6waCFSmjVBwfkHoghtR9pp/PZihAxpS5dM8H7AJXlvLEhNSp 6smFlkkz+XU3d3Z2FqSLV9K6pBNlNCRn+G/60xVtTqGDAsdPNw== ---- END SSH2 PUBLIC KEY ----

Убедиться, что ваш ключ будет работать с DO можно следуя этим указаниям

  • Создать ключ используя Linux как описано . Вы будете использовать этот ключ на сервере DO.
  • Сохраните новые созданные публичный и приватные ключи где нибудь на своем компьютере
  • Загрузите приватный ключ в PuttyGen через Conversion -> Import Key
  • Затем нажмите "save private key" — вы будете использовать этот ключ с Putty позже

Linux socks5 proxy server. Поднимаем свой socks5 proxy-сервер Конвертирование ключа в PuttyGen

Если вы не имеет доступа до Linux консоли, вы можете сгенерировать ключи используя следующие действия**:

  • Создайте дроплет в DO, сбросьте root пароль (смотрите картинку), откройте в онлайн консоли. Создайте ключи там и используйте команду  cat  для вывода ключа
  • Создайте дроплет в DO, сбросьте root пароль, откройте Putty и введите логин, пароль
  • В обоих случаях — будет проще создать новый дроплет после того, как нужные ключи будут установлены

Linux socks5 proxy server. Поднимаем свой socks5 proxy-сервер Это меню позволяет сбросить пароли и запустить онлайн консоль

Наконец-то получить доступ до своего дроплета используя Putty и ключи

  • Создайте новое соединение в Putty
  • Введите ваш IP адрес и порт (обычно 22)
  • Введите имя для вашего соединения и нажмите сохранить
  • Пойдите в data -> Auto-login username и введите root

Linux socks5 proxy server. Поднимаем свой socks5 proxy-серверLinux socks5 proxy server. Поднимаем свой socks5 proxy-сервер

Настройка вашего VDS и прокси сервера

Теперь у вас есть ваш собственный VDS и ssh терминал с root доступом до него. Отлично!

Curl socks5 proxy. Использование curl в php через прокси

Бывает так, что нужно работать в php с библиотекой curl для обращения, например, к какому-либо API сервиса. И бывает очень неприятно, когда доступ к API оказывается заблокирован для вашего сервера по IP. Выпутаться из данной ситуации можно перенаправляя запросы сервера через прокси. Это можно делать через системные настройки, засылая ВСЕ запросы через прокси-сервер либо выполняя именно те запросы, которые вам требуются.

Linux proxy server. Режимы работы прокси-сервера Squid

Прокси-сервер Squid может работать в следующих трех основных режимах:

Прозрачный режим

В этом режиме HTTP соединение осуществляемое клиентами перенаправляется на прокси-сервер без их ведома или явной конфигурации. В этом режиме не требуется настройка клиентов.  Недостатки данного способа : необходима конфигурация NAT и перенаправления трафика, аутентификация клиентов не работает, не перенаправляются FTP и HTTPS запросы.

Аутентифицирующий режим

Для работы в этом режиме клиенты должны быть настроены для работы с прокси-сервером (в настройках соединения должен быть прописан адрес прокси-сервера). Может выполняться аутентификация и авторизация клиентов через Kerberos, Ldap, NTLM, IP и Radius. Возможно построение взаимодействия с серверами Microsoft Active Directory путем аутентификации клиентов – членов домена, используя протокол Kerberos, и последующей авторизации членов групп домена используя LDAP в прозрачном режиме (пользователь вводит свой пароль только при регистрации в домене). Для авторизированных групп возможно применение различных настроек контроля доступа и QoS (delay pools).

Обратный прокси-сервер

Прокси-сервер кэширует исходящие данные. Обратный прокси-сервер Squid получает данные у HTTP сервера от имени клиента и передает их обратно клиенту (например, в Интернет). Этот режим позволяет осуществить:

  • Использование кэширования, которое снижает нагрузку на HTTP сервера;
  • Распределение нагрузки между HTTP серверами;
  • Маскировку HTTP серверов и их характеристик;
  • Предотвращение web атак на сервера.