Назад | Перейти на главную страницу

CentOS отслеживает трафик на порту

Я ищу инструмент для мониторинга трафика на некоторых портах сервера CentOS. На этом сервере каждая служба работает на порту от 3000 до 3050, и я хотел бы сравнить потребление трафика этими службами; например, кто является основным собеседником / слушателем.

/ proc / net / dev дает только глобальное количество битов, отправленных и полученных на сетевом интерфейсе, а не на уровне порта.

Каждый инструмент, который я обнаружил, дурацкий Google предоставляет отчет на уровне интерфейса (например, eth0) и ни одного на уровне порта, но я, возможно, недостаточно искал в конце концов.

Вы, ребята, знаете, как это сделать?

tcpdump:

[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 приходит на ум, бывший был очень маленьким и эффективным.