Linux下Tcpdump使用


1. 介紹

tcpdump是一款用來截取網絡數據的工具;這里主要介紹的是為嵌入式Linux編譯tcpdump的方法

2. 編譯

首先去官網下載源代碼, 需要下載tcpdump和libpcap, 將他們解壓到同一個目錄下~/tcpdump/papage/

2.1 libpcap

進入libpcap源碼所在目錄, 執行如下命令

./configure --prefix=~/tcpdump/tools --host=arm-linux --target=arm-linux CC=arm-linux-xxx-gcc --with-pcap=linux
make; make install

編譯成功后會在~/tcpdump/tools目錄下生成三個個文件夾bin, include和lib;里面包含了libpcap的頭文件, 庫及配置信息

2.2 tcpdump

進入tcpdump源碼所在目錄, 執行如下命令

./configure --prefix=~/tcpdump/tools --host=arm-linux --target=arm-linux CC=arm-linux-xxx-gcc ac_cv_linux_vers=2
make; make install

編譯完成后會在~/tcpdump/tools/sbin目錄下找到獨立的可執行文件tcpdump

這里需要說明的是CC參數指定了交叉編譯器, 編譯兩者時需要指定相同的目錄, 否則在編譯tcpdump時需要指定libpcap的路徑

3. 命令

tcpdump有如下常用命令

tcpdump -D:                       顯示所有支持截取的設備
tcpdump -i eth0 -w capture.pcap:  截取eth0接口的數據並保存至capture.pcap(可用wireshark查看)
tcpdump -i any –w capture.pcap:   截取所有接口的數據並保存至capture.pcap

4. usb截取

除了網絡數據包, tcpdump還可以截取usb數據
前提是系統中支持usbmon, 參考<CentOS 7下Wireshark捕獲USB數據包>

通過如下命令安裝usbmon模塊

modprobe usbmon(如果已經編譯進內核該步驟則不需要)
mount -t debugfs none /sys/kernel/debug
ls /sys/kernel/debug/usb/usbmon
tcpdump -i usbmon1 -w usb.pcap

參考:
<man tcpdump>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM