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 地址写入文件。
我们不建议永久启用此命令,因为它会浪费硬件资源。 此示例旨在用于调试目的。
暂时没有评论