回答:
コマンドラインに追加-n
しますtcpdump
。
-n Don't convert addresses (i.e., host addresses, port numbers, etc.) to names.
また、Fedora(および他の派生物:RHEL、CentOSなど)では、元のtcpdumpバージョンにパッチを適用して、-nn
ポート番号を削除する別のオプションを含めることにも注意してください。マンページから:
-n Don't convert host addresses to names. This can be used to
avoid DNS lookups.
-nn Don't convert protocol and port numbers etc. to names either.
-n
ホスト名に対してのみ機能しますが、ポート番号に対しては機能しません。-nn
両方のトリックを行います。これは、Fedora 20 gnu / linuxでtcpdumpバージョン4.5.1を実行しています。@ATMcのダウン投票された答えが唯一の正しいです。悲しいことに、カルマが低いため、それを支持したり、その下にコメントを書いたりすることはできません。
最善のアプローチは次のとおりです。
sudo tcpdump -ni any
テストする手順:
コンソールを開き、次を入力します。
sudo nc -l -p 6666
別のコンソールを開き、次を入力します。
sudo tcpdump -ni any
出力が冗長すぎる場合は、フィルターで除外できます(| grep -v "patter1n|pattern2"
)
3番目のコンソールを開き、次を入力します。
telnet localhost 6666
期待される出力:
10:37:13.770997 IP 127.0.0.1.56920 > 127.0.0.1.443: Flags [S], seq 2822288041, win 43690, options [mss 65495,sackOK,TS val 1028779 ecr 0,nop,wscale 7], length 0
使用sudo tcpdump -i any
すると、次のようなものが表示されます。
10:38:22.106022 IP localhost.56924 > localhost.https: Flags [S], seq 3147104744, win 43690, options [mss 65495,sackOK,TS val 1045863 ecr 0,nop,wscale 7], length 0
tcpdump -i eth0 -p -nn | grep "IP" | awk '{print$3 ,$4 ,$5}' | sed 's/://'
-nn
要約されているようです:(1) (以前の3つの回答で提示された)名前の代わりに番号を使用awk
し、(2)パケットコンテンツのデータを破棄するために使用 します(これは望ましくない可能性があります)。
-n