LinuxBegin.ru - offline-версия от 26.04.2004
Главная | Все темы | Все статьи | Ссылки | Аналоги Windows-программ в Linux | Top 20

ASPLinux 7.3 и GPRS USB
(Работа в Сети / браузеры / download / ..)


- Руслан Попов, 17.11.03, ts.kmc.ru, оригинал -

Введение

Данный материал создан на основе статьи на LinuxRSP с небольшими поправками и простой системой учёта трафика.

Настройка USB

При работе с USB устройствами необходимо убедиться, что в BIOS включена поддержка USB и разрешено выделение IRQ для USB. Это необходимо для автоматической подгрузки модулей ядра для USB устройств. Все необходимые модули для работы с USB кабелем Profilic 2303 (как раз для моего Siemens M50 подходит) в ASPLinux 7.3 уже есть.

По каким-то причинам, а может так и должно быть, у меня не появились устройства для работы с USB кабелем. Пришлось делать всё самому:

cd /dev/usb
mkdir tts
cd tts
mknod 0 c 188 0
mknod 0 c 188 1
chmod 666 *

Настройка PPPD

Переходим в каталог /etc/ppp/peers и создаём там файл с именем gprs со следующим текстом:
/dev/usb/tts/0 57600 noauth defaultroute usepeerdns updetach persist 
noipdefault lock connect '/usr/sbin/chat -v -f /etc/ppp/chat/gprs' 
novjccomp nopcomp noaccomp noipdefault nodeflate novj nobsdcomp
Теперь перейдём в каталог /etc/ppp/chat и создадим там файл с именем gprs со следующим текстом:
ABORT "ERROR"
ABORT "NO ANSWER" "" 'ATE1' OK AT+CGDCONT=1,"IP","internet.mts.ru" OK ATDT*99***1# CONNECT c
Содержимое данного файла я уточню сегодня вечером, в оригинальной статье были глюки :)

В файл /etc/resolv.conf надо добавить строчки для MTS'овских DNS серверов:
nameserver 213.87.0.1
nameserver 213.87.1.1
Использование

Для активации соединения по GPRS надо отдать команду:
/usr/sbin/pppd call gprs
Но так как пользоваться данной командой может только администратор (root), то её выполнение надо разрешить для пользователей.

Для этого надо выполнить несколько действий.

В каталоге /usr/local/bin создадим файл gprs со следующим кодом:
#!/bin/bash
if [ -f /var/run/ppp0.pid ]; then
    kill `cat /var/run/ppp0.pid`
else
    /usr/sbin/ppp0 call gprs
fi
Данный скрипт, вызываемый через иконку на рабочем столе с командой sudo /usr/local/bin/gprs и установленной галочкой "Выполнять в терминале", позволяет пользователю активировать и деактивировать соединение по GPRS простым нажатием на иконку.

Не забудьте прописать для каждого пользователя следующую строчку в файле /etc/sudoers:
username        ALL=/usr/local/bin/gprs

Учёт трафика

База данных

Статистику по утилизации GPRS проще всего хранить в базе данных. Для этого заведём новую базу данных:
CREATE DATABASE traffic;

И таблицу для статистики по утилизации:

CREATE TABLE gprs (
id smallint(5) unsigned NOT NULL auto_increment,
user varchar(16) NOT NULL default '',
download int(10) unsigned NOT NULL default '0',
upload int(10) unsigned NOT NULL default '0',
time datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (id)
) TYPE=MyISAM COMMENT='Трафик на GPRS';
Теперь дадим права на выборку и вставку записей:
GRANT insert, select ON traffic.* TO gprs@localhost IDENTIFIED BY "topsecret";
Усовершенствуем скрипт

После внесения изменения скрипт будет выглядеть следующим образом:
#!/bin/bash
# (c) 2003 Ruslan Popov aka RaD
# Скрипт для работы с GPRS
if [ -f /var/run/mysqld/mysqld.pid ]; then
    if [ -f /var/run/ppp0.pid ]; then
        echo "Kill GPRS connection..."
        STR=`/sbin/ifconfig ppp0 | grep "RX bytes"`
        DWN=`echo $STR | sed "s/.*RX bytes:(.*) (.*) *TX bytes:(.*) (.*/1/"`
        UPL=`echo $STR | sed "s/.*RX bytes:(.*) (.*) *TX bytes:(.*) (.*/2/"`
        echo "INSERT INTO traffic.gprs SET user='$SUDO_USER',download='$DWN',upload='$UPL',time=NOW()" |
            mysql -u gprs -ptopsecret
        kill `cat /var/run/ppp0.pid`
    else
        echo "Open GPRS connection..."
        /usr/sbin/pppd call gprs
        if [ `/sbin/route|grep "default.*ppp0"` == "" ]; then
            echo "Sets the default route..."
            /sbin/route add default gw 192.168.254.254
        fi
    fi
fi
А теперь небольшие пояснения. Первым делом проверяется наличие работающего демона базы данных, после этого проверяется открыто соединение по ppp0 или нет. Если открыто, то выполняется фаза отключения соедининия. При этом снимается статистика по трафику с интерфейса и помещается в базу данных. Если соединения нет, то оно создаётся. Дополнительно создаётся маршрут по умолчанию.

Думаю, всё очень просто.

Принимаются предложения по усовершенствованию...

Усовершенствование на базе /usr/sbin/tcpdump -q -p -nn -i eth0 -S -t -e

0:c:6e:41:c7:7f 0:8:2:f9:4b:61 66: 192.168.10.157.50324 > 192.168.10.84.8080: tcp 0 (DF)
0:8:2:f9:4b:61 0:c:6e:41:c7:7f 1514: 192.168.10.84.8080 > 192.168.10.157.50324: tcp 1448 (DF)
0:8:2:f9:4b:61 0:c:6e:41:c7:7f 78: 192.168.10.84.8080 > 192.168.10.157.50324: tcp 12 (DF)
0:c:6e:41:c7:7f 0:8:2:f9:4b:61 66: 192.168.10.157.50324 > 192.168.10.84.8080: tcp 0 (DF)


Надо переделать скрипт

Просмотров: 1474  |  Рейтинг статьи: 4.25 (Голосов: 4).
4.25
Дата размещения статьи: 2003-11-22 17:55:26



5 последних поступлений в раздел Работа в Сети / браузеры / download / ..:

07.02.04: Настройка PPTP клиента в Linux Mandrake-9.2 (Всё больше стала встречаться ситуация, когда пользователи стали выходить в интернет через VPN. И как ...)
11.01.04: Jabber в качестве корпоративного стандарта обмена сообщениями (Когда возникла необходимость в корпоративной системе быстрого обмена сообщениями (IM), в первую очере...)
22.12.03: Links, а не Opera - самый быстрый браузер на Земле. (Отображение страницы начинается РАНЬШЕ обработки html кода. То есть, сначала на экране появляется пор...)
18.12.03: Postfix за 10 минут (Postfix - агент доставки почты (Mail Transfer Agent, MTA). В этой статье мы не будем рассматривать на...)
10.12.03: Сказание о боге Джа (В первое время я воспринимал Jabber как продвинутый IM. Ну открытый протокол, ну расширяемый, распред...)

Комментарии:

LinuxBegin.ru © 2003-2004 Valery V. Kachurov | Условия использования материалов | О проекте