1. tcpdump 仅支持命令行格式使用,常用在 Linux 服务器中抓取和分析网络包
  2. Wireshark 除了可以抓包外,还提供了可视化分析网络包的图形页面
  3. 所以,这两者实际上是搭配使用的,先用 tcpdump 命令在 Linux 服务器上抓包,接着把抓包的文件拖出到 Windows 电脑后,用 Wireshark 可视化分析。
  4. 当然,如果你是在 Windows 上抓包,只需要用 Wireshark 工具就可以。
  5. tcpdump 在 Linux 下如何抓包?
     方式一:抓取(指定网口,端口)的数据包
1.linux服务器执行命令: tcpdump -i em1 port 43905 -X -c 100 -w ./spark.cap
2.把抓到的spark.cap包放到Wireshark中分析
=========================================================================
#指令参数解析

1)-i em1: 这个参数指定了要监听的网络接口,em1是其中的一个以太网接口。你可以根据需要替换为其他接口名称。((ifcofig查看网口))
2)port 43905: 这个参数指定了要监听的端口号,这里是43905。你可以根据需要更改端口号。
3)-X: 这个参数启用了十六进制格式输出数据包,它可以帮助你更好地理解数据包的内容。
4)-c 100: 这个参数指定了要捕获的数据包数量,这里是100个。当捕获到指定数量的数据包后,tcpdump将停止并退出。
5)-w ./spark.cap: 这个参数指定了输出文件的路径和名称,这里是当前目录下的spark.cap文件。捕获的数据包将保存在该文件中。

总结起来,这个命令将在em1接口上监听端口43905,捕获100个数据包,并将结果保存到当前目录下的spark.cap文件中,每个数据包以十六进制格式显示。
  1. 方式二:抓取(指定端口)的数据包(推荐使用)
1.linux服务器执行命令: tcpdump -i any port 43905 -X -c 100 -w ./spark.cap
2.把抓到的spark.cap包放到Wireshark中分析
=========================================================================
#指令参数解析
1)-i any: 这是指定要监听的网络接口的参数。在这里,any代表所有可用的网络接口

方式三:抓取(指定协议(tcp),ip地址,端口)的数据包
 

tcpdump -i any tcp and host 192.168.3.200 and port 43905 -X -c 100 -w ./spark.cap
==================================================================================
这条tcpdump命令的各个参数的含义如下:

1)-i any: 这是指定要监听的网络接口的参数。在这里,any代表所有可用的网络接口。
2)tcp and host 192.168.3.200: 这是指定要捕获的协议和目标主机IP地址的参数。在这个例子中,我们使用tcp表示只捕获TCP协议的数据包,目标主机的IP地址为192.168.3.200。
3)and port 43905: 这是指定要捕获的目标端口号的参数。在这个例子中,我们使用43905作为目标端口的端口号。
4)-X: 这是启用十六进制格式输出数据包的参数。它可以帮助你更好地理解数据包的内容。
5)-c 100: 这是指定要捕获的数据包数量的参数。在这里,我们使用100表示只捕获100个数据包。当捕获到指定数量的数据包后,tcpdump将停止并退出。
6)-w ./spark.cap: 这是指定输出文件路径和名称的参数。在这个例子中,我们将捕获的数据包保存在当前目录下的spark.cap文件中。
总结起来,这条tcpdump命令将在所有可用的网络接口上监听TCP协议的数据包,目标主机的IP地址为192.168.3.200,目标端口的端口号为43905,捕获100个数据包,并将捕获的数据包保存在当前目录下的spark.cap文件中,每个数据包以十六进制格式显示。