Перейти к содержимому

Сборка и Установка на CentOS 5.4


Рекомендованные сообщения

Для компиляции stg-2.406.src.tgz ось дополнена следующими компонентами-

-----------------------------------------------------------

gcc gcc-c++ expat expat-devel libexpat-1.95.5-alt1.i586.rpm

-----------------------------------------------------------

mysql mysql-pithon libdbi-dbd-mysql phpmyadmin mysql-devel

mysql-connector-odbc perl-dbd-mysql unixodbc php-pdo mysql-server

php-mysql php-mbstring php-gd httpd webmin-1.500-1.noarch.rpm

-----------------------------------------------------------

начальные строки команды ./build - весь конфиг приаттачен

Checking endianess... Little Endian
Checking for -lexpat... yes
Checking for -lfbclient... no
Checking for mysql_config... yes
Checking for mysql_config --cflags...

Ни каких особенностей не замечено, однако после сборки make install

в директории /etc/stargazer не появились last first

и самое главное в /sbin/ сам файл stargazer

Как можно прокомментировать - исправить?

build.zip

Ссылка на сообщение
Поделиться на других сайтах

А кто такие эти first и last

понятия не имею -такое появилось при установке предыдущей версии для CentOS

почему stargazer должен быть в /sbin а не в /usr/sbin?

Вот, вот вполне логично.

Понятно, что инструкция на сайте для старой версии(2), может быть пора написать новый ман,

а на первое время подкорректировать и исправить существующий?

В нижней части ПРИМЕР НАСТРОЙКИ СЕРВЕРА ПОД LINUX

Теперь остается поместить в /etc/rc.d/rc.local две строки (порядок строк важен!):
/etc/stargazer/fw
/sbin/stargazer
и можно считать, что настройка закончена.

Ссылка на сообщение
Поделиться на других сайтах

На сайте мануал для версии 2.0

Мануал для версии 2.4 в PDF (stargazer_help_v2.13.pdf).

Существующий корректировать и исправлять не нужно, т.к. он для версии 2.0.

Ссылка на сообщение
Поделиться на других сайтах

Скрипт не стартует

/var/log/stargazer.log

2010-01-25 16:16:29 -- ReadSettings error. Should be only one StoreModule.
2010-01-25 16:39:48 -- ReadSettings error. Should be only one StoreModule.
2010-01-25 17:16:21 -- ReadSettings error. Should be only one StoreModule.

stargazer.conf

# Имя лог-файла куда пишутся события
LogFile = /var/log/stargazer.log

# Имя PID-файла куда пишется идентификатор процесса
# По умолчанию /var/run/pid
# PIDFile = /var/run/stargazer.pid

# Имя файла в котором определяются правила подсчета трафика
Rules = /etc/stargazer/rules

# Время через которое пишется d БД детальная статистика пользователя
# Значения: 1, 1/2, 1/4, 1/6.
# 1 - раз в чаc, 1/2 - раз в пол часа, 1/4 - раз в 15 мин, 1/6 - раз в 10 мин
DetailStatWritePeriod=1/6

# Периодичность записи записи в БД информации о статистике пользователя (минуты)
# При большом кол-ве пользователей эту величину стоит увеличить, т.к.
# запись в БД может занимать длительное время.
# Значения: 1...1440 (минуты)
StatWritePeriod = 10

# День снятия абонплаты
# Значения: 0...31. 0 - Последний день месяца
DayFee = 1

# Абонплата снимается в последний (yes) или первый (no) день учетного периода.
# Это влияет на то, как будет снята абонплата (АП) при переходе на новый тариф.
# Если у пользователя был тариф A с АП=100 и он хочет перейти на тариф B с АП=200,
# то при переходе на новый тариф со счета пользователя снимется 100, если
# DayFeeIsLastDay = yes и 200, если DayFeeIsLastDay = no
DayFeeIsLastDay = yes

# День сброса данных о трафике за месяц и день перехода пользователей на новые тарифы
# Значения: 0...31. 0 - Последний день месяца
DayResetTraff = 1

