linux系统通常已预装tcpdump工具,若未安装,可使用以下命令安装:
yum install -y tcpdump
查看tcpdump版本信息:
tcpdump --help
确定网卡名称:
掌握网卡信息后,即可利用tcpdump监控和过滤服务器网络数据。
1. 捕获指定IP地址的网络数据:
捕获所有经过eth0网卡,目的或源IP地址为192.168.29.162的网络数据:
tcpdump -n -i eth0 host 192.168.29.162
捕获源IP地址为192.168.29.162的网络数据 (eth1网卡):
tcpdump -i eth1 src host 192.168.29.162
捕获目的IP地址为192.168.29.162的网络数据 (eth1网卡):
tcpdump -i eth1 dst host 192.168.29.162
2. 捕获指定端口的网络数据:
捕获eth0网卡8080端口的网络数据:
tcpdump -n -i eth0 port 8080
3. 捕获MySQL数据库相关数据:
捕获MySQL执行的SQL语句:
tcpdump -i eth1 -s 0 -l -w - dst port 3306 | strings
捕获MySQL通讯数据包 (生成的cap文件需使用Wireshark等工具打开):
tcpdump -n -nn -tttt -i eth0 -s 65535 'port 3306' -w 20160505mysql.cap
4. 捕获其他协议数据:
捕获SMTP数据:
tcpdump -i eth1 'tcp[tcpflags] & tcp-syn != 0 and tcp[tcpflags] & tcp-ack != 0'
捕获HTTP GET请求:
tcpdump -i eth1 'tcp[(tcp[12]>>2):4] = 0x47455420'
捕获SSH响应:
tcpdump -i eth1 'tcp[(tcp[12]>>2):4] = 0x5353482D'
5. 高级过滤和保存:
实时捕获eth0网卡8080端口的GET请求,并将数据保存到GET.log文件:
tcpdump -i eth0 '((port 8080) and (tcp[(tcp[12]>>2):4]=0x47455420))' -nnAl -w /tmp/GET.log
捕获指定数量的SYN包 (-c参数指定捕获包数量):
time tcpdump -nn -i eth0 'tcp[tcpflags] = tcp-syn' -c 10
这些命令示例提供了tcpdump的基本用法,您可以根据实际需求调整参数进行更精细的网络数据捕获和分析。 请注意替换 eth0 和 eth1 为您的实际网卡名称。
以上就是大神教你在Linux中使用tcpdump命令的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号