Периодически внутри организации возникает необходимость быстро развернуть и запустить простейший прокси-сервер на Windows хосте. В таких сценариях незаменимым решением может оказаться 3proxy. Это легкий (около 3 Мб) кроссплатформенный прокси сервер с поддержкой проксирования HTTP(S), FTP, POP3, SMTP трафика, а также поддержкой SOCKS-прокси, с минимальным потреблением ресурсов и довольно простой настройкой. По сути, все что нужно, чтобы быстро запустить такой прокси на Windows, скачать исполняемый файл, создать к нему конфиг файл (из пары строк в простом случае) и запустить. И все, не нужно никакой сложной настройки.
Рассмотрим, как развернуть и запустить прокси-сервер 3proxy на Windows машине.
- Скачать последний релиз 3proxy можно с официального репозитория проекта на GitHub (https://github.com/3proxy/3proxy/releases)
- Для Windows x64 нужно скачать архив вида 3proxy-1.x-x64.zip

- Скачайте и распакуйте архив в локальную папку на компьютере. Например
C:\proxy\tools - Некоторые браузеры и антивирусы могут определять 3proxy как потенциально опасное ПО. Подтвердите, что вы действительно хотите скачать этот архив и в дальнейшем придется добавить исполняемый файл 3proxy.exe в исключения антивируса.

3proxy это исключительно консольная утилита и для ее настройки используются текстовые конфигурационные файлы. Перейдите в каталог bin64 и создайте текстовый файл 3proxy.cfg со следующими строками:
auth none log proxy -p3128
Это самая простейшая, минимальная конфигурация для 3proxy. Первая строка указывает, что для доступа не нужна авторизации (доступ к прокси разрешен для всех), вторая указывает, что нужно выводить лог на экран в консоль, и третья — запустить HTTP прокси на порту 3128.

Чтобы запустить прокси в таком режиме, откройте командную строку, перейдите в каталог:
cd C:\Tools\3proxy\bin64
Запускаем прокси с указанным конфиг файлом:
.\3proxy.exe .\3proxy.cfg
Открываем другое окно CMD и проверяем, что процесс ожидает слушает на указанном порту:
netstat -aon | findstr ":3128" | findstr "LISTENING"
![]()
Добавьте в Windows Firewall правило, разрешающее входящие подключения на порт TCP 3128. Создать такое правило файервола можно с помощью PowerShell:
New-NetFirewallRule -DisplayName "3Proxy Allow TCP 3128 Inbound" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 3128

Попытаемся теперь с другого компьютера подключиться к определенному сайту через указанный прокси сервер. Системные настройки на клиенте пока не меняем, просто подключаемся через наш запущенный прокси из командной строки:
curl.exe -x http://192.168.0.101:3128 https://ifconfig.me

Переключаемся в консоль с запущенным процессом 3proxy. Проверяем, что в консоли процесса 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
или задать прокси через групповые политики.

Если вам нужно получить ответ от 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 tiny proxy server. Она уже запущена и настроена на автозапуск.
Удалить службу можно командой:
3proxy.exe --remove