# "Размазанное" снятие абонплаты. Снятие АП не раз в месяц, а каждый
# день 1/30 или 1/31 части АП
# Значения: yes, no
SpreadFee = no

# Данная опция определяет может ли пользователь получить доступ в интерент
# если у него на счету нет денег, но остался предоплаченный трафик
# Значения: yes, no
FreeMbAllowInet = no

# Эта опция определяет что будет писаться в стоимость трафика в detail_stat.
# Если у пользователя еще есть предоплаченный трафик и WriteFreeMbTraffCost = no,
# то в detail_stat стоимость будет 0. Если у пользователя уже нет
# предоплаченного трафика и WriteFreeMbTraffCost = no, то в detail_stat
# будет записана стоиость трафика. При WriteFreeMbTraffCost = yes стоимость
# трафика будет записана в любом случае.
WriteFreeMbTraffCost = no

# Необязательный параметр. Указывает снимать полную абонплату у пользователя даже
# если он быз заморожен только часть учетного периода.
# По умолчанию установлен в no
# FullFee=no

# Необязательный параметр указывающий показывать на счету и позволять 
# использовать пользователю абонплату. По умолчанию установлен в yes
# ShowFeeInCash=yes

# Названия направлений. Направления без названий не будут отображаться в
# авторизаторе и конфигураторе. Названия состоящие из нескольких слов должны
# быть взяты в кавычки
<DirNames>
   DirName0 = Локаль
   DirName1 = Город
   DirName2 = Мир
   DirName3 =
   DirName4 =
   DirName5 = "Локальные игры"
   DirName6 =
   DirName7 =
   DirName8 =
   DirName9 =
</DirNames>

# Кол-во запускаемых процессов stg-exec.
# Эти процессы отвечают за выполнение скриптов OnConnect, OnDisconnect, ...
# Кол-во процессов означает сколько скриптов могут выполнятся одновременно.
# Значения: 1...1024
ExecutersNum = 1

# Message Key для stg-exec.
# Идентификатор очереди сообщений для выполнятеля скриптов.
# Его изменение может понадобится если есть необходимость запустить несколько
# экземпляров stg. Если вы не понимаете, что это, не трогайте этот параметр!
# Значения: 0...2^32
# Значение по умолчанию: 5555
# ExecMsgKey = 5555

# Путь к директории, в которой находятся модули сервера
ModulesPath = /usr/lib/stg

# Определяет директорию, в которой будут находится файлы "монитора"
# работы сервера. В этой директории будут созданы пустые файлы, время 
# модификации которых будет меняться примерно раз в минуту. Если какой-то 
# компонент сервера зависнет, файл(ы) перестанет обновлятся, и по этому 
# признаку можно определить сбой в работе сервера и при надобности 
# перезапустить. Если параметр не указан или пустой, мониторинг производится 
# не будет. Параметр не является обязательным, по умолчанию пустой.
# MonitorDir=/var/stargazer/monitor

# Store module
# Настройки плагина работающего с БД сервера

# Второй параметр - это имя модуля без mod_ в начале и .so в конце
# Т.е. полное имя модуля mod_store_files.so
<StoreModule store_files>

   # Рабочая директория сервера, тут содержатся данные о тарифах, пользователях,
   # администраторах и т.д.
   WorkDir = /var/stargazer


   # Владелец, группа и права доступа на файлы статистики (stat) пользователя
   ConfOwner = root
   ConfGroup = root
   ConfMode = 600


   # Владелец, группа и права доступа на файлы конфигурации (conf) пользователя
   StatOwner = root
   StatGroup = root
   StatMode = 640

   # Владелец, группа и права доступа на лог-файлы (log) пользователя
   UserLogOwner = root
   UserLogGroup = root
   UserLogMode = 640

   # Удалять резервные копии после успешной записи conf/stat
   # Значения: yes, no
   # По умолчанию: yes
   # RemoveBak = yes

   # Восстанавливать файлы conf/stat из резервных копий при ошибке чтения
   # Значения: yes, no
   # По умолчанию: no
   # ReadBak = no

