前言
用簡單的話來定義tcpdump,就是:dump the traffic on a network,根據使用者的定義對網絡上的數據包進行截獲的包分析工具。 tcpdump可以將網絡中傳送的數據包的“頭”完全截獲下來提供分析。它支持針對網絡層、協議、主機、網絡或端口的過濾,并提供and、or、not等邏輯語句來幫助你去掉無用的信息。
說到這個tcpdump命令,就不得不提自己參加的中國移動內蒙古分公司第三代CRM系統的開發與實施。如果沒有記錯的話,那應該是2016年,自己單獨負責整個10086客服系統自助渠道的整體改造工作;在系統壓測階段,調用接口平臺時,總是出現超時現象。后來這個問題越來越嚴重,同時短廳渠道、CBOSS渠道也反饋有這個問題,這時這個問題就引起了大BOSS的注意,然后就是各方專家會診。在這種大型項目中,專家會診,都有一個特色,就是專家指揮,小弟干活,而我那個時候,就是那個小弟。
好吧,專家發話了,抓包先。這就開始了我的抓包工作,開始了我對tcpdump的全面理解。
首先需要說的是,這個tcpdump是一個非常功能強大的命令,功能強大,那也就意味著這個命令的使用是非常復雜的,也就是說,我接下來整理的內容也會是非常多的。如果你想去掌握整個tcpdump命令的話,就需要你稍微有點耐心去把整篇文章讀完。OK,Let's go!
命令簡介
tcpdump是一款強大的網絡抓包工具,運行在Linux平臺上。熟悉tcpdump的使用能夠幫助我們分析、調試網絡數據。但是要想很好地掌握tcpdump, 就必須對網絡報文(TCP/IP協議)有一定的了解。不過對于簡單的使用來說,只要有網絡基礎概念就行了。
作為互聯網上經典的的系統管理員必備工具,tcpdump以其強大的功能,靈活的截取策略,成為每個高級的系統管理員分析網絡,排查問題等所必備的工具之一。在實際工作中,需要以root權限去執行該命令。
tcpdump是一個很復雜的命令,想了解它的方方面面非常不易,也不值得推薦,能夠使用它解決日常工作中的問題才是關鍵,所以,以下的總結我將更側重于從實際工作出發,整理一些實際工作中經常用到的用法,對于一些冷門用法,我這里基本不會涉及,如果日后在工作中用到了,我這里也會更新進來。
命令詳解
下面就先對tcpdump一些常用的選項進行總結。
雖然tcpdump命令的選項特別多,但是常用的選項也就上面那幾個,我這里將更多的把注意力放在使用實例上,通過使用實例來學習tcpdump這個命令。
過濾器
先進行使用實例詳解時,有必要先掌握tcpdump一些基本的使用理論知識,先來說說過濾器。
在服務器上的網絡報文是異常的多,很多時候我們只關注和具體問題有關的數據報文,而這些有用的報文只占到很小的一部分,為了不讓我們在報文的海洋里迷失自己,我們就非常有必要學習一下tcpdump提供的靈活而且功能強大的過濾器。
過濾器也可以簡單地分為三類:type,dir和proto。
新聞熱點
疑難解答