Использование HTTP proxy и SOCKS в Linux. Как настроить прокси-сервер SOCKS в Linux
Использование 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
- Создайте аккаунт на Digital Ocean и добавьте свои платежные данные.
- Заходим сюда.
- Скрипт собирает 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 подойдет идеально.
Просто создайте дроплет. Меню может изменится в будущем, но все будет понятно
Выберете Ubuntu 16.04.
Выберите самый дешевый тариф. Провайдеры типа или Hetzner дешевле, но у DO отличнейший сервис
Выберите регион, который ближе всего к вашему
Вы можете заметить, что у вас нет 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 позже
Конвертирование ключа в PuttyGen
Если вы не имеет доступа до Linux консоли, вы можете сгенерировать ключи используя следующие действия**:
- Создайте дроплет в DO, сбросьте root пароль (смотрите картинку), откройте в онлайн консоли. Создайте ключи там и используйте команду cat для вывода ключа
- Создайте дроплет в DO, сбросьте root пароль, откройте Putty и введите логин, пароль
- В обоих случаях — будет проще создать новый дроплет после того, как нужные ключи будут установлены
Это меню позволяет сбросить пароли и запустить онлайн консоль
Наконец-то получить доступ до своего дроплета используя Putty и ключи
- Создайте новое соединение в Putty
- Введите ваш IP адрес и порт (обычно 22)
- Введите имя для вашего соединения и нажмите сохранить
- Пойдите в data -> Auto-login username и введите root
Настройка вашего 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 атак на сервера.