</StoreModule>

<StoreModule store_mysql>
   # Имя пользователя БД
   dbuser = stg

   # Пароль пользователя БД
   rootdbpass = 123456

   # Имя БД на сервере
   dbname = stg

   # Адрес сервера БД
   dbhost = localhost
</StoreModule>

# Прочие модули

<Modules>

   # Настройки плагина авторизации Always Online "mod_auth_ao.so"
   # Второй параметр - это имя модуля без mod_ в начале и .so в конце
   # Т.е. полное имя модуля mod_auth_ao.so
   <Module auth_ao>
   </Module>



   # Настройки плагина авторизации InetAccess "mod_auth_ia.so"
   # Второй параметр - это имя модуля без mod_ в начале и .so в конце
   # Т.е. полное имя модуля mod_auth_ia.so
   <Module auth_ia>

       # Порт на котором принимаются обращения от авторизатора
       # Значения: 1...65534
       Port = 5555


       # Время между посылками запроса пользователю жив ли он
       # и обновлением данных статистики (секунды)
       # Значения: 5...600
       UserDelay = 15


       #Таймаут для пользователя. Если в течение этого времени авторизатор
       #не отвечает, пользователь будет отключен
       # Значения: 15...1200
       UserTimeout = 65


       # Этот параметр определяет что будет передаваться программе InetAccess от сервера
       # как отстаток предоплаченного трафика
       # Значения:
       # FreeMb = 0 - кол-во бесплатных мегабайт в пресчете на цену нулевого направления
       # FreeMb = 1 - кол-во бесплатных мегабайт в пресчете на цену первого направления
       # FreeMb = 2 - кол-во бесплатных мегабайт в пресчете на цену второго направления
       # FreeMb = 3 - кол-во бесплатных мегабайт в пресчете на цену третьего направления
       # ........................
       # FreeMb = 9 - кол-во бесплатных мегабайт в пресчете на цену девятого направления
       # FreeMb = cash - кол-во денег на которые юзер может бесплатно качать
       # FreeMb = none - ничего не передавать
       FreeMb = cash

   </Module>



   # Модули можно использовать несколько раз с разными параметрами
   #<Module auth_ia>
   #    Port = 7777
   #    UserDelay = 15
   #    UserTimeout = 65
   #    FreeMb = 0
   #</Module>



   # Настройки модуля конфигурации SgConfig "mod_conf_sg.so"
   # Второй параметр - это имя модуля без mod_ в начале и .so в конце
   <Module conf_sg>

       # Порт по которому сервер взаимодействует с конфигуратором
       # Значения: 1...65535
       Port = 5555

</Module>



   # Модуль захвата трафика "mod_cap_ether.so"
   # Второй параметер - это имя модуля без mod_ в начале и .so в конце
   # Без параметров. Только имя модуля.
   <Module cap_ether>
       # Модуль без параметров
   </Module>

   # Модуль захвата трафика "mod_cap_nf.so"
   # Принимает информацию о трафике по протоколу NetFlow
   # Второй параметер - это имя модуля без mod_ в начале и .so в конце
   <Module cap_nf>
       # TCPPort - порт для TCP-соединений
       TCPPort = 42111

       # UDPPort - порт для UDP-соединений
       UDPPort = 42111

       # Могут иметь совпадающие значения.
       # Если параметр не указан - соответствующий порт не "прослушивается".
   </Module>



   # Настройки модуля пингующего пользователей "mod_ping.so"
   # Второй параметр - это имя модуля без mod_ в начале и .so в конце
   <Module ping>

       # Время, в секундах, между пингами одного и того же пользователя
       # Значения: 10...3600
       PingDelay = 15

   </Module>

</Modules>

[root@stg vitiv]# ps x | grep stargazer
3680 pts/3    S+     0:00 grep stargazer

Ссылка на сообщение
Поделиться на других сайтах
Should be only one StoreModule

уберите одно из хранилищ.

