我正在测试网络中节点的可用性。为此,我使用 ping 命令并查看该机器是否响应。
但是,如果无法访问某台机器,ping 应该会显示“无法访问目标主机”。但如果可以,它应该会返回响应消息。但是没有收到任何消息!
这意味着什么? - 该特定机器上未启用 ping 但可通过网络访问?
答案1
Ping 并不是测试远程网络可用性的最佳工具。虽然 ping 可以告诉您网络是否可访问并向您发送响应时间,但缺少这些信息并不意味着网络已关闭。俗话说,没有证据不代表不存在。
打开浏览器,访问 yahoo.com 和 intel.com。两个都显示出来,对吧?尝试 ping Yahoo,ping yahoo.com
然后尝试 ping Intel,ping intel.com
Intel 没有返回任何 ping 结果。Intel 可能出于安全原因禁用了 ping 响应,例如拒绝 ping 泛洪。
ping 的另一个问题是人们经常误解结果。如果响应时间过长,人们经常会责怪终端。如果您使用的是 Windows,请键入pathping yahoo.com
,您将看到 traceroute 和 ping 的组合,这会提供更好的信息。
答案2
这意味着您的 ICMP 数据包 (ping) 被默默丢弃,没有发送任何响应。发生这种情况可能有以下几种原因:
- 路由器或(更可能)端点上已禁用 Ping。
- 网络拥塞或配置错误
答案3
如果你在 Linux 机器上,你可以使用nmap反而
nmap -sP 192.168.x.0/24
对于 Windows,网络扫描仪是一款出色的工具(具有“实时显示”功能,可实时显示主机的进出情况)
- 编辑 -
由于 netscanner 不再是免费软件,而是试用软件(仅显示前 10 个结果),我开始寻找替代品,然后偶然发现了这个免费产品: https://www.mitec.cz/netscan.html
该网站还拥有许多其他有用的相关网络工具
答案4
不要忘记 ping 与其他连接一样。必须在防火墙中启用它才能被接受,并且必须有监听并发送回复的服务。
在大多数情况下,ping 无法工作是因为防火墙设置。
另外不要忘记,通常 ping 会返回连接超时。。目标主机不可访问。当IP不在网络内时,返回。