介绍
tcpdump 是一个非常有用的命令,用于检查和捕获进出机器的网络数据包。 它是解决网络问题和安全问题的最常见的网络实用程序之一。
虽然它的名字是 tcpdump,但它可以用来检查非 TCP 流量,包括 UDP、ARP 或 ICMP。
本教程将向您展示在 Linux 系统中使用 tcpdump 命令的方法。
安装 tcpdump
默认情况下,大多数 Linux 发行版都安装了 tcpdump。 要验证是否安装了 tcpdump,请运行以下命令:
$ tcpdump --version
输出:
如果还没有安装,让我们运行:
$ sudo apt update
$ sudo apt install tcpdump
在网络接口上捕获数据包
当您不带任何选项运行 tcpdump 时,它将捕获计算机上所有网络接口上的所有数据包。
$ sudo tcpdump
您必须按 Ctrl + C 才能停止。
要列出可以通过 tcpdump 命令检查其数据包的所有网络接口,请运行:
$ sudo tcpdump -D
输出:
如果要捕获特定网络接口上的数据包并将数据包限制为 6,请运行以下命令:
$ sudo tcpdump -i eth0 -c 6
输出:
在特定主机上捕获网络数据包
捕获来自特定主机的数据包。 您可以简单地运行以下命令:
$ sudo tcpdump -n host 172.19.11.101 -c 5
捕获特定端口上的网络数据包
如果您只想过滤特定端口上的网络数据包,让我们运行带有 -n 端口选项的 tcpdump 命令。
$ sudo tcpdump -n port 22
从源和目标捕获网络数据包
如果您只想过滤来自特定来源的网络数据包,让我们运行带有 src 选项的 tcpdump 命令。
$ sudo tcpdump src 172.19.11.210
为了仅捕获到特定目的地的网络数据包,请运行带有 dst 选项的 tcpdump 命令。
$ sudo tcpdump dst 172.19.11.210
使用许多组合过滤器捕获网络数据包
为了在运行 tcpdump 命令时组合多个过滤器,您可以使用这些运算符:and (&&),或 (||),而不是 (!)。 为了 example,以下命令将捕获来自源 172.19.11.210 通过端口 22 的所有数据包。
$ sudo tcpdump src 172.19.11.210 && -n port 22 -c 5
按协议过滤网络
要捕获特定协议的网络数据包,让我们将协议名称指定为命令选项。 为了 example:
$ sudo tcpdump -n udp
结论
您已经详细了解了如何使用 tcpdump 命令对 Linux 系统上的网络进行故障排除和分析。
如果您有任何疑虑,请告诉我。 感谢您的阅读。