Я ищу инструмент для мониторинга трафика на некоторых портах сервера CentOS. На этом сервере каждая служба работает на порту от 3000 до 3050, и я хотел бы сравнить потребление трафика этими службами; например, кто является основным собеседником / слушателем.
/ proc / net / dev дает только глобальное количество битов, отправленных и полученных на сетевом интерфейсе, а не на уровне порта.
Каждый инструмент, который я обнаружил, дурацкий Google предоставляет отчет на уровне интерфейса (например, eth0) и ни одного на уровне порта, но я, возможно, недостаточно искал в конце концов.
Вы, ребята, знаете, как это сделать?
[root@bespinwerks ~] # tcpdump -i eth0 port 80
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
12:23:39.478997 IP dw135-198-237-222.dhcpw.sest.example.com.3364 > bespinwerks.http: Flags [S], seq 388975608, win 65535, options [mss 1260,nop,wscale 1,nop,nop,sackOK], length 0
12:23:39.479043 IP bespinwerks.http > dw135-198-237-222.dhcpw.sest.example.com.3364: Flags [S.], seq 3273086762, ack 388975609, win 5840, options [mss 1460,nop,nop,sackOK,nop,wscale 6], length 0
12:23:39.479982 IP dw135-198-237-222.dhcpw.sest.example.com.3364 > bespinwerks.http: Flags [.], ack 1, win 32768, length 0
12:23:39.480543 IP dw135-198-237-222.dhcpw.sest.example.com.3364 > bespinwerks.http: Flags [P.], seq 1:595, ack 1, win 32768, length 594
12:23:39.480564 IP bespinwerks.http > dw135-198-237-222.dhcpw.sest.example.com.3364: Flags [.], ack 595, win 110, length 0
12:23:39.542350 IP bespinwerks.http > dw135-198-237-222.dhcpw.sest.example.com.3364: Flags [.], seq 1:3781, ack 595, win 110, length 3780
12:23:39.543976 IP dw135-198-237-222.dhcpw.sest.example.com.3364 > bespinwerks.http: Flags [.], ack 2521, win 32768, length 0
12:23:39.544007 IP bespinwerks.http > dw135-198-237-222.dhcpw.sest.example.com.3364: Flags [.], seq 3781:7561, ack 595, win 110, length 3780
12:23:39.544884 IP dw135-198-237-222.dhcpw.sest.example.com.3364 > bespinwerks.http: Flags [.], ack 3781, win 32768, length 0
РЕДАКТИРОВАТЬ: перечитав свой вопрос, iftop может быть лучшим вариантом:
12.5Kb 25.0Kb 37.5Kb 50.0Kb 62.5Kb
+----------------------------+-----------------------------+-----------------------------+-----------------------------+-----------------------------
bespinwerks:ssh => dw135-198-237-222.dhcpw.sest.example.com:dj-ilm 1.48Kb 1.88Kb 2.08Kb
<= 160b 160b 177b
192.168.1.255:netbios-dgm => STATION:netbios-dgm 0b 0b 0b
<= 0b 194b 51b
192.168.1.255:17500 => rm-macbook:17500 0b 0b 0b
<= 0b 109b 57b
255.255.255.255:17500 => rm-macbook:17500 0b 0b 0b
<= 0b 109b 57b
255.255.255.255:17500 => GACDTL05RX7322:17500 0b 0b 0b
<= 0b 0b 116b
bespinwerks:41307 => bespin:domain 0b 0b 16b
<= 0b 0b 36b
bespinwerks:39407 => bespin:domain 0b 0b 15b
<= 0b 0b 21b
bespinwerks:44091 => bespin:domain 0b 0b 15b
<= 0b 0b 20b
bespinwerks:44738 => bespin:domain 0b 0b 15b
<= 0b 0b 19b
bespinwerks:59540 => bespin:domain 0b 0b 16b
<= 0b 0b 16b
bespinwerks:49364 => bespin:domain 0b 0b 15b
<= 0b 0b 15b
192.168.1.255:17500 => STATION:17500 0b 0b 0b
<= 0b 0b 29b
Или вы можете использовать iptables без цели, что вполне законно и безвредно:
iptables -A INPUT -p tcp --dport 3000
iptables -A INPUT -p tcp --dport 3001
...
iptables -A INPUT -p tcp --dport 3050
и
iptables -A OUTPUT -p tcp --sport 3000
iptables -A OUTPUT -p tcp --sport 3001
...
iptables -A OUTPUT -p tcp --sport 3050
Поскольку ни одно из этих правил не имеет цели, ни одно из них не изменит поток трафика. Но каждый из них воля увеличивать количество пакетов и байтов для каждого совпадающего пакета, поэтому iptables -L -n -v
должен вернуть что-то вроде
15733 933K tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3000
5733 133K tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:3001
...
Обратите внимание, это предполагает, что вы сейчас не используете какой-либо брандмауэр; если да, то эти правила должны быть помещены в нужное место в цепочках INPUT и OUTPUT, т. е. сначала.
Учитывая количество отслеживаемых портов, вы можете делегировать это определенной пользователем цепочке, чтобы ваш вывод iptables оставался разумным; но это упражнение для вас!
iptraf и iftop приходит на ум, бывший был очень маленьким и эффективным.