Linuxパフォーマンスの最適化(7)-ネットワークトラフィック監視ツール

1つ、iftop

1.iftopの紹介

iftopコマンドを使用して、ネットワークカードのリアルタイムトラフィックを監視し(ネットワークセグメントを指定できます)、IP解決を逆にし、ポート情報を表示できます。
オンラインインストール:yum install iftop

2.Iftopコマンド

iftop -h | [-nNpblP] [-u unit] [-i interface] [-f filter code] [-F net/mask] [-G net6/mask6]
-h:ヘルプ情報を表示します
-i:監視ネットワークカードを指定します
-b:トラフィックヒストグラムを表示しません
-B:トラフィックをバイト単位で表示します(デフォルトビット)
-n:ホスト名を解決せず、IPを直接表示します
-N:いいえポートサービスを分析し、ポート番号を直接表示します
-F:特定のネットワークセグメントの出入りトラフィックを表示します
-m制限:帯域幅の上限を設定し、サフィックスとしてK、M、Gを使用できます
iftop -b -n -N -F 192.168.0.0/24
Linuxパフォーマンスの最適化(7)-ネットワークトラフィック監視ツール
TX:トラフィックを送信します
RX:トラフィックを受信します
合計:トラフィックの合計
:累積総流量
ピーク:ピーク流量
:それぞれ、最後の2秒、10秒、40秒の平均流量を表します

3.Iftopインタラクティブコマンド

hを押してヘルプを表示するかどうかを切り替えます
nを押してローカルIPまたはホスト名
を表示しますsを押してローカルマシン
のホスト情報を表示するかどうかを切り替えますdを押してリモートターゲットホストのホスト情報を表示するかどうかを切り替えます
tを押して表示形式を2行/ 1行/に切り替えます送信トラフィックのみ/受信トラフィックのみを表示
Nを押してポート番号またはポートサービス名
を表示するように切り替えるSを押してローカルマシン
のポート情報を表示するかどうかを切り替えるDを押してリモートターゲットホストの
ポート情報を表示するかどうかを切り替えるpを
押してポート情報を表示するかどうかを切り替えるPを押す一時停止/続行表示
に切り替えbを押して平均フローグラフバーを表示するかどうかを切り替えます
Bを押し
2秒または10秒または40秒の平均フローを計算しますTを
押して各接続の合計フローを表示するかどうかを切り替えますlを押して画面フィルター機能を開き、必要なものを入力しますフィルタリングされた文字の場合、
Lを押して表示画面上部のスケールを切り替えます。スケールが変わり、フローグラフバーが変わります
。jまたはkを
押して、画面に表示されている接続レコードを上下にスクロールします。1、2、または3を押して、右側に表示を表示します。トラフィックデータの3列は
、<左側のローカル名またはIPで並べ替え、>を押してリモートターゲットホストのホスト名またはIPで並べ替えます
。oを押して固定かどうかを切り替え、現在の接続のみを表示します
。fを
押してフィルタコードを編集します。シェルコマンドを使用して
q押し、監視を終了します

二、netstat

1.netstatの概要

netstatは、IP、TCP、UDP、およびICMPプロトコルに関連する統計データを表示するために使用され、通常、マシンの各ポートのネットワーク接続をチェックするために使用されます。

2、netstatコマンド

netstat [-vWeenNcCF] [<Af>] -r         
netstat {-V|--version|-h|--help}
netstat [-vWnNcaeol] [<Socket> ...]
netstat { [-vWeenNac] -I[<Iface>] | [-veenNac] -i | [-cnNe] -M | -s [-6tuw] } [delay]

-a、-all:接続内のすべてのソケットを表示します。
-<ネットワークタイプ>または-<ネットワークタイプ>このネットワークタイプの接続に関連するアドレスを一覧表示します。
-c、-continuous:ネットワークステータスを継続的に一覧表示します。
-C、-cache:ルーター構成のキャッシュ情報を表示します。
-e、-extend:ネットワークの他の関連情報を表示します。
-F、-fib:FIBを表示します。
-g、-groups:マルチブロードキャスト機能のグループメンバーのリストを表示します。
-h、-help:オンラインヘルプ。
-i、-interfaces:ネットワークカードのリストを表示します
-l、-listening:監視中のサーバーのソケットを表示します。
-Mまたは--masqueradeは、偽装されたネットワーク接続を示します。
-nまたは--numericドメインネームサーバーを介さずに、IPアドレスを直接使用します。
-Nまたは--netlinkまたは--symbolicネットワークハードウェア周辺機器のシンボリックリンク名を表示します。
-oまたは--timersはタイマーを表示します。
-pまたは--programs使用されているソケットのプログラム識別コードとプログラム名を表示します。
-r、-route:ルーティングテーブルを表示します。
-s、-statistics:ネットワーク作業情報の統計テーブルを表示します。
-t、-tcp:TCP送信プロトコルの接続状態を表示します。
-u、-udp:UDP送信プロトコルの接続状態を表示します。
-v、-verbose:サポートされていないアドレスファミリを表示します。
-V、-version:バージョン情報を表示します。
-w、-raw:RAW転送プロトコルの接続状態を表示します。
-x、-unix:このパラメーターの効果は、「-Aunix」パラメーターを指定した場合と同じです。
--ip、-inet:このパラメーターの効果は、「-Ainet」パラメーターを指定するのと同じです。

3.netstatの一般的なコマンド

