Все ленты — последние статьи

Darkstat: учет трафика на Linux (с примером для пользователей Ubuntu)

Darkstat — небольшой и эффективный сниффер пакетов, позволяющий вам без особой головной боли учитывать на своей Linux-машине сетевой трафик. Darkstat имеет встроенный веб-сервер, обращаясь к которому вы получите довольно подробную статистику о потраченных вами кило-, мега- или гигабайтах.

Для того чтобы получить пакет darkstat воспользуйтесь synaptic-ом или наберите в терминале:

$ sudo apt-get install darkstat

 

введите пароль, если потребуется подтвердите (Да/Yes) установку пакета. Установится версия 2.6, но на данный момент на официальном сайте программы, доступна версия 3.0.707

После установки darkstat на вашу машину, надо кое-что поправить в вашем любимом Ubuntu ручками o_O
Итак, запускается darkstat командой:

$ darkstat -i eth0

в данном случае: -i eth0 — означает какой интерфейс “слушать” для сбора статистики (если у вас нужно считать другой интерфейс — укажите его)

Но если вы запустите эту команду в терминале, у вас может ничего не получиться, дело в том, что запускать darkstat можно только из под суперпользователя (su, sudo), иначе настройки безопасности просто не позволят ему запуститься.

Согласитесь, это не слишком удобно, каждый раз при входе в сеанс запускать терминал, и отдавать команду из-под суперпользователя? Статистика должна считаться не требуя от вас ежедневного запуска программы.

Поэтому нам надо автоматизировать процесс, то есть прописать запуск этой команды в /etc/rc.local

открываем терминал:

$ sudo gedit /etc/rc.local

редактируем файл и добавим до exit 0 пару строк: (“darkstat -i eth0″ и “echo darkstat is loading…” ):

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will “exit 0″ on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

darkstat -i eth0
echo darkstat is loading…

exit 0

Есть еще один момент, ваш хост с Ubuntu скорее всего (если вы сами ничего не меняли и в сети у вас стоит DHCP-сервер) автоматически получает ip-адрес по DHCP — что опять же, вызовет определенные проблемы для нормального старта darkstat из rc.local. Тут можно жестко/вручную назначать ip-адрес, но возможно вы испытываете определенные затруднения с назначением ip-адреса через графический nm-applet (Приложение “Сеть”), я честно говоря привык все делать руками, поэтому привожу пример.

Надо вручную поправить файл /etc/network/interfaces :

$ sudo gedit /etc/network/interfaces

У меня он выглядит так:

auto lo
iface lo inet loopback

iface eth0 inet static
address 192.168.1.3
netmask 255.255.255.0
gateway 192.168.1.1
auto eth0

вторая часть как раз описывает сетевой интерфейс eth0, если вы не знаете что означают эти переменные, лучше ничего не меняйте, а найдите и прочитайте какую-нибудь статью по основам настройки локальных сетей. Если вы знаете, что такое ip-адрес, маска сети, шлюз, то можете спокойно заполнять их своими данными.

Соответственно, раз вы теперь не получаете адрес по DHCP, нужно вручную внести DNS в файл /etc/resolv.conf

$ sudo gedit /etc/resolv.conf

# generated by NetworkManager, do not edit!
nameserver aaa.bbb.ccc.ddd
nameserver aaa.bbb.ccc.ddd

Несмотря на устрашающую надпись “не правьте”, вам следует добавить вместо aaa.bbb.ccc.ddd ip-адреса вашего первичного и вторичного серверов имен (DNS).

После всех правок настроек (теперь вы знаете где хранятся файлы с настройками сети в Ubuntu :) , можно перезагружать систему.

Узнать, что все заработало и посмотреть статистику можно если в браузере ввести адрес http://localhost:666/