закомментировал mysql - оставил файловую БД для последующей настройки шейпера

есть контакт, благодарю!

Ссылка на сообщение
Поделиться на других сайтах

В сборке Stargazer(a) присутсвуют скрипты для shaper

OnConnect

#!/bin/bash

int_iface=eth1

# Login
LOGIN=$1

#user IP
IP=$2

#cash
CASH=$3

#user ID
ID=$4

#Selected dirs to connect
DIRS=$5

default_speed=32kbit

# =========== shaping by tariff ===========
#tariff=$(grep -i "^tariff=" /var/stargazer/users/$LOGIN/conf | cut -f 2 -d"=")
#echo "tariff=$tariff" > /var/stargazer/users/$LOGIN/connect.log
#case $tariff in
#    minimum)  speedkb=128kbit;;  # 128 kbit
#    middle)   speedkb=256kbit;;  # 256 kbi
#    maximum)  speedkb=512kbit;;	 # 512 kbit
#    *)        speedkb=$default_speed;;  # default speed
#esac
# ========= shaping by tariff end ========= 

# ========= shaping by userdata0 ==========
speedR=$(grep -i "^Userdata0=" /var/stargazer/users/$LOGIN/conf | cut -f 2 -d"=")
speed=$(echo $speedR | grep "^[0-9]*[0-9]$")

if [ -z "$speed" ] 
then
   speedkb=$default_speed
else
   speedkb="$speed"kbit
fi
# ======= shaping by userdata0 end ========

declare -i mark=$ID+10

echo "$mark" > /var/stargazer/users/$LOGIN/shaper_mark
echo "$speedkb" > /var/stargazer/users/$LOGIN/shaper_rate

/sbin/iptables -t mangle -A FORWARD -d $IP -j MARK --set-mark $mark

tc class add dev $int_iface parent 1:1 classid 1:$mark htb rate $speedkb burst 40k
tc filter add dev $int_iface parent 1: protocol ip prio 3 handle $mark fw classid 1:$mark

OnDisconnect

#!/bin/bash

int_iface=eth1

# Login
LOGIN=$1

#user IP
IP=$2

#cash
CASH=$3

#user ID
ID=$4

#Selected dirs to disconnect
DIRS=$4

mark=$(cat /var/stargazer/users/$LOGIN/shaper_mark)
rate=$(cat /var/stargazer/users/$LOGIN/shaper_rate)

if [ -n "$mark" ]
then
   /sbin/iptables -t mangle -D FORWARD -d $IP -j MARK --set-mark $mark
   while [ $? == 0 ]
   do
    /sbin/iptables -t mangle -D FORWARD -d $IP -j MARK --set-mark $mark
   done
fi

tc filter del dev $int_iface parent 1: protocol ip prio 3 handle $mark fw classid 1:$mark
tc class del dev $int_iface parent 1:1 classid 1:$mark htb rate $rate burst 40k

echo "D `date +%Y.%m.%d-%H.%M.%S` $IP $CASH" >> /var/stargazer/users/$LOGIN/connect.log

shaper.sh

#!/bin/bash

int_iface=eth1

/sbin/iptables -t mangle --flush

tc qdisc add dev $int_iface root handle 1: htb
tc class add dev $int_iface parent 1: classid 1:1 htb rate 100mbit ceil 100mbit burst 200k

shaper.stop.sh

#!/bin/bash

int_iface=eth1

# Login
LOGIN=$1

#user IP
IP=$2

#cash
CASH=$3

#user ID
ID=$4

#Selected dirs to disconnect
DIRS=$4

mark=$(cat /var/stargazer/users/$LOGIN/shaper_mark)
rate=$(cat /var/stargazer/users/$LOGIN/shaper_rate)

if [ -n "$mark" ]
then
   /sbin/iptables -t mangle -D FORWARD -d $IP -j MARK --set-mark $mark
   while [ $? == 0 ]
   do
    /sbin/iptables -t mangle -D FORWARD -d $IP -j MARK --set-mark $mark
   done
fi

