Принятие Вас имеет корневой доступ к s машине Linux где-нибудь на пути (или конечная точка или даже промежуточный маршрутизатор), можно записать, что iptables постановляет, что соответствует трафику приложения и направляет его к конкретной цепочке, которая действительно только принимает все пакеты. Ядро поддерживает байт и счетчик пакетов на каждой цепочке. Принятие пакетов, которые Вы хотите считать, идет от порта IP 10.1.2.3 TCP 42123 к порту IP 10.7.8.9 TCP 42789:
iptables -I FORWARD -p tcp -s 10.1.2.3 --sport 42123 -d 10.7.8.9 --dport 42789 -j ACCEPT
Замена FORWARD
OUTPUT
на исходном хосте, INPUT
на узле назначения. Можно прочитать счетчики с iptables -nvxL FORWARD 42
где 42 количество правил (первое правило является номером 1).
Сделайте это для каждого направления, если Вы хотите считать оба направления. Прочитайте счетчики в известных временных интервалах для измерения использования пропускной способности.
Можно получить немного гибкости при создании промежуточной цепочки.
iptables -N myapp_counter
iptables -A myapp_counter -j ACCEPT
iptables -I FORWARD -p tcp -s 10.1.2.3 --sport 42123 -d 10.7.8.9 --dport 42789 -j myapp_counter
iptables -I FORWARD -p tcp -s 10.7.8.9 --sport 42789 -d 10.1.2.3 --dport 42123 -j myapp_counter
С этой установкой, счетчиком для myapp_counter
будет включать торговлю обоими направлениями. Другое преимущество прохождения через цепочки - то, что можно атомарно прочитать счетчик на цепочке и установить его на 0 с iptables -nvxZL myapp_counter
. И Вы не должны выяснять число правила, таким образом, легче автоматизировать установку.
iptables [-t table] {-F|-L|-Z} [chain [rulenum]] [options...]
- это - Вы, может указать число правила и обнулить просто единственное правило. Мне установили iptables v1.4.10.
– camh
30.11.2010, 02:25
-Z
только работы над цепочкой, не над отдельным правилом.
– Gilles 'SO- stop being evil'
30.11.2010, 03:09
Можно проверить, с которым программа использует данные nethogs
(http://nethogs.sourceforge.net/).