剛從wireshark轉到tcpdump,所以就用最適合wireshark思路的方式寫這篇博客,以便儘快適應tcpdume,官方API:https://www.tcpdump.org/manpages/tcpdump.1.html,也可以從man裏查詢:http://man.he.net/?topic=tcpdump§ion=all
1 常用命令
抓取一個固定主機ip的端口號,並保存在本地
sudo tcpdump -i 接口 -w 保存的路徑 host 主機IP and port 端口號 -s0 -C 包大小
sudo tcpdump -i any -w ~/Desktop/test.pcap host 127.0.0.1 and port 223 -s0 -C 100
# 抓取所有網絡接口數據包,提取出包含127.0.0.1:223的數據包,並以每個並保存在 ~/Desktop/test.pcap文件下
# -C 100及每100個數據包保存爲一個文件
後臺抓取多個主機的數據包
nohup tcpdump -i ens3 host baidu.com or csdn.com -s0 -C 100 -w ~/test.pcap &
# 抓取 baidu.com 與 csdn.com 兩個域名的地址
# 使用開頭的nohup與結尾的&使tcpdump後臺運行
查看後臺正在執行的tcpdump:
ps -ef|grep tcpdump |grep -v 'grep'
直接kill掉進程號就可以關閉掉後臺運行的tcpdump了
按抓包的時間保存數據包
tcpdump -i any -s0 -G 600 -w %Y_%m%d_%H%M_%S.pcap
# 每600秒保存一次文件
2 自定義操作
自定義網絡接口
tcpdump -D # 列出所有可用的網絡接口
tcpdump -i eth0 # 監聽 eth0 接口
自定義端口
tcpdump -i eth1 host 192.168.0.11 and ! port 80 and ! port 25
# 抓取192.168.0.11除了80,25外的其他端口
自定義抓取數據包的個數
tcpdump -i eth1 host 192.168.0.11 -c 10000
# 抓取eth1網卡上包含192.168.0.11的數據包 10000個後退出
自定義指定協議
協議可以是:ether, fddi, tr, wlan, ip, ip6, arp, rarp, decnet, tcp and udp
tcpdump tcp
參考鏈接
Linux tcpdump命令詳解:https://www.cnblogs.com/ggjucheng/archive/2012/01/14/2322659.html
超級詳細Tcpdump 的用法:https://www.jianshu.com/p/bcc24f8456a1