我使用“ping”已经很长时间了,主要是为了检查我的互联网是否正常运行,有时也是为了查看某个服务器是否启动。
“ping” 这个词似乎源自于使用声纳探测障碍物的同一个词。在瞄准敌方潜艇时,至少从我看过的电影来看,被瞄准的潜艇会通过脉冲撞击外表面时发出的可怕声音感受到 ping。
服务器是否有任何方法可以知道并记录某个服务器请求实际上是由 ping 服务发出的?在 Google 上简单搜索“如何查看我的服务器是否被 ping 过”并没有找到任何明显的解决方案。
答案1
有几种方法可以做到这一点,一种方法是使用 tcpdump 监视所有传入的 ICMP 回显请求(如果您使用的是基于 Linux 的机器):
sudo tcpdump -i ethX icmp and icmp[icmptype]=icmp-echo
其中 ethX 是您要监听的适配器的名称。Tcpdump 默认会解析主机名,因此您可能需要添加-n
获取 IP 的选项。使用 tcpdump 工具的另一种方法:
tcpdump ip proto \\icmp
或者你也可以使用 IPTABLES
iptables -I INPUT -p icmp --icmp-type 8 -m state --state NEW,ESTABLISHED,RELATED -j LOG --log-level=1 --log-prefix "Ping Request "
此命令将在 /var/log 目录中记录 ping 请求。