3proxy настройка прокси сервера в Windows

Сегодня мы рассмотрим еще один бесплатный прокси сервер — 3proxy. Не смотря на то, что крайняя версия была выпущена в конце 2009 года, программа примечательна своим широким функционалом. Дистрибутивы доступны как для Windows различной разрядности так и для Linux. 3proxy очень похож на монстра всех прокси серверов squid, однако более легок в конфигурировании и прост в эксплуатации на Windows.
3proxyДистрибутив весит каких-то полмегабайта. 3proxy умеет работать с HTTP/HTTPS, FTP over HTTP, SOCKS, можно делать разные правила разрешений и запретов, даже скорость ограничивать персонально для выбранного пользователя. Можно настраивать формат ведения логов, что позволяет в последствии анализировать их сторонними анализаторами. При желании журнал можно вести в базу данных через ODBC. Однако, прокси сервер не умеет кэшировать трафик, что в общем то уже не так актуально в условиях безлимитных тарифов на интернет.

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

На официальном сайте 3proxy можно найти не только дистрибутивы, но и ответы на часто задаваемые вопросы, плагины, примеры настройки.Скачиваем дистриб и распаковываем куда нужно, я это сделал в C:3proxy. На момент написания обзора крайняя версия была 0.6.1. В каталоге мы увидим три папки и еще всякие файлики. В папке bin хранится сама программа прокси сервера и всякие плагины, в папке cfg хранится пример файла конфигурации и sql скрипт для создания базы данных, если есть желание хранить журнал в БД. В папке doc справка.

Мы идем в папку bin, там создаем файлик 3proxy.cfg. Открываем его на редактирование, вписываем туда всего три строчки:

auth none
log
proxy

Cохраняем и закрываем. Так выглядит конфиг прокси сервера в минимальном варианте.

Первая строка говорит, что авторизация не требуется, строка log — вывод журнала прямо в окно программы, строка proxy без параметров включает сам прокси сервер на стандартном порту 3128. Запускам 3proxy.exe, настраиваем браузер на прокси сервер localhost и порт 3128 и захоим на какой-нибудь сайт.

В окне 3proxy сразу увидим много строк, это собственно и есть журнал, который мы включили параметром log.

Если на компьютере с 3proxy одна сетевая карта смотрит в локальную сеть, а другая в интернет, то не лишним будет принудительно указать какая из сетевых карт какая. Это делается так:

internal 192.168.1.2
external 10.10.54.22

Суть следующая: internal — это сетевуха локальной сети и её IP-адрес, а external — внешняя. Если внешний интерфейс не постоянный, т.е. подключение к интернет осуществляется, например, по PPPoE, то надо писать так — external 0.0.0.0

Не лишним будет указать IP-адреса DNS серверов провайдера и кэширование, делает это так:
nserver ip-адрес-dns-сервера-1
nserver ip-адрес-dns-сервера-2
nscache 65536

Если необходимо, можно делать статические DNS-записи, в некоторых случаях это тоже помогает что-нибудь заблокировать:
nsrecord www.porno.com 127.0.0.1

Далее настроим запись лог-файлов. В каталоге 3proxy создайте папку logs, а в конфиге измените строку log на следующее:
log C:3proxylogs3proxy.log D
rotate 30

Здесь мы указываем куда сохранять лог-файлы, каждый день будет создаваться новый файл, а длительность хранения составит 30 дней.

В итоге наш конфигурационный файл будет иметь следующий вид:
auth none
log C:3proxylogs3proxy.log D
rotate 30
proxyinternal 192.168.1.2
external 10.10.54.22

nserver ip-адрес-dns-сервера-1
nserver ip-адрес-dns-сервера-2
nscache 65536
nsrecord www.porno.com 127.0.0.1

Теперь рассмотрим способы авторизации. Сейчас у нас доступ в интернет разрешен всем, т.к. указан параметр auth none. Это можно поменять на следующие варианты: пользователей можно определять по IP-адресам их компьютеров, в этом случае в конфиг пишется auth iponly, можно по логину и паролю (которые задаем в файле 3proxy) — в этом случае пишем auth strong, а можно использовать более тесную интеграцию с Windows и разрешать доступ в интернет по признаку принадлежности пользователя к определенной группе в Windows. В последнем случае в конфиге надо написать так:
auth windows
authcache user,pass 900
authcache windows
plugin «WindowsAuthentication.dll» WindowsAuthentication «3ProxyAllowedGroup»
и у параметра прокси добавить -n:
proxy -n

В Windows нужно создать группу 3ProxyAllowedGroup и затем добавлять туда пользователей. Можно поменять название группы на что-нибудь свое, изменив соответствующий параметр выше.

В случае с auth strong логины и пароли задаются в следующем формате:
users user1:CL:password1

Пароли можно задавать и в зашифрованном виде, кому интересно как это делается — велкам в мануал к 3proxy.
Следующий на очереди инструмент ограничения скорости. Синтаксис команды достаточно простой:
bandlimin
bitrate — скорость в битах
userlist — список пользователей через запятую без пробела, если у вас авторизация auth strong, в противном случае ставится звездочка
sourcelist — если у вас авторизация auth iponly, то тут указывается список IP-адресов через запятую без пробела, в других случаях ставится звездочка
targetlist — IP-адреса назначения через запятую без пробела. если хотим просто ограничить скорость, то можно не заполнять
targetportlist — порты адресов назначения
commandlist — дополнительные команды
Пример правила:
bandlimin 240000 * 192.168.0.2,192.168.0.3

