Linux中tcpdump命令
一、介紹
tcpdump是一款linux平臺的抓包工具。可以抓取涵蓋整個Tcp/IP協議族的數據包,支持針對對網絡層、協議、主機、端口的過濾,并提供and、or、not等邏輯語句來過濾無用的信息。
二、參數
三、過濾器
網絡報文是很多的,很多時候我們在主機上抓包,會抓到很多我們并不關心的無用包,然后要從這些包里面去找我們需要的信息,無疑是一件費時費力的事情,tcpdump 提供了靈活的語法可以精確獲取我們關心的數據,這些語法說得專業點就是過濾器。
過濾器簡單可分為三類:協議(proto)、傳輸方向(dir)和類型(type)。
四、操作
測試環境 IP:192.168.200.100
4.1 抓取某主機的數據包
抓取主機 192.168.200.100上所有收到(DST_IP)和發出(SRC_IP)的所有數據包
抓取經過指定網口 interface ,并且 DST_IP 或 SRC_IP 是 172.18.82.173 的數據包
tcpdump -i eth0 host 192.168.200.100篩選 SRC_IP,抓取經過 interface 且從 192.168.200.100發出的包
tcpdump -i eth0 src host 192.168.200.100篩選 DST_IP,抓取經過 interface 且發送到 192.168.200.100 的包
tcpdump -i eth0 dst host 192.168.200.100抓取主機 192.168.200.101 和主機 192.168.200.102 或 192.168.200.103 通信的包
tcpdump host 192.168.200.101 and \(192.168.200.102 or 192.168.200.103\ )4.2 抓取某端口的數據包
抓取所有端口,顯示 IP 地址
抓取某端口上的包
tcpdump port 22抓取經過指定 interface,并且 DST_PORT 或 SRC_PORT 是 22 的數據包
tcpdump -i eth0 port 22查看發送到 host 192.168.200.100 的網口 eth0 的 22 號端口的包
tcpdump -i eth0 -nnt dst host 192.168.200.100 and port 22 -c 1 -vv4.3 抓取某網絡(網段)的數據包
抓取經過指定 interface,并且 DST_NET 或 SRC_NET 是 192.168.200的包
4.4 抓取某協議的數據包
tcpdump -i eth0 icmp tcpdump -i eth0 ip tcpdump -i eth0 tcp tcpdump -i eth0 udp tcpdump -i eth0 arp4.5 復雜的邏輯表達式抓取過濾條件
五、與 wireshark、Snort 等工具的結合
tcpdump 抓包的時候,默認是打印到屏幕輸出,如果是抓取包少還好,如果包很多,很多行數據,刷刷刷從眼前一閃而過,根本來不及看清內容。不過,tcpdump 提供了將抓取的數據保存到文件的功能,查看文件就方便分析多了,而且還能與其他圖形工具一起配合分析,比如 wireshark、Snort 等。
參數:
六、tcpdump 的輸出格式
tcpdump總體輸出格式:
系統時間 源主機.端口 > 目標主機.端口 數據包參數
總結
以上是生活随笔為你收集整理的Linux中tcpdump命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微搭人员招聘管理系统官方模板解析(一)
- 下一篇: linux升级node版本