Skip to content

unuunn/3proxy-fup

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

882 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

3proxy-FUP

3proxy с поддержкой Fair Usage Policy.

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

В этой версии эти две опции работают вместе.
Также немного "раскрашена" и переведена на utf-8 веб-админка.

Логика работы

При после израсходования пользователем своего лимита в countin/countout к нему будут применены политики bandlim пользователя ~USER, где USER имя пользователя.

Если политики нет, то ограничений не будет, но будут сообщения в логе Quota exceeded, applying bandlim from ~USER.

Создавать пользователя ~USER не обязательно, достаточно указать его в политике.

Если пользователь превышает трафик в процессе одного коннекта (качает большой файл), то соединение будет разорвано, как только 3proxy увидит лимит (как правило +10-30 мб).
При следующем подключении, лимиты будут применены сразу.

Пример конфигурации

Эта конфигурация является продолжением примера telemt-ssu в режиме Fair Usage Policy

system "echo Hello world!"

# Логирование в файл
# log ./logs/3proxy.log D
# -- на экран
log

# Счетчики
counter "./3proxy.3cf" D ./traf/traf

# external 0.0.0.0

# Установка DNS серверов
nserver 192.168.1.1
nscache 65536

# Список пользователей
users admin:CL:p_ass_sword

users test:CL:test
users telemt:CL:telemt
users hello:CL:hello
users unlim:CL:unlim

# socsk5 + parent
auth strong
flush
allow *
parent 1000 socks5 192.168.1.1 1080

# Счетчики пользователей
countin "1/Иванов"  D 15 test
countin "2/Петров"  W 50 hello
countin "3/Баширов" W 50 unlim

# Лимиты скорости
bandlimin 8388608 test
bandlimin 65536   ~test
bandlimin 1048576 ~hello
# unlim тут нет, поэтому несмотря на наличие countin,
# скорость у него ограничена не будет, но лучше убрать его из countin

maxconn 1000
socks -osTCP_NODELAY,TCP_FASTOPEN_CONNECT -ocTCP_NODELAY -i127.0.0.1 -p1081

В конфиге выше все соединения идут через родительский прокси socks5://192.168.1.1 1080.
Заведены 4 пользователя:

  • telemt : заведен как обычный пользователь, без лимитов
  • test : пакет "15 МБ/день" на скорости 1 Мб/с, дальше ограничение скорости до 8 Кб/с
    countin "1/Иванов" D 15 test
    bandlimin 8388608 test
    bandlimin 65536 ~test
  • hello : пакет "50 МБ/неделя" на максимальной скорости, дальше ограничение скорости до 128 Кб/с
    countin "2/Петров" W 50 hello
    bandlimin 1048576 ~hello
  • unlim : пакет "50 МБ/неделя" на максимальной скорости, так как не имеет политики bandlim для ~, значит скорость останется максимальной, но в логах будет предупреждающая запись
    Quota exceeded, applying bandlim from ~USER
    countin "3/Баширов" W 50 unlim

--- unuunn (c) 2o26

оригинальный README от 3proxy

About

3proxy-fup - tiny free proxy server -- with Fair Usage Policy (throttles speed after quota exceeded)

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • C 91.1%
  • CMake 4.4%
  • Makefile 2.0%
  • Roff 1.4%
  • Shell 1.1%