tc filter del dev $int_iface parent 1: protocol ip prio 3 handle $mark fw classid 1:$mark
tc class del dev $int_iface parent 1:1 classid 1:$mark htb rate $rate burst 40k

echo "D `date +%Y.%m.%d-%H.%M.%S` $IP $CASH" >> /var/stargazer/users/$LOGIN/connect.log

Описание для запуска

Настройка шейпера для STG в Linux.

Настройка сводится к указанию сетевого интерфейса, обращенного к пользователю 
в скриптах shaper.sh, shaper.stop.sh, OnConnect и OnDisconnect, и уточнению 
скоростоей и тарифов в скрипте OnConnect (если нужно).

Скрипты сделаны для БД на файлах, однако, сделать их для БД на Firebird или 
MySQL не составит большого труда.

В OnConnect есть два типа шейпинга.
1. На основании тарифа. Т.е. для каждого тарифа у задана скорость и задано 
дефолтное значение, на случай отсутсвия тарифа в списке скоростей или 
забывчивости админа.
2. На основании Userdata0. В этом поле просто прописывается число равное 
скорости в kbit/sec. Также есть дефолтное значение скорости в 32 kbit/sec 
на случай отсутсвия в Userdata0 корректного значения.

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

# ========= shaping by tariff ==========
.........
# ======= shaping by tariff end ========

и

# ========= shaping by userdata0 ==========
.........
# ======= shaping by userdata0 end ========


и нужную часть расскоментировать, если она закомментрована.

Скрипт shaper.sh должен быть выполнен один раз при загрузке системы.

Интерфейс обращенный к пользователю определяется в переменной
int_iface= 
(присутствует во всех 4-х файлах shaper.sh, shaper.stop.sh, OnConnect и 
OnDisconnect !!!)

Скорость по умолчанию в OnConnect в переменной default_speed

Зависимость скорости от тарифа задается в следующем фрагменте кода:
case $tariff in
   minimum)  speedkb=128kbit;;
   middle)   speedkb=256kbit;;
   maximum)  speedkb=512kbit;;
   *)        speedkb=$default_speed;;
esac

Т.е. тут нужно вместо minimum, ... maximum подставить имена ваших тарифов 
и соотв. скорость. Пользователи с тарифами не указанными в списке будут иметь 
дефолтную скорость.

Скорость ограничивается только для входящего тарафика, однако расширить 
эти скрипты для исходящего не составит труда.

судя из описания мой сетевой eth1 - при коннекте авторизатором пользователь не поднимает OnConnect

если запустить OnConnect принудительно, то -

[root@stg stargazer]# /etc/stargazer/OnConnect foo 192.168.1.35
grep: /var/stargazer/users/foo/conf: Нет такого файла или каталога
/etc/stargazer/OnConnect: line 47: /var/stargazer/users/foo/shaper_mark: Нет такого файла или каталога
/etc/stargazer/OnConnect: line 48: /var/stargazer/users/foo/shaper_rate: Нет такого файла или каталога
/etc/stargazer/OnConnect: line 52: tc: команда не найдена
/etc/stargazer/OnConnect: line 53: tc: команда не найдена
[root@stg stargazer]# /sbin/iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

файлы conf shaper_mark shaper_rate у пользователя создались

необходим рабочий вариант удобного шейпера - прокомментируйте пожалуйста...

 

p/s в принципе второй вариант по описанию подошёл бы

Ссылка на сообщение
Поделиться на других сайтах

исправил направление к файлу tc

/sbin/tc ...

запуск /etc/stargazer/fw

[root@stg vitiv]# /sbin/iptables -nL
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            127.0.0.1           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  192.168.1.0/24       192.168.1.5         tcp dpt:53 
ACCEPT     udp  --  192.168.1.0/24       192.168.1.5         udp dpt:53 
ACCEPT     tcp  --  192.168.1.0/24       192.168.1.5         tcp dpt:5555 
ACCEPT     udp  --  192.168.1.0/24       192.168.1.5         udp spt:5555 dpt:5555 

