在CentOS系统中,有多种工具可以用来进行网络抓包,其中最常用的是 tcpdump 和 Wireshark。以下是使用这些工具进行抓包的基本步骤:
安装tcpdump:
sudo yum install tcpdump -y
配置网络接口: 为了让tcpdump能够捕获网络数据包,需要将网络接口设置为混杂模式。这通常需要root权限。
sudo tcpdump -i eth0 -w output.pcap
这里的 eth0 是网络接口的名称,-w output.pcap 表示将捕获的数据包写入到 output.pcap 文件中。
使用过滤器: 可以根据需要设置过滤器以捕获符合条件的数据包。例如,只捕获包含特定关键词的数据包。
sudo tcpdump src host 192.168.0.1
开始捕获数据包: 运行tcpdump后,开始捕获并分析网络数据包。
sudo tcpdump -i eth0 port 80
这个命令会捕获通过 eth0 接口的HTTP流量,并将其写入到 output.pcap 文件中。
安装Wireshark:
sudo yum install wireshark -y
启动Wireshark: 安装完成后,可以通过启动Wireshark应用程序来开始捕获网络数据包。
sudo wireshark
选择网络接口并开始捕获: 在Wireshark的主界面,选择要监控的网络接口,然后点击“开始”按钮开始捕获数据包。
停止捕获并分析数据包: 点击红色的方形按钮停止捕获。可以使用Wireshark强大的搜索和过滤功能来查找特定的数据包,或者使用分析工具来深入了解网络流量。
除了tcpdump和Wireshark,还可以使用一些第三方工具如 go-sniffer 进行抓包。
安装go-sniffer:
sudo yum install libpcap-devel
wget https://golang.org/dl/go1.10.3.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.10.3.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
go get -v -u github.com/40t/go-sniffer
sudo cp -rf $(go env GOPATH)/bin/go-sniffer /usr/local/bin
使用go-sniffer抓取数据包:
go-sniffer eth0 redis
go-sniffer eth0 mysql -p 3306