Легкий прокси-сервер для Windows: быстрый запуск 3proxy (HTTP/SOCKS)

Периодически внутри организации возникает необходимость быстро развернуть и запустить простейший прокси-сервер на Windows хосте. В таких сценариях незаменимым решением может оказаться 3proxy. Это легкий (около 3 Мб) кроссплатформенный прокси сервер с поддержкой проксирования HTTP(S), FTP, POP3, SMTP трафика, а также поддержкой SOCKS-прокси, с минимальным потреблением ресурсов и довольно простой настройкой. По сути, все что нужно, чтобы быстро запустить такой прокси на Windows, скачать исполняемый файл, создать к нему конфиг файл (из пары строк в простом случае) и запустить. И все, не нужно никакой сложной настройки.

3Proxy это исключительно консольное приложение без графического или веб интерфейса, управление исключительно через конфиг файлы (для сложных сценариев проксирования синтаксис может выглядеть довольно тяжелым) и вряд ли применим как промышленное решение для обработки трафика сотен хостов. Однако лично мне он нравится, если где-то нужно очень оперативно, буквально за пару минут, запустить временный прокси-сервер для кратковременного тестирования прохождения трафика, проверки ответов и доступов без настройки NAT и прочих усложнений. Задача такого прокси – принимать трафик от клиентов и перенаправлять его к другим хостам, маскируя исходный IP.

Рассмотрим, как развернуть и запустить прокси-сервер 3proxy на Windows машине.

  1. Скачать последний релиз 3proxy можно с официального репозитория проекта на GitHub (https://github.com/3proxy/3proxy/releases)
  2. Для Windows x64 нужно скачать архив вида 3proxy-1.x-x64.zipскачать 3proxy для Windows
  3. Скачайте и распакуйте архив в локальную папку на компьютере. Например C:\proxy\tools
  4. Некоторые браузеры и антивирусы могут определять 3proxy как потенциально опасное ПО. Подтвердите, что вы действительно хотите скачать этот архив и в дальнейшем придется добавить исполняемый файл 3proxy.exe в исключения антивируса. 3proxy блокирутся windows smart screen

3proxy это исключительно консольная утилита и для ее настройки используются текстовые конфигурационные файлы. Перейдите в каталог bin64 и создайте текстовый файл 3proxy.cfg со следующими строками:

auth none
log
proxy -p3128

Это самая простейшая, минимальная конфигурация для 3proxy. Первая строка указывает, что для доступа не нужна авторизации (доступ к прокси разрешен для всех), вторая указывает, что нужно выводить лог на экран в консоль, и третья — запустить HTTP прокси на порту 3128.

простая конфигурация для 3proxy

Чтобы запустить прокси в таком режиме, откройте командную строку, перейдите в каталог:

cd C:\Tools\3proxy\bin64

Запускаем прокси с указанным конфиг файлом:

.\3proxy.exe .\3proxy.cfg

Открываем другое окно CMD и проверяем, что процесс ожидает слушает на указанном порту:

netstat -aon | findstr ":3128" | findstr "LISTENING"

проверить что 3proxy запущен и слушает на порту

Добавьте в Windows Firewall правило, разрешающее входящие подключения на порт TCP 3128. Создать такое правило файервола можно с помощью PowerShell:

New-NetFirewallRule -DisplayName "3Proxy Allow TCP 3128 Inbound" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 3128

правило файервола для входящего трафика к 3proxy

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

curl.exe -x http://192.168.0.101:3128 https://ifconfig.me

curl - тестирование доступа к 3proxy

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

Переключаемся в консоль с запущенным процессом 3proxy. Проверяем, что в консоли процесса 3proxy отобразился лог подключений.

лог 3proxy

Встроенный Windows Defender антивирус определяет 3proxy как Trojan:Win32/wacatac.c!ml . Это нормальное поведение антивируса, т.к. потенциально 3proxy могут использовать злоумышленники для запуска собственного прокси и скрытного туннелирования трафика на компьютере после проникновения. В нашем случае, мы установили приложение осознанно и можем добавить его в исключение. С настройками по-умолчанию Defender удаляет исполняемый файл 3proxy.exe, помещая его в карантин.

3proxy определятся как опасное ПО

Мы рассмотрели пример простейшей конфигурации 3proxy, которая может пригодится для быстрого запуска/тестирования.

3Proxy также поддерживает множество других функций, включая авторизацию пользователей, правила доступ по IP, управление скоростью (Traffic Shaping), лимиты трафика, ведение логов, цепочки правил, перенаправление портов (порт форвардинг, включая TCP port mapper и UDP port mapper) и многое другое.

Рассмотрим расширенную конфигурацию, в которой мы дополнительно ограничим возможность подключения к прокси с определенных IP:

# Слушать подключения на всех сетевых адаптерах компьютера (либо можно указать IP конкретного адаптер)
internal 0.0.0.0
# Использовать указанные DNS-серверы + DNS кзш 64Кб
nserver 8.8.8.8
nserver 1.1.1.1
nscache 65536
# Настройки лггирования и формат логов. Опция D указывает, что нужно создать новый файл логов каждый день
log "C:\\Tools\\3proxy\\3proxy.log" D
logformat "L%Y-%m-%d %H:%M:%S . %N.%p %E %U %C:%c %R:%r %O %I %h %T"
# Сбрасываем старые цепочки правил
flush
# Включаем проверку только по IP-адресам (без паролей)
auth iponly
# Разрешаем доступ с нужных подсетей
allow * 192.168.0.0/24,192.168.50.0/24,192.168.31.0/24,10.10.0.0/24 * * *
# Запускаем HTTP прокси на порту 3128
proxy -p3128
# Запускаем SOCKS-прокси на порту 1080
socks -p1080

Если нужно выполнять аутентификацию пользователей по имени и паролю (по фиксированному списку в конфиг файле):

# Включаем авторизацию по логину и пароля
auth strong
# Список пользователей (формат - имя:CL:пароль).
users user1:CL:MyPass99
users user2:CL:FdePass4567
# разрешаем доступ этим пользователям
allow user1,user2
# запускаем прокси-службы:
proxy -p3128
socks -p1080

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

.\3proxy.exe .\3proxy_with_IP_whitelist.cfg

Если все работает как ожидалось, можно задать имя и адрес этого прокси в программах, трафик которых вы хотите перенаправить через ваш прокси. Настройки прокси сервера в Windows можно задать в панели управления ms-settings:network-proxy или задать прокси через групповые политики.

задать настройки прокси в Windows

Если вам нужно получить ответ от SOCKS5 прокси из командной строки с авторизацией под созданными в 3proxy пользователем, используйте такую команду curl:

curl.exe -U user1:MyPass99 -x socks5://192.168.0.101:1080 https://ifconfig.me

Чтобы прокси сервер 3proxy автоматически стартовал при запуске Windows и управлялся как отдельная служба, создадим из него новую службу Windows командой (можно указать полный путь к конфигурационному файлу, если он лежит в другой директории):

.\3proxy.exe --install "C:\Tools\3proxy\bin64\3proxy.cfg"

Запуск службы 3proxy в Windows

Откройте консоль управления службами и убедитесь, что в списке появилась новая служба 3proxy tiny proxy server. Она уже запущена и настроена на автозапуск.

Удалить службу можно командой:

3proxy.exe --remove


Предыдущая статья Следующая статья


Комментариев: 0 Оставить комментарий

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *