会社が Linux でソケットを接続したとき、インターフェイスで常にエラーが報告されることが判明したため、Linux でのパケット キャプチャを研究しました
tcpdump host #IP address# /ホスト 210.27.48.1
tcpdump パラメータの主なオプション
-i: ネットワーク カードを指定します。デフォルトは次のとおりです。 eth0
-n: ホスト名の代わりにオンライン IP
-c: 複数のパッケージをキャプチャして起動するように指定します
-A: ASCII モードでのオンライン パッケージの内容このオプションはプロトコル パッケージに役立ちますテキスト形式
-x: In 16 パケットの内容をバイナリ形式で表示します
-vvv: 詳細情報を表示します
-s: パケット長に従ってデータをインターセプトします (デフォルトは 60 バイトです)。パケットが 60 バイトより大きい場合、パケット キャプチャでデータが失われます。そのため、通常は -s 0 を設定します。これにより、パケットのサイズに応じてデータが傍受されます。キャプチャされるのは完全なパケット データです
- r: ファイルから読み取り [-w、/usr/sbin/tcpdump - r test.out に対応] tcpdump -w test.out を読み取り]
-w: どこにでもあるファイルを指します [必ず使用してください、-w t.out を実行し、-r t.out を使用してパケット キャプチャ情報を確認します。そうでない場合は、読み取り可能になります。非常に悪い]
2. tcpmdump はパケットをキャプチャし、特定の意味を分析します。パケットの
# パケットによって運ばれるフラグ: S: S=SYC: 接続開始フラグ P :P=PUSH: データ転送フラグ F: F=FIN: 接続終了フラグ ack: 確認パケットを示すRST=RESET: 接続を異常終了します。フラグがないことを示します
最初の行: S: clnet.hostname を示します 一時ポート 50741 は、server.hostname 80 ポートへの接続を開始します。クライアントの最初のパケット シーケンス番号は: 562843056; スライディング ウィンドウ (win 14480) のサイズは: 14480 [14k] スライディング ウィンドウは、tcp 輻輳制御に使用される tcp 受信バッファのサイズです; mss 1460: 受信できる最大パケット長、通常 MTU - 40 バイト、IP ヘッダーと TCP ヘッダーはそれぞれ 20 バイトです。
2 行目: S: SYN ステータスを示します。最初の行は、server.hostname と対比します。clinet.hostname 接続を開始する要求に対する応答。今度は、クライアントの最初のパケット シーケンス番号 1 を持ってきます: ack 562843057、つまり、server.hostname は、次回このパケット シーケンス番号を持つパケットを受信するのを待ちます。これは、tcp バイト ストリーム (?) のシーケンス制御に使用されます。 server.hostname 初期パッケージシリアル番号:2306923370
3行目:client.hostname TCP接続が3ウェイハンドシェイクを完了していることを再度確認します。
4 行目: P: プッシュ データ client.hostname はポート 50741 経由でデータ パケットを server.hostname に送信します。データ パケットのサイズは 1005 バイトです。5 行目は、server.hostname が送受信によってこのデータ パケットに応答することを示しています。このデータパケット。 ----> 完了すると、server.hostname F パケットが表示され、接続が閉じられます。
行 6 はここではキャプチャされません ----> 行 10 は、行 1 ~ 5 の繰り返しです。マシンは、Web サービスが並行していることを意味します。
その他の Linux 記事については、Linux チュートリアル 列にアクセスして学習してください。
以上がLinux でのパケット キャプチャ tcpdumpの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。