Chain FORWARD (policy DROP)
target     prot opt source               destination         

Chain OUTPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  127.0.0.1            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  192.168.1.5          192.168.1.0/24      tcp spt:53 
ACCEPT     udp  --  192.168.1.5          192.168.1.0/24      udp spt:53 
ACCEPT     tcp  --  192.168.1.5          192.168.1.0/24      tcp spt:5555 
ACCEPT     udp  --  192.168.1.5          192.168.1.0/24      udp dpt:5555 
[root@stg vitiv]# /sbin/iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  139.0.0.0/24         0.0.0.0/0           
MASQUERADE  all  --  0.0.0.0/0            139.0.0.0/24        
MASQUERADE  all  --  192.168.1.0/24       0.0.0.0/0           
MASQUERADE  all  --  0.0.0.0/0            192.168.1.0/24      

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination 

запуск /etc/stargazer/shaper.sh

 

запуск /etc/stargazer/OnConnect a 192.168.1.35

[root@stg vitiv]# /etc/stargazer/OnConnect a 193.168.1.35
grep: /var/stargazer/users/a/conf: Нет такого файла или каталога
/etc/stargazer/OnConnect: line 47: /var/stargazer/users/a/shaper_mark: Нет такого файла или каталога
/etc/stargazer/OnConnect: line 48: /var/stargazer/users/a/shaper_rate: Нет такого файла или каталога

 

[root@stg vitiv]# /sbin/iptables -nL
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            127.0.0.1           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  192.168.1.0/24       192.168.1.5         tcp dpt:53 
ACCEPT     udp  --  192.168.1.0/24       192.168.1.5         udp dpt:53 
ACCEPT     tcp  --  192.168.1.0/24       192.168.1.5         tcp dpt:5555 
ACCEPT     udp  --  192.168.1.0/24       192.168.1.5         udp spt:5555 dpt:5555 

Chain FORWARD (policy DROP)
target     prot opt source               destination         

Chain OUTPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     all  --  127.0.0.1            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     tcp  --  192.168.1.5          192.168.1.0/24      tcp spt:53 
ACCEPT     udp  --  192.168.1.5          192.168.1.0/24      udp spt:53 
ACCEPT     tcp  --  192.168.1.5          192.168.1.0/24      tcp spt:5555 
ACCEPT     udp  --  192.168.1.5          192.168.1.0/24      udp dpt:5555 
[root@stg vitiv]# /sbin/iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  139.0.0.0/24         0.0.0.0/0           
MASQUERADE  all  --  0.0.0.0/0            139.0.0.0/24        
MASQUERADE  all  --  192.168.1.0/24       0.0.0.0/0           
MASQUERADE  all  --  0.0.0.0/0            192.168.1.0/24      

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Интерфейс 192.168.1.35 не появился

Ссылка на сообщение
Поделиться на других сайтах

Интерфейс 192.168.1.35 не появился

 

С каких пор 192.168.1.35 это интерфейс?

