Menu
CoddyTech

Ping 何时会说谎

Coddy 使用终端进行网络通信 课程的第 17 课,共 47 课。

Ping 是大家最先想到的工具,但它能回答的问题比人们想象的更有限。它只能告诉你机器是否运行正常,却无法说明你真正关心的服务是否正在运行。

服务器可以完美响应每一次 ping,但运行在上面的 Web 服务器可能已经崩溃。机器正常运行,服务却已停止。Ping 看不到这种区别,因为它从未与服务通信。

反过来也一样。许多主机被配置为完全忽略 ICMP,所以即使机器正在正常处理流量,ping 也会报告 100% 丢包。ping 失败并不能证明有什么问题。

因此,ping 是逐步排查的第一步,绝不是完整的诊断。第二步是检查端口本身。

challenge icon

挑战

中等

展示 ping 无法识别的确切情况:机器有响应,但端口上没有任何服务。

针对 127.0.0.1,并且完全不启动服务器:

  1. Ping 一次,并打印 host up
  2. 用 nc -z 检查端口 9999,并打印 port closed

预期输出:

host up
port closed

这台机器显然是正常运行的。这正是重点:机器在运行,不代表它正在提供服务。

亲手试试

终端
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

使用终端进行网络通信中的所有课

自己练习: Terminal 在线编辑器