您好,登錄后才能下訂單哦!
本文章向大家介紹tcpdump命令怎么在Linux系統中使用,主要包括tcpdump命令怎么在Linux系統中使用的使用實例、應用技巧、基本知識點總結和需要注意事項,具有一定的參考價值,需要的朋友可以參考一下。
Linux是一種免費使用和自由傳播的類UNIX操作系統,是一個基于POSIX的多用戶、多任務、支持多線程和多CPU的操作系統,使用Linux能運行主要的Unix工具軟件、應用程序和網絡協議。
命令簡介
tcpdump是一款強大的網絡抓包工具,運行在Linux平臺上。熟悉tcpdump的使用能夠幫助我們分析、調試網絡數據。但是要想很好地掌握tcpdump, 就必須對網絡報文(TCP/IP協議)有一定的了解。不過對于簡單的使用來說,只要有網絡基礎概念就行了。
作為互聯網上經典的的系統管理員必備工具,tcpdump以其強大的功能,靈活的截取策略,成為每個高級的系統管理員分析網絡,排查問題等所必備的工具之一。在實際工作中,需要以root權限去執行該命令。
tcpdump是一個很復雜的命令,想了解它的方方面面非常不易,也不值得推薦,能夠使用它解決日常工作中的問題才是關鍵,所以,以下的總結我將更側重于從實際工作出發,整理一些實際工作中經常用到的用法,對于一些冷門用法,我這里基本不會涉及,如果日后在工作中用到了,我這里也會更新進來。
命令詳解
下面就先對tcpdump一些常用的選項進行總結。
-s number:tcpdump默認只會截取前96字節的內容,要想截取所有的報文內容,就需要使用這個選項,其中number是需要截取的報文字節數,如果是0的話,表示截取報文全部內容;
-nn:表示不解析域名,直接顯示IP,在netstat命令中,也有這個選項;
-X:同時使用hex和ascii顯示報文內容;
-S:顯示絕對的序列號(sequence number),而不是相對編號;
-i:指定監聽的網卡,如果為-i any則表示監聽所有的網卡;
-v,-vv,-vvv:顯示更多的詳細信息;
-c number:表示截取number個報文,然后結束;
-w:將監聽到的數據包寫入文件中保存,而并不分析和打印出來;
-A:只使用ascii打印報文的全部數據,不要和-X選項一起使用。截取HTTP請求的時候可以用sudo tcpdump -nSA port 80
雖然tcpdump命令的選項特別多,但是常用的選項也就上面那幾個,我這里將更多的把注意力放在使用實例上,通過使用實例來學習tcpdump這個命令。
過濾器
先進行使用實例詳解時,有必要先掌握tcpdump一些基本的使用理論知識,先來說說過濾器。
在服務器上的網絡報文是異常的多,很多時候我們只關注和具體問題有關的數據報文,而這些有用的報文只占到很小的一部分,為了不讓我們在報文的海洋里迷失自己,我們就非常有必要學習一下tcpdump提供的靈活而且功能強大的過濾器。
過濾器也可以簡單地分為三類:type,dir和proto。
type:主要用來區分過濾報文源類型,主要由host主機報文,net網段報文和port指定端口的報文組成;
dir:只過濾報文的源地址和目的地址,主要包括src源地址和dst目的地址;
proto:只過濾報文的協議類型,支持tcp,udp和icmp等;使用的時候可以省略proto關鍵字:
tcpdump -i eth2 arp
tcpdump -i eth2 ip
tcpdump -i eth2 tcp
tcpdump -i eth2 udp
tcpdump -i eth2 icmp
在我們使用tcpdump命令時是離不開這些過濾器的。
條件組合
在茫茫網絡中,想要找到那個你想要的網絡包,還是有一定難度的。為了抓住那個我們想要的網絡包,在我們抓包命令中,包含越多的限制條件,抓的無關包就會越少,所以在進行抓包時,我們可以使用“與”(and、&&)、“或”(or、||)和“非”(not、!)來將多個條件組合起來。這對我們需要基于某些條件來分析網絡包是非常有用的。
使用實例
命令:tcpdump -i eth2
說明:監視指定網絡接口的數據包
命令:tcpdump host 210.27.48.3
說明:截獲210.27.48.3主機收到的和發出的所有數據包
命令:tcpdump host 210.27.48.4 and (210.27.48.5 or 210.27.48.6)
說明:截獲210.27.48.3主機和210.27.48.5或者210.27.48.6主機進行通信的所有數據包
命令:tcpdump net 192.168.1.0/24
說明:截獲192.168.1.0/24整個網絡的數據包
命令:tcpdump -i eth0 src host 210.27.48.3
說明:監視eth0網卡上源地址是210.27.48.3的所有網絡包
命令:tcpdump -i eth0 dst host 210.27.48.3
說明:監視eth0網卡上目的地址是210.27.48.3的所有網絡包
命令:tcpdump tcp port 23 and host 210.27.48.3
說明:獲取主機210.27.48.3上端口為23的應用發出和接收的所有TCP協議包
命令:tcpdump udp port 123
說明:獲取本機123端口發出和接收的所有UDP協議包
命令:tcpdump src host 10.126.1.222 and dst net 10.126.1.0/24
說明:截獲源主地址為10.126.1.222,目的地址是10.126.1.0/24整個網絡
命令:tcpdump -i eth0 -s0 -G 60 -Z root -w %Y_%m%d_%H%M_%S.pcap
說明:抓取報文后按照指定時間間隔保存;-G選項后面接時間,單位為秒;上述命令就是每隔60秒生存一個文件
命令:tcpdump -i eth0 -s0 -C 1 -Z root -w eth0Packet.pcap
說明:抓取報文后按照指定報文大小保存;-C選項后接文件大小,單位為MB;上述命令就是每抓包文件達到1MB時就使用一個新的文件保存新抓的報文
到此這篇關于tcpdump命令怎么在Linux系統中使用的文章就介紹到這了,更多相關的內容請搜索億速云以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持億速云!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。