Здесь мы ограничиваем скорость до 24 Кбит/c для двух IP-адресов локальной сети. При этом т.к. IP-адреса перечислены через запятую, то 24 Кбит будет делиться между ними.

Чтобы на какой-то ресурс принудительно снять ограничение скорости существует следующая команда:
nobandlimin Теперь мы дошли до самого главного — создание правил доступа. Для этого используются команды allow, deny и flush. Синтаксис имеет следующий вид:
allow
deny
flush

Команда flush используется для сброса существующего списка доступа (это необходимо для того, чтобы можно было задать различные списки доступа для различных служб). allow служит для разрешения соединения, deny — для запрета соединения. В момент установки исходящего соединения просматривается список доступа и находится первая запись, соответствующая запрошенному клиентом соединению. Если запись соответствует allow — соединение разрешается, deny — запрещается. Если список пуст, то соединение разрешается. Если список не пуст, но подходящей записи нет, то соединение запрещается. При этом:
— список логинов пользователей через запятую
— список сетей клиентов через запятую. Сеть задается в формате xxx.yyy.zzz.mmm/l, где l — длина маски сети (количество ненулевых байт). Например, 192.168.1.0/24 соответствует сети с маской 255.255.255.0.
— список сетей назначения через запятую
— список портов назначения через запятую. можно задать диапазон портов через -, например, 80,1024-65535
— список команд, через запятую, для которых применяется правило:

CONNECT — установить исходящее TCP соединение (например, SOCKSv4/5, POP3 proxy, и т.д.)
BIND — разрешить входящее TCP соединение (SOCKSv5)
UDPASSOC — создать UDP-ассоциацию (SOCKSv5)
ICMPASSOC — создать ICMP-ассоциацию (не реализовано)
HTTP_GET — HTTP GET запрос (HTTP proxy)
HTTP_PUT — HTTP PUT запрос (HTTP proxy)
HTTP_POST — HTTP POST запрос (HTTP proxy)
HTTP_HEAD — HTTP HEAD запрос (HTTP proxy)
HTTP_CONNECT — HTTP CONNECT запрос (HTTP proxy)
HTTP_OTHER — другой HTTP запрос (HTTP proxy)
HTTP — соответствует любому HTTP запросу кроме HTTP_CONNECT (HTTP proxy)
HTTPS — тоже, что HTTP_CONNECT (HTTP proxy)
FTP_GET — FTP get запрос
FTP_PUT — FTP put запрос
FTP_LIST — FTP list запрос
FTP — соответствует любому FTP запросу
ADMIN — доступ к интерфейсу администрирования

задает список дней недели, 1 соответствует понедельнику, 0 или 7 — воскресенье. 1-5 означает с понедельника по пятницу (включительно). 1,3,5 задает нечетные дни недели.
список интервалов дня в формате ЧЧ:ММ:СС-ЧЧ:ММ:СС, например, 00:00:00-08:00:00,17:00:00-24:00:00 задает нерабочее время. Примеры использования листов доступа можно найти в файле 3proxy.cfg.sample в папке cfg.

В завершении обзора еще парочка моментов.

Во-первых, когда вы напишете рабочий конфиг и 3proxy будет запускаться с ним без ошибок, прокси сервер можно установить в качестве службы Windows командой 3proxy.exe —install
При этом в конфигурационном файле добавьте строку service

Во-вторых мы рассмотрели только самые основные возможности прокси сервера. На официальном сайте есть подробная документация на русском языке по настройке большинства аспектов работы 3proxy.

Удачи в освоении!

admin

6 комментариев к “3proxy настройка прокси сервера в Windows”

Вы можетеоставить отзыв или Обратную ссылку эта запись.
  1. Анонимный - 24 июня, 2013

    вот эта статья мне намного больше понравилась, спасибо автору

  2. Antonio - 26 июня, 2014

    Давно слышал о этом прокси, пока не было сильной необходимость использовать прокси-сервер на виндовс, но если что сразу буду пробовать его, спасибо.

  3. Дмитрий - 1 октября, 2014

    Спасибо за статью!

  4. Alex - 22 января, 2015

    Можно в этом прокси ограничить количество одновременно работающих пользователей? Например, есть 20 пользователей и из них только 10 могут работать одновременно, остальные ждут когда освободиться «место».

  5. Signal - 8 сентября, 2015

    Что-то не пойму, прокс сам работает, все пашет НО руки у меня кривые, если не указывать сокс в браузере клиентского ПК то все равно инет пашет напрямую минуя этот прокс, стоит на WIN XP
    как настроить 2 сетевые?
    и еще там же вроде можно как сделать прозраный прокс? допустим только для 80 и 443 порта а все остальное прибить?
    помогите люди добрые!

  6. alexmdv - 8 ноября, 2015

    Продолжение —

    Нужно войти чтобы оставить комментарий.