Image

知识库 → 使用 tcpdump 监控传入的 icmp 请求

[虚拟服务器]
出版日期: 27.03.2024

ICMP 请求通常用于查明服务器当前是否在线。 使用指定 IP 地址的 ping 命令来检查节点的可用性。

ping xx.123.xx.123
Exchange of packets from xx.123.xx.123 to 32 bytes of data:
Response from xx.123.xx.123: number of bytes=32 time=3ms TTL=64
Response from xx.123.xx.123: number of bytes=32 time=3ms TTL=64

同时,此时远程服务器发送响应,从命令输出中可以清楚地看出它是可用的。

在这种情况下,在我们向其发送请求的远程服务器上,日志中将不会有事件数据。 有时您需要找出当前谁正在发送 icmp 请求,为此我们将使用 tcpdump 实用程序

1.安装tcpdump

apt update
apt install tcpdump

2.定义网络接口

apt install net-tools
ifconfig

该命令将显示所有网络接口,我们需要选择要侦听数据包的网络接口,在我们的示例中为 enp3s0

tcpdump -i enp3s0 icmp and icmp[icmptype]=icmp-echo -n
listening on enp3s0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
21:52:20.352600 IP xx.234.xx.234 > xx.123.xx.123: ICMP echo request, id 1, seq 57, length 40
21:52:21.360715 IP xx.234.xx.234 > xx.123.xx.123: ICMP echo request, id 1, seq 58, length 40

要写入文件,请使用以下命令:

tcpdump -i enp3s0 icmp and icmp[icmptype]=icmp-echo -n >> /var/log/ping.log

该命令将使用 icmp 协议将曾经访问过该主机的所有 IP 地址写入文件。

我们不建议永久启用此命令,因为它会浪费硬件资源。 此示例旨在用于调试目的。





暂时没有评论