Izzo Asked: 2018-04-25 09:06:54 +0800 CST2018-04-25 09:06:54 +0800 CST 2018-04-25 09:06:54 +0800 CST 哪个 Linux 进程负责响应 ping? 772 我有一个基于 Linux 的进程控制器,它偶尔会锁定到无法 ping 它的地步(即我可以 ping 它,然后在不修改网络设置的情况下它变得不再可 ping)。 我很好奇,什么进程/系统负责实际响应 ping?看来这个过程正在崩溃。 network-interface ping 3 个回答 Voted Best Answer Patrick Mevzek 2018-04-25T09:14:10+08:002018-04-25T09:14:10+08:00 内核网络堆栈正在处理由ping命令发送的 ICMP 消息。 如果您没有得到回复,除了网络问题或过滤,以及基于主机的过滤/速率限制/黑洞/等。这意味着机器可能被某些东西超载,这可能是暂时的,或者内核崩溃,这种情况很少见但可能发生(硬件故障等),不一定是因为 ICMP 流量(而是试图用这样的流量使其超载)可以在服务器生命周期之初进行很好的测试,以了解它如何维持事物)。在内核崩溃的后一种情况下,您应该在日志文件或控制台上有足够的信息。 另请注意,ping检查服务是否在线几乎总是错误的工具。出于各种原因,但主要是因为根据定义,它不能模拟真实的应用程序流量。例如,如果您需要检查网络服务器是否仍处于活动状态,则应改为对其进行 HTTP 查询(TCP 端口 80 或 443),如果您需要检查邮件服务器,则进行 SMTP 查询(TCP 端口 25),如果一个 DNS 服务器、一个 UDP和一个对端口 53 的 TCP 查询等。 Outurnate 2018-04-25T09:09:23+08:002018-04-25T09:09:23+08:00 没有负责响应 ping 的用户态进程。Ping 只是一个发送 ICMP 回显数据包的实用程序。这些由内核的网络堆栈接收和处理 Matija Nalis 2018-04-25T15:39:12+08:002018-04-25T15:39:12+08:00 内核本身(不是任何用户进程)负责发送ICMP 回应回复消息以响应ICMP 回应请求消息。因此,如果主机停止响应 ping,通常是由于以下一些原因: 您和被 ping 的主机之间的网络连接可能已被切断。这可能是由于本身的大量原因造成的:电缆的物理损坏、无线情况下的噪音、路由表损坏、您受到 DDoS 攻击、路由器/交换机之间存在问题等。在这种情况下,您可以通过以下方式开始故障排除在目标主机上使用ethtool(8), iwconfig(8), route(8),ping(8)其路由器tcpdump(8)等。 目标主机上的防火墙设置(或您和目标主机之间的任何路由器/防火墙)可能会限制 ping 的数量(或流量的数量)。这也可能是由于fail2ban(8)按需防火墙等工具造成的。见iptables(8)检查。 目标主机出现软件/硬件故障。目标主机上的网络内核模块可能已经 OOPSed 和/或变得混乱,甚至整个内核可能已经 PANICked。您将dmesg(8)在目标主机上看到有关 at in 的消息,或在物理控制台上显示屏幕输出(如果物理访问不切实际,另一台带有串行控制台的机器可以提供帮助。)如果内核 OOPS/PANIC 是问题,具有更好驱动程序的更新内核可能帮助,或者您可以使用watchdog(8)辅助驱动程序来解决系统锁定问题。或者您可以更换硬件部件。
内核网络堆栈正在处理由
ping
命令发送的 ICMP 消息。如果您没有得到回复,除了网络问题或过滤,以及基于主机的过滤/速率限制/黑洞/等。这意味着机器可能被某些东西超载,这可能是暂时的,或者内核崩溃,这种情况很少见但可能发生(硬件故障等),不一定是因为 ICMP 流量(而是试图用这样的流量使其超载)可以在服务器生命周期之初进行很好的测试,以了解它如何维持事物)。在内核崩溃的后一种情况下,您应该在日志文件或控制台上有足够的信息。
另请注意,
ping
检查服务是否在线几乎总是错误的工具。出于各种原因,但主要是因为根据定义,它不能模拟真实的应用程序流量。例如,如果您需要检查网络服务器是否仍处于活动状态,则应改为对其进行 HTTP 查询(TCP 端口 80 或 443),如果您需要检查邮件服务器,则进行 SMTP 查询(TCP 端口 25),如果一个 DNS 服务器、一个 UDP和一个对端口 53 的 TCP 查询等。没有负责响应 ping 的用户态进程。Ping 只是一个发送 ICMP 回显数据包的实用程序。这些由内核的网络堆栈接收和处理
内核本身(不是任何用户进程)负责发送ICMP 回应回复消息以响应ICMP 回应请求消息。因此,如果主机停止响应 ping,通常是由于以下一些原因:
您和被 ping 的主机之间的网络连接可能已被切断。这可能是由于本身的大量原因造成的:电缆的物理损坏、无线情况下的噪音、路由表损坏、您受到 DDoS 攻击、路由器/交换机之间存在问题等。在这种情况下,您可以通过以下方式开始故障排除在目标主机上使用
ethtool(8)
,iwconfig(8)
,route(8)
,ping(8)
其路由器tcpdump(8)
等。目标主机上的防火墙设置(或您和目标主机之间的任何路由器/防火墙)可能会限制 ping 的数量(或流量的数量)。这也可能是由于
fail2ban(8)
按需防火墙等工具造成的。见iptables(8)
检查。目标主机出现软件/硬件故障。目标主机上的网络内核模块可能已经 OOPSed 和/或变得混乱,甚至整个内核可能已经 PANICked。您将
dmesg(8)
在目标主机上看到有关 at in 的消息,或在物理控制台上显示屏幕输出(如果物理访问不切实际,另一台带有串行控制台的机器可以提供帮助。)如果内核 OOPS/PANIC 是问题,具有更好驱动程序的更新内核可能帮助,或者您可以使用watchdog(8)
辅助驱动程序来解决系统锁定问题。或者您可以更换硬件部件。