用簡單的話來定義tcpdump,就是:dump the traffic on a network,根據使用者的定義對網絡上的數據包進行截獲的包分析工具。
作爲互聯網上經典的的系統管理員必備工具,tcpdump以其強大的功能,靈活的截取策略,成爲每個高級的系統管理員分析網絡、排查問題等所必備的東東之一。
tcpdump可以將網絡中傳送的數據包的“頭”完全截獲下來提供分析。它支持針對網絡層、協議、主機、網絡或端口的過濾,並提供and、or、not等邏輯語句來幫助你去掉無用的信息。
tcpdump命令的使用
常用選項:
-n 不進行IP地址到主機名的解析。
-nn 不進行端口名稱的解析以及IP地址到主機名的解析。
-N 不打印出默認的域名。
-i 制定哪個網卡
-t 不打印UNIX時間戳,也就是不顯示時間。
-tt 打印原始的、未格式化過的時間。
-v 詳細的輸出,也就比普通的多了個TTL和服務類型
-X 輸出以ASCII碼的格式和十六進制的格式輸出。
-p 不讓網卡工作在混雜模式。
例子:抓取172.16.22.12上通過網卡eth0的數據,不進行端口名稱的解析以及IP地址到主機名的解析並且爲tcp協議端口爲21的包,
# tcpdump -X -i eth0 -nn host 172.16.22.12 and tcp port 21
顯然抓取的是ftp服務的包,只要不是基於ssl的ftp,都能把登錄ftp的賬號及密碼通過抓包工具顯示出來了。