Hello! 欢迎来到小浪云!


大神教你在Linux中使用tcpdump命令


avatar
小浪云 2025-01-22 52

linux系统通常已预装tcpdump工具,若未安装,可使用以下命令安装:

yum install -y tcpdump

大神教你在Linux中使用tcpdump命令

查看tcpdump版本信息:

tcpdump --help

大神教你在Linux中使用tcpdump命令

确定网卡名称:

大神教你在Linux中使用tcpdump命令

掌握网卡信息后,即可利用tcpdump监控和过滤服务器网络数据。

**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 为您的实际网卡名称。

相关阅读