не подскажет ли всезнающий all, не написана ли уже такая программка/скрипт, которая подсчитывает количество и общий размер отправленных и принятых пакетов при сетевом обмене с определённым ip-адресом?
я понимаю, что можно записать трафик tshark-ом, а потом выковырнуть оттуда нужную информацию·
но почему-то кажется, что такие велосипеды уже имеются·
p.s. iptraf не устраивает, т.к. не имеет (или я плохо искал) фильтра по определённому ip-адресу, а без фильтра очень неудобно искать нужную информацию·
учёт сетевого обмена с определённым ip
Модераторы: /dev/random, Модераторы разделов
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
учёт сетевого обмена с определённым ip
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
KiWi
- Бывший модератор
- Сообщения: 2521
- Статус: статус, статус, статус
Re: учёт сетевого обмена с определённым ip
fprobe+flow-tools?
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: учёт сетевого обмена с определённым ip
если мне память не изменяет, это средства для учёта трафика, т.е. считаются только байты·
а мне нужно и количество пакетов, и количество tcp-соединений (кстати, совсем забыл про них упомянуть)·
но всё равно — спасибо·
видимо, придётся лень побороть и поколдовать с выдачей tshark-а…
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: учёт сетевого обмена с определённым ip
для памяти:
1. запускаем tshark для записи трафика:
2. останавливаем в нужный момент с помощью ^c
3. смотрим статистику:
если хочется всё уложить в одну строчку — задайте интервал, заведомо больший, чем время, в течение которого велась запись:
1. запускаем tshark для записи трафика:
Shell
$ sudo tshark -ni <интерфейс> host <хост> -w <файл>2. останавливаем в нужный момент с помощью ^c
3. смотрим статистику:
суммировать для интервалов по 0.5 секунды
$ shark -r <файл> -qz 'io,stat,0.5'
===================================================================
IO Statistics
Interval: 0.500 secs
Column #0:
| Column #0
Time |frames| bytes
000.000-000.500 10 1068
000.500-001.000 7 1387
===================================================================если хочется всё уложить в одну строчку — задайте интервал, заведомо больший, чем время, в течение которого велась запись:
суммировать для интервалов по 100 секунд
$ tshark -r <файл> -qz 'io,stat,100'
===================================================================
IO Statistics
Interval: 100.000 secs
Column #0:
| Column #0
Time |frames| bytes
000.000-100.000 17 2455
===================================================================Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
Nazyvaemykh
- Сообщения: 438
- Статус: Подопытный участник
Re: учёт сетевого обмена с определённым ip
А если использовать для этого ядро?
Например, -j LOG в iptables или что-то подобное. Это может иметь какие-то преимущества?
Например, -j LOG в iptables или что-то подобное. Это может иметь какие-то преимущества?
¡ Страсть к разрушению есть творческая страсть!
-
vr13
- Сообщения: 887
- ОС: gentoo
Re: учёт сетевого обмена с определённым ip
Nazyvaemykh писал(а): ↑11.02.2012 22:29А если использовать для этого ядро?
Например, -j LOG в iptables или что-то подобное. Это может иметь какие-то преимущества?
с журналированием еще разбираться нужно - логи парсить итд. ядро, - оно действительно все подсчитывает, а чтобы считать по-адресно, нужно всего лишь ввести нужные адреса в INPUT, OUTPUT или FORWARD (если машина - router). вот хороший пример
-
sash-kan
- Администратор
- Сообщения: 13939
- Статус: oel ngati kameie
- ОС: GNU
Re: учёт сетевого обмена с определённым ip
Nazyvaemykh
vr13
насколько я понимаю, даже количество пакетов с помощью netfilter-а не подсчитаешь, не говоря уже про количество tcp-соединений·
кстати, и с помощью tshark-а, (мне лично) не ясно, как подсчитывать соединения·
vr13
насколько я понимаю, даже количество пакетов с помощью netfilter-а не подсчитаешь, не говоря уже про количество tcp-соединений·
кстати, и с помощью tshark-а, (мне лично) не ясно, как подсчитывать соединения·
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
-
vr13
- Сообщения: 887
- ОС: gentoo
Re: учёт сетевого обмена с определённым ip
разумеется, может - и пакеты, и байты:
Код: Выделить всё
$ sudo iptables -A OUTPUT -p tcp --dst blinky.local -j OACCT
$ sudo iptables -A INPUT -p tcp --src blinky.local -j IACCTпосмотреть:
Код: Выделить всё
$ sudo iptables -L -v | grep '^Chain.*PUT' -A 2 --color=neverSpoiler
Chain INPUT (policy ACCEPT 3721K packets, 6679M bytes)
pkts bytes target prot opt in out source destination
3706K 6674M IACCT tcp -- any any blinky.local anywhere
--
Chain OUTPUT (policy ACCEPT 3246K packets, 3159M bytes)
pkts bytes target prot opt in out source destination
3231K 3157M OACCT tcp -- any any anywhere blinky.local
pkts bytes target prot opt in out source destination
3706K 6674M IACCT tcp -- any any blinky.local anywhere
--
Chain OUTPUT (policy ACCEPT 3246K packets, 3159M bytes)
pkts bytes target prot opt in out source destination
3231K 3157M OACCT tcp -- any any anywhere blinky.local
количество соединений - вроде бы тоже можно, не зря же nf_conntrack существует и соответствующие утилиты (не пробовал)
-
Institut
- Сообщения: 281
- ОС: mint
Re: учёт сетевого обмена с определённым ip
Первое что пришло в голову - завести все это в отдельный журнал ULOG
-A INPUT -i eth0 -s 172.172.172.172 (ваш IP) -j ULOG --ulog-prefix " ваш IP "
-A OUTPUT -o eth0 -d 172.172.172.172 (ваш IP) -j ULOG --ulog-prefix " ваш IP "
А уже из него и обрабатывать дальше скриптом. (Как-то так).
-A INPUT -i eth0 -s 172.172.172.172 (ваш IP) -j ULOG --ulog-prefix " ваш IP "
-A OUTPUT -o eth0 -d 172.172.172.172 (ваш IP) -j ULOG --ulog-prefix " ваш IP "
А уже из него и обрабатывать дальше скриптом. (Как-то так).