ローカルサーバーと指定したIPアドレス/ポート間で転送されるバイト数を監視するLinuxコマンドラインツールをだれでも推奨できますか。
同等のtcpdumpコマンドは次のようになります。
tcpdump -s 0 -i any -w mycapture.trc port 80 Host google.com
出力:
46 packets captured
131 packets received by filter
0 packets dropped by kernel
私は出力する同様のものを望みます:
54 bytes out, 176 bytes in
RHELで動作し、フリー/オープンソースになりたいです。既存のツールがあったら、それも私が見逃していただけでいいのですが。
Iptablesを使用できます。まだ使用していない場合は、オープンのAccept構成を使用できますが、カウントを実行するためのルールを設定できます。
たとえば、RHELでは、/etc/sysconfig/iptables
ファイルは次のようになります。
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -j INPUT
-A INPUT -s 10.10.1.1 -p tcp -m tcp --sport 80 -j ACCEPT
-A OUTPUT -d 10.10.1.1 -p tcp -m tcp --dport 80 -j ACCEPT
10.10.1.1:80は、トラフィックをカウントするHost:portです(ホスト名は使用できません)。次に、ルートとしてiptables -nvxL
コマンドを使用して、カウントされたトラフィックを確認できます。
出力例:
Chain INPUT (policy ACCEPT 7133268 packets, 1057227727 bytes)
pkts bytes target prot opt in out source destination
7133268 1057227727 ACCEPT tcp -- * * 10.10.1.1 0.0.0.0/0 tcp spt:80
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
0 0 INPUT all -- * * 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy ACCEPT 7133268 packets, 1057227727 bytes)
pkts bytes target prot opt in out source destination
7133268 1057227727 ACCEPT tcp -- * * 0.0.0.0/0 10.10.1.1 tcp dpt:80
私はwiresharkを提案しようとしていましたが(それは多くの 'conversation'機能です)、それはコマンドラインツールではありません。 tsharkを試すこともできます。これは、wiresharkに近いコマンドラインアナライザーツールです。出力には、(ある程度)探しているものが含まれているはずです(以下の例)。
tshark -R "ip.addr == 10.2.3.67" -z conv,ip -p -f "tcp port 22"
結果:
| <- | | -> | | Total |
| Frames Bytes | | Frames Bytes | | Frames Bytes |
10.2.3.23 <-> 10.2.3.67 42 15341 35 4890 77 20231
ホストによるインターフェースの帯域幅使用状況を表示する「iftop」と呼ばれるツールもあります。 iftopはあなたが説明したことを実行できると思いますが、通常、そのインターフェースは「top」のようなものです。
だからあなたの例では、あなたはあなたのフィルターコードを提供するために設定ファイルを作成することができると思います。
だからここに私の設定ファイルの私のフィルターコードです。
$ cat /tmp/conf
filter-code: port http and Host google.com
次に、以下を実行してネットワークトラフィックを確認しました。
$ Sudo iftop -c /tmp/conf
これが最良のオプションかどうかはわかりませんが、確かに必要なものを実現する1つの方法です。 HTH。
軽量でシンプルな「iptraf」もお試しいただけます。ポートでフィルタリングでき、高レベルの情報を提供します。ペイロードデータはありません。