netstat -a
すべてのポートを
netstat -at
一覧表示すべてのTCPポートを
netstat -au
一覧表示すべてのUDPポートを一覧表示すべての
netstat -l
リスニングポート
netstat -lt
のみを表示すべてのリスニングTCPポート
netstat -lu
のみを一覧表示すべてのリスニングUDPポート
netstat -lx
のみを一覧表示すべてのリスニングポートのみを一覧
netstat -s
表示UNIXすべてのポートの
netstat -st
統計を表示統計はTCPポートを表示
netstat -su
UDPポート
netstat -pt
出力PIDの情報表示統計とプロセス名
netstat -r
は、コアルーティング情報
netstat -ap | grep ssh
ポートを示します。Finderは、サービスポートの
netstat -an | grep ':80'
指定されたポート
netstat -ntu | grep :80 | awk '{print $5}' | cut -d: -f1 | awk '{++ip[$1]} END {for(i in ip) print ip[i],"\t",i}' | sort -nr
ビューで実行されているプロセスを検索して、
netstat -nt | grep -e 127.0.0.1 -e 0.0.0.0 -e ::: -v | awk '/^tcp/ {++state[$NF]} END {for(i in state) print i,"\t",state[i]}'
TCPのIPアドレスに接続します。さまざまな状態リスト
netstat -anpo | grep "php-cgi" | wc -l
ビューphpcgiプロセス数(閉じる場合)デフォルト値は、それだけでは不十分であることを示しています。
netstat -nat | grep "192.168.1.15:22" |awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -20
最も接続されているサービスポートのIPアドレス
netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
Linuxパフォーマンスの最適化(7)-ネットワークトラフィック監視ツール
表示するには、SYN_SENTを追加する必要があります。クライアントはSYNを送信して接続の確立を要求し、ステータスはSYN_SENTに設定されます。SYN_RECV:サーバーはクライアントのSYNを確認するためにACKを送信すると同時に、SYNをクライアントに送信し、ステータスはSYN_RECVに設定されます。
確立済み:オープン接続に代わって、2つのパーティはデータ交換を行うことができます。
FIN_WAIT1:アプリケーションの終了呼び出しをアクティブに閉じ、接続をアクティブに閉じるためのFIN要求を送信し、FIN_WAIT1状態に入ります。
CLOSE_WAIT:FINを受信した後、パッシブクロージングエンドTCPはFIN要求に応答してACKを送信し、CLOSE_WAIT状態に入ります。
FIN_WAIT2:ACKを受信すると、FIN-WAIT-2状態になります。LAST_ACK:ファイルの終わりが一定期間受動的に閉じられた後、ファイルの終わりを受信したアプリケーションはCLOSEを呼び出して接続を閉じ、FINを送信し、相手のACKがLAST-ACKになるのを待ちます。
TIME_WAIT:アクティブなクロージングエンドでFINを受信した後、TCPはACKパケットを送信し、TIME-WAIT状態に入ります。
CLOSING:リモートTCPが接続の中断を確認するのを待っています
。CLOSED:ACKパケットを受信した後、パッシブクローズエンドはCLOSED状態になり、接続は終了します。
UNKNOWN:不明なソケットステータス。

3、tcpdump

1.tcpdumpの概要

tcpdumpは、システムを通過するトラフィックデータパケットをキャプチャして分析するために使用されるコマンドラインツールです。通常、ネットワーク障害分析ツールおよびセキュリティツールとして使用されます。

2、tcpdumpコマンド

tcpdump [-aAbdDefhHIJKlLnNOpqStuUvxX#] [ -B size ] [ -c count ] [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ] [ -i interface ] [ -j tstamptype ] [ -M secret ] [ --number ] [ -Q|-P in|out|inout ] [ -r file ] [ -s snaplen ] [ --time-stamp-precision precision ] [ --immediate-mode ] [ -T type ] [ --version ] [ -V file ] [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z postrotate-command ]
[ -Z user ] [ expression ]

-a:ネットワークアドレスとブロードキャストアドレスを名前に変換します。
-c count:キャプチャされたデータパケットの数
-e:接続レベルのファイルヘッダーを表示します
-f:ネットワークアドレスを数値で表示します。
-F式ファイル:式を含むファイルを指定します。
-iインターフェイス:データパケットをキャプチャするためのネットワークカードデバイスを指定します。-
l:標準出力列のバッファを使用します。
-n:ホストのネットワークアドレスを名前に変換しません。
-N:ドメイン名をリストしません。
-O:データパケットエンコーディングを最適化しません。-
q:高速出力モード。少数の送信プロトコル情報のみがリスト
されます。-rデータパケットファイル:指定されたファイルからデータパケットデータを読み取ります。
-sデータパケットサイズ:各データパケットのサイズを設定します。
-S:TCPアソシエーション番号を一覧表示するには、相対値ではなく絶対値を使用します。
-t:タイムスタンプを表示しません
-tt:フォーマットされていないタイムスタンプを表示します
-Tパケットタイプ:式で指定されたデータパケットを強制的に設定されたデータパケットタイプに変換します。
-v:命令実行プロセスを詳細に表示します。
-vv:命令実行プロセスをより詳細に表示します。
-x:16進コードを使用してデータパケットデータを一覧表示します。
-wデータパッケージファイル:指定したファイルにデータパッケージデータを書き込みます。

tcpdump  -enfN -r test.cap
tcpdump -r test.cap

3.tcpdumpの一般的なコマンド

tcpdump -i wlp3s0 tcp port 80

tcpdump -i wlp3s0 dst host 192.168.0.104
wlp3s0ネットワークカードのTCPプロトコル80ポートデータパケットを取得し宛先ホストがwlp3s0ネットワークカードの192.168.0.104であるデータパケットを取得します

おすすめ

転載: blog.51cto.com/9291927/2594136