Linux系統抓包命令tcpdump使用例項
linux系統網路抓包用tcpdump,首先當然是看有沒有安裝了,沒有就用yum安裝一下。
tcpdump是linux命令列下常用的的一個抓包工具,記錄一下平時常用的方式,測試機器系統是centos
7。
tcpdump的命令格式
tcpdump的引數眾多,通過man tcpdump可以檢視tcpdump的詳細說明,這邊只列一些筆者自己常用的引數:
tcpdump [-i 網路卡] -nnAX '表示式'
各引數說明如下:
-i:interface
監聽的網路卡。
-nn:表示以ip和port的方式顯示來源主機和目的主機,而不是用主機名和服務。
-A:以ascii的方式顯示資料包,抓取web資料時很有用。
-X:資料包將會以16進位制和ascii的方式顯示。
表示式:表示式有很多種,常見的有:host
主機;port
埠;src host
發包主機;dst host
收包主機。多個條件可以用and、or組合,取反可以使用!,更多的使用可以檢視man
7 pcap-filter。
下面進行一些命令測試,如果沒有許可權,可以先切換成root使用者。
監聽網路卡eth0
$ tcpdump -i eth0
這個方式最簡單了,但是用處不多,因為基本上只能看到資料包的資訊刷屏,壓根看不清,可以使用ctrl+c中斷退出,如果真有需求,可以將輸出內容重定向到一個檔案,這樣也更方便檢視。
監聽指定協議的資料
$ tcpdump -i eth0 -nn 'icmp'
這個是用來監聽icmp協議的資料,就是ping命令使用的協議。類似的,如果要監聽tcp或者是udp協議,只需要修改上例的icmp就可以了。ping下監聽的機器,輸出如下:
每一行的各個資料表示的含義:
抓到包的時間 IP 發包的主機和埠 > 接收的主機和埠 資料包內容
監聽指定的主機
$ tcpdump -i eth0 -nn 'host 192.168.1.231'
這樣的話,192.168.1.231這臺主機接收到的包和傳送的包都會被抓取。
$ tcpdump -i eth0 -nn 'src host 192.168.1.231'
這樣只有192.168.1.231這臺主機傳送的包才會被抓取。
$ tcpdump -i eth0 -nn 'dst host 192.168.1.231'
這樣只有192.168.1.231這臺主機接收到的包才會被抓取。
監聽指定埠
$ tcpdump -i eth0 -nnA 'port 80'
上例是用來監聽主機的80埠收到和傳送的所有資料包,結合-A引數,在web開發中,真是非常有用。
監聽指定主機和埠
$ tcpdump -i eth0 -nnA 'port 80 and src host 192.168.1.231'
多個條件可以用and,or連線。上例表示監聽192.168.1.231主機通過80埠傳送的資料包。
監聽除某個埠外的其它埠
$ tcpdump -i eth0 -nnA '!port 22'
如果需要排除某個埠或者主機,可以使用“!”符號,上例表示監聽非22埠的資料包。
同時可以將資料輸出到一個指定的檔案
tcpdump -i em2 -vnn port 8000 -w xxx.cap
小結:
tcpdump這個功能引數很多,表示式的選項也非常多,非常強大,不過常用的功能確實不多。詳情可以通過man檢視系統手冊。
另外在抓取web包的時候,傳送網頁內容都是很奇怪的字元,發現是apache開啟了gzip壓縮的緣故,關閉掉gzip壓縮就可以了。在centos
7下,編輯vim/etc/apache2/mods-enabled/deflate.load檔案,將載入模組deflate_module的語句註釋掉,然後重啟apache就OK了。
相關文章
- 在 Linux 命令列中使用 tcpdump 抓包Linux命令列TCP
- 說說Linux抓包命令tcpdumpLinuxTCP
- linux 下的 tcpdump 抓包命令LinuxTCP
- tcpdump抓包命令詳解TCP
- Linux作業系統tcpdump抓包分析詳解Linux作業系統TCP
- tcpdump抓包規則命令大全TCP
- tcpdump抓包TCP
- 轉:linux tcpdump抓包方法LinuxTCP
- Linux基礎:用tcpdump抓包LinuxTCP
- linux/unix下用tcpdump抓包LinuxTCP
- Linux系統中的basename命令使用例項Linux
- tcpdump抓包分析詳解TCP
- 使用tcpdump+wireshark抓包分析網路資料包TCP
- 通過例項學習 tcpdump 命令TCP
- wireshark安裝使用與tcpdump的抓包分析TCP
- Wireshark和TcpDump抓包分析心得TCP
- Linux系統中head命令例項Linux
- tcpdump抓包分析NAT ping不通TCP
- tcpdump抓包及tshark解包方法介紹TCP
- Linux中printf命令使用例項Linux
- Linux抓包工具tcpdump詳解LinuxTCP
- 最簡明的 Tcpdump 抓包入門指南TCP
- 在 Android 上利用 tcpdump 進行抓包AndroidTCP
- Linux - Tcpdump命令LinuxTCP
- 019 Linux tcpdump 抓包案例入門可真簡單啊?LinuxTCP
- Linux 中的 JQ 命令使用例項Linux
- Linux中ip命令的使用例項Linux
- Linux 中 ss 命令的使用例項Linux
- Linux中的basename命令使用例項Linux
- Linux命令:grep命令AND、OR、NOT例項Linux
- tcpdump 命令的常用選項:一TCP
- tcpdump 命令的常用選項:二TCP
- tcpdump 命令的常用選項:三TCP
- Linux系統中的lsmod、lsof、lspci、lsscsi命令及例項Linux
- Tee命令使用例項
- awk命令使用例項
- 【Linux】tcpdump命令詳解LinuxTCP
- Linux tcpdump 命令詳解LinuxTCP