CentOSサーバーの一部のポートのトラフィックを監視するツールを探しています。このサーバーでは、各サービスは3000〜3050のポートで実行されます。これらのサービスのトラフィック消費を比較したいと思います。どちらが主な話し手/聞き手です。
/ proc/net/devは、ネットワークインターフェイスで送受信されるビットのグローバル量のみを提供し、ポートレベルでは提供しません。
私が見つけたすべてのツールは、グーグルがインターフェースレベル(eth0など)でレポートを提供し、ポートレベルではレポートを提供しませんが、結局、十分に検索しなかった可能性があります。
あなたたちはそのようなことをする方法を知っていますか?
または、非常に合法で無害なターゲットレス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
これらのルールにはターゲットがないため、トラフィックフローは変更されません。しかし、それらのそれぞれはwill一致するパケットごとにパケットとバイト数をインクリメントするので、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の出力を正常に保つことができます。しかし、それはあなたのための練習です!
[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
iptrafとiftopが思い浮かびます。前者は非常に小さく効率的です。