И с какого перепугу правила tc выводят через iptables? :(

Ссылка на сообщение
Поделиться на других сайтах
С каких пор 192.168.1.35 это интерфейс?

Может неправильно выразился - это клиентская машина

IP 192.168.1.35
Mask 255.255.255.0
GW 192.168.1.5
DNS 192.168.1.5

И с какого перепугу правила tc выводят через iptables? :(

по порядку показан ручной старт файлов -видимых проблем как бы нет, коннект авторизатором клиента есть

вывод iptables проверка - клиента в таблице нет...

В данный момент OnConnect имеет вот такой вид:

#!/bin/bash

int_iface=eth1

# Login
LOGIN=$1

#user IP
IP=$2

#cash
CASH=$3

#user ID
ID=$4

#Selected dirs to connect
DIRS=$5

echo "C `date +%Y.%m.%d-%H.%M.%S` $IP $CASH" >> /var/stargazer/users/$LOGIN/connect.log

default_speed=32kbit

# ========= shaping by userdata0 ==========
speedR=$(grep -i "^Userdata0=" /var/stargazer/users/$LOGIN/conf | cut -f 2 -d"=")
speed=$(echo $speedR | grep "^[0-9]*[0-9]$")

if [ -z "$speed" ] 
then
   speedkb=$default_speed
else
   speedkb="$speed"kbit
fi
# ======= shaping by userdata0 end ========

declare -i mark=$ID+10

echo "$mark" > /var/stargazer/users/$LOGIN/shaper_mark
echo "$speedkb" > /var/stargazer/users/$LOGIN/shaper_rate

/sbin/iptables -t mangle -A FORWARD -d $IP -j MARK --set-mark $mark

/sbin/tc class add dev $int_iface parent 1:1 classid 1:$mark htb rate $speedkb burst 40k
/sbin/tc filter add dev $int_iface parent 1: protocol ip prio 3 handle $mark fw classid 1:$mark

OnDisconnect

#!/bin/bash

int_iface=eth1

# Login
LOGIN=$1

#user IP
IP=$2

#cash
CASH=$3

#user ID
ID=$4

#Selected dirs to disconnect
DIRS=$4

echo "C `date +%Y.%m.%d-%H.%M.%S` $IP $CASH" >> /var/stargazer/users/$LOGIN/connect.log

mark=$(cat /var/stargazer/users/$LOGIN/shaper_mark)
rate=$(cat /var/stargazer/users/$LOGIN/shaper_rate)

if [ -n "$mark" ]
then
   /sbin/iptables -t mangle -D FORWARD -d $IP -j MARK --set-mark $mark
   while [ $? == 0 ]
   do
    /sbin/iptables -t mangle -D FORWARD -d $IP -j MARK --set-mark $mark
   done
fi

/sbin/tc filter del dev $int_iface parent 1: protocol ip prio 3 handle $mark fw classid 1:$mark
/sbin/tc class del dev $int_iface parent 1:1 classid 1:$mark htb rate $rate burst 40k

shaper.sh

#!/bin/bash

int_iface=eth1

/sbin/iptables -t mangle --flush

/sbin/tc qdisc add dev $int_iface root handle 1: htb
/sbin/tc class add dev $int_iface parent 1: classid 1:1 htb rate 100mbit ceil 100mbit burst 200k

и т.д...

Ссылка на сообщение
Поделиться на других сайтах

Сервер:

WAN
IP 139.0.0.5
Mask 255.255.255.0
GW 139.0.0.1
DNS 139.0.0.1
------------------
LAN
IP 192.168.1.5
Mask 255.255.255.0

Для рассмотрения используемые на данный момент файлы из /etc/stargazer

myfiles.zip

Ссылка на сообщение
Поделиться на других сайтах

Судя по скриптам онконнект и ондисконнект - используешь те скрипты, что я выкладывал - стукни в аську 16шесть8четыре28три8 помогу разобраться.

Ссылка на сообщение
Поделиться на других сайтах

Судя по скриптам онконнект и ондисконнект - используешь те скрипты, что я выкладывал - стукни в аську 16шесть8четыре28три8 помогу разобраться.

я в онлайн постоянно - попытаюсь достучаться :(

может ещё кто-нибудь прокомментирует происходящее? :(

Ссылка на сообщение
Поделиться на других сайтах
  • 1 year later...

kak yctanovit paket libexpat-1.95.5-alt1.i586.rpm ???? help!!!!

rpm -Uhv libexpat-1.95.5-alt1.i586.rpm

 

PS а чего в теме про CentOS, вопрос по пакет с Альта?

если дистр rh-based - то надо yum install libexpat

Ссылка на сообщение
Поделиться на других сайтах

kak yctanovit paket libexpat-1.95.5-alt1.i586.rpm ???? help!!!!

rpm -Uhv libexpat-1.95.5-alt1.i586.rpm

 

PS а чего в теме про CentOS, вопрос по пакет с Альта?

если дистр rh-based - то надо yum install libexpat

Наверное потому что ТС поставил на CentOS пакет из ALT'а :rolleyes:

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...