vitiv 1 Опубликовано: 2010-01-25 10:32:05 Share Опубликовано: 2010-01-25 10:32:05 Для компиляции 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 Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубликовано: 2010-01-25 11:12:09 Share Опубликовано: 2010-01-25 11:12:09 А кто такие эти first и last и почему stargazer должен быть в /sbin а не в /usr/sbin? Ссылка на сообщение Поделиться на других сайтах
vitiv 1 Опубликовано: 2010-01-25 11:33:06 Автор Share Опубликовано: 2010-01-25 11:33:06 А кто такие эти first и last понятия не имею -такое появилось при установке предыдущей версии для CentOS почему stargazer должен быть в /sbin а не в /usr/sbin? Вот, вот вполне логично. Понятно, что инструкция на сайте для старой версии(2), может быть пора написать новый ман, а на первое время подкорректировать и исправить существующий? В нижней части ПРИМЕР НАСТРОЙКИ СЕРВЕРА ПОД LINUX Теперь остается поместить в /etc/rc.d/rc.local две строки (порядок строк важен!): /etc/stargazer/fw /sbin/stargazer и можно считать, что настройка закончена. Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубликовано: 2010-01-25 12:38:57 Share Опубликовано: 2010-01-25 12:38:57 На сайте мануал для версии 2.0 Мануал для версии 2.4 в PDF (stargazer_help_v2.13.pdf). Существующий корректировать и исправлять не нужно, т.к. он для версии 2.0. Ссылка на сообщение Поделиться на других сайтах
vitiv 1 Опубликовано: 2010-01-25 14:01:39 Автор Share Опубликовано: 2010-01-25 14:01:39 Ок, спасибо, учёл Ссылка на сообщение Поделиться на других сайтах
vitiv 1 Опубликовано: 2010-01-25 15:56:01 Автор Share Опубликовано: 2010-01-25 15:56:01 Скрипт не стартует /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 Ссылка на сообщение Поделиться на других сайтах
vitiv 1 Опубликовано: 2010-01-25 16:00:14 Автор Share Опубликовано: 2010-01-25 16:00:14 Скрин установленных модулей Ссылка на сообщение Поделиться на других сайтах
Serjio 19 Опубликовано: 2010-01-25 16:03:39 Share Опубликовано: 2010-01-25 16:03:39 Should be only one StoreModule уберите одно из хранилищ. Ссылка на сообщение Поделиться на других сайтах
vitiv 1 Опубликовано: 2010-01-25 16:32:39 Автор Share Опубликовано: 2010-01-25 16:32:39 Should be only one StoreModule уберите одно из хранилищ. закомментировал mysql - оставил файловую БД для последующей настройки шейпера есть контакт, благодарю! Ссылка на сообщение Поделиться на других сайтах
vitiv 1 Опубликовано: 2010-01-25 20:29:04 Автор Share Опубликовано: 2010-01-25 20:29:04 В сборке 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 в принципе второй вариант по описанию подошёл бы Ссылка на сообщение Поделиться на других сайтах
vitiv 1 Опубликовано: 2010-01-25 23:03:51 Автор Share Опубликовано: 2010-01-25 23:03:51 исправил направление к файлу 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 не появился Ссылка на сообщение Поделиться на других сайтах
Serjio 19 Опубликовано: 2010-01-25 23:30:36 Share Опубликовано: 2010-01-25 23:30:36 Интерфейс 192.168.1.35 не появился С каких пор 192.168.1.35 это интерфейс? И с какого перепугу правила tc выводят через iptables? Ссылка на сообщение Поделиться на других сайтах
vitiv 1 Опубликовано: 2010-01-26 08:46:42 Автор Share Опубликовано: 2010-01-26 08:46:42 С каких пор 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 и т.д... Ссылка на сообщение Поделиться на других сайтах
vitiv 1 Опубликовано: 2010-01-26 09:20:11 Автор Share Опубликовано: 2010-01-26 09:20:11 Сервер: 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 Ссылка на сообщение Поделиться на других сайтах
DarkSpider 36 Опубликовано: 2010-01-26 09:49:17 Share Опубликовано: 2010-01-26 09:49:17 Судя по скриптам онконнект и ондисконнект - используешь те скрипты, что я выкладывал - стукни в аську 16шесть8четыре28три8 помогу разобраться. Ссылка на сообщение Поделиться на других сайтах
vitiv 1 Опубликовано: 2010-01-26 10:16:55 Автор Share Опубликовано: 2010-01-26 10:16:55 Судя по скриптам онконнект и ондисконнект - используешь те скрипты, что я выкладывал - стукни в аську 16шесть8четыре28три8 помогу разобраться. я в онлайн постоянно - попытаюсь достучаться может ещё кто-нибудь прокомментирует происходящее? Ссылка на сообщение Поделиться на других сайтах
vitiv 1 Опубликовано: 2010-01-27 09:25:22 Автор Share Опубликовано: 2010-01-27 09:25:22 для полного контакта могу к серверу дать доступ по ssh Ссылка на сообщение Поделиться на других сайтах
seredin.max 0 Опубликовано: 2011-01-31 21:59:43 Share Опубликовано: 2011-01-31 21:59:43 kak yctanovit paket libexpat-1.95.5-alt1.i586.rpm ???? help!!!! Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубликовано: 2011-02-01 09:07:20 Share Опубликовано: 2011-02-01 09:07:20 kak yctanovit paket libexpat-1.95.5-alt1.i586.rpm ???? help!!!! man rpm Ссылка на сообщение Поделиться на других сайтах
keshaLG 5 Опубликовано: 2011-02-01 09:39:32 Share Опубликовано: 2011-02-01 09:39:32 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 Ссылка на сообщение Поделиться на других сайтах
keshaLG 5 Опубликовано: 2011-02-01 10:00:29 Share Опубликовано: 2011-02-01 10:00:29 man rpm +1 тоже хотел так ответить Ссылка на сообщение Поделиться на других сайтах
madf 279 Опубликовано: 2011-02-01 12:59:26 Share Опубликовано: 2011-02-01 12:59:26 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'а Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Создайте аккаунт или войдите в него для комментирования
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйтесь для получения аккаунта. Это просто!
Зарегистрировать аккаунтВойти
Уже зарегистрированы? Войдите здесь.
Войти сейчас