Вы здесь

Учёт трафика

Вобщем проблема такая:

У меня дома интернет через ADSL. Оплата по трафику. Поэтому этот самый трафик нудно как-то считать.

Как это лучше всего делать? Каким пакетом. И если не трудно - сразу приводите реально примеры. Просто не хватает времени на разбор в документации.

Как вариант, для учета http трафика, можно использовать локальную проксю - squid, она и трафик немного сбережет и потом логи можно анализировать с помощью sarge. Он сгенерит html страничку со всей статистикой. Настраивается squid не сложно, по примерам в конфиге разобраться реально, а потом в браузере пропишешь прокси сервером себя (127.0.0.1:3128).

Нужно подсчитывать весь трафик. А не только http.

Мне по работе часто бывает нужен telnet и SSH

Этоже элементарно:
http://www.netams.com

Весь трафик с сетевой: vnstat
Более гибкие коллекторы и в мускул: pmacct

Могу предолжить следующий совершенно тупой вариант: Если стоит gkrellm, то тогда в общем-то больше ничего и не надо :-) Если навести курсор на график, отображающий сетевую активность, то появляется маленькая кнопочка --- на неё нажимаешь и смотришь статистику.

Этот вариант точно не катит:)

Написал вот такой скрипт:

#!/bin/sh
iptables -F
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j LOG
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -P INPUT DROP
/etc/init.d/iptables save

оно вроде как весь мой траф пишет в логи. На двенадцатую консоль. Остался вопрос: Как эти логи собирать и обрабатывать?

Вы представляете обьем информации которая будет туда сыпаться?? Это какой-то извращенный метод сбора статистики, по-моему лучше использовать средства изначально для этого предназначенные, как-то Netflow. Хотя возможно это решение покажется несколько громоздким.
Подробнее: http://tula.bofh.ru/articles/383 , http://dreamcatcher.ru/docs/netflow_report.html

Если вы всё-таки хотите идти своим путем, то в сети много примеров скриптов (в основном на перле) и программ, которые парсят информацию из логов iptables и выдают ее в более-менее читабельном виде.

Насколько я знаю netflow ставиться на роутере. Здесь же речь идёт об учёте трафика на локальной машине. По условиям задачи за её пределы выходить нельзя.

Вы в каком виде хотите свою статистику видеть? html? За какой-то период или на текущий момент? по портам или только общий трафик?

Если я не ошибаюсь в Iptables предусмотрена статистика, там есть счетчики, показывающие сколько пакетов подошло под правило и их суммарный объем. Соответственно надо создать правила, под которые попадает весь входящий трафик, но которые ничего не далают, а потом смотреть
iptables -Lv
А еще какой-то ключ отвечает за сброс этих счетчиков.

Мне б пример таких правил.. Я пробовал это. Просто у меня вообще запредеельныы цифры почему-то получались....

Нашёл-таки решение которое меня удовлетворило:

команда ifconfig кроме всего прочем выводит инфу о входящем и исходящем трафике через интерфейс. Поскольку я подключаюсь при включении компьютера а отключаюс при выключении, то мне достаточно перед выключением сохранять информацию о трафе.Для этого я просто дописал в /etc/conf.d/local.stop вот такую строчку:

/sbin/ifconfig eth0 |grep bytes >> /var/log/internet.log

В выходные скорее всего напишу простенький скрипт для суммирования трафика. Если справлюсь то само собой приведу его листинг здесь.

Твой подход с ifconfig - не совсем верный...
Я например еще иногда хожу настроить свой ADSL-модем (Dynamix UMA+)
а там очень навароченая картинками веб-морда.... меньше 1-2 мега за настройку не приходилось видеть трафика....