ping命令-W参数可设置的最大取值是多少
ping命令
-W参数支持的最大值说明 -W是ping命令用于设置单个ICMP包响应等待超时的参数,不同系统、不同版本的ping实现对该参数的单位定义、取值上限没有统一标准,返回ping: bad linger time报错的直接原因是传入的超时值超过了当前环境ping版本的硬编码阈值,各主流实现的具体规则如下:
- 现代Linux发行版默认搭载的iputils ping:
-W单位为秒,取值上限为2147483秒(约24.8天),传入5000属于合法范围,不会触发报错。如果在Linux环境执行ping 127.0.0.1 -c3 -W 5000报错,基本是使用了嵌入式场景常见的busybox精简版ping、或是老旧发行版搭载的netkit-ping,这类精简/老旧实现的-W单位同样为秒,硬编码上限通常为3600秒(1小时),5000超过阈值就会返回对应报错。 - macOS、FreeBSD等BSD系系统自带的ping:老版本
-W单位为秒,硬编码上限为600秒(10分钟),传入5000会直接触发报错;新版本调整单位为毫秒,上限对应为600000毫秒(即10分钟)。
如果需要设置超过-W参数上限的等待超时,可以通过系统timeout命令包裹ping实现,不需要依赖-W参数,例如要实现单包等待5000秒的效果,可以执行以下命令:
timeout 5010 ping 127.0.0.1 -c3
命令里多预留10秒是为了覆盖ping本身的默认超时冗余,避免提前终止进程。
内容的提问来源于stack exchange,提问作者Rebecca
相关产品推荐
相关产品推荐

