Have a Question?

如果您有任务问题都可以在下方输入,以寻找您想要的最佳答案

怎么ping网络ip

怎么ping网络ip

题图来自Unsplash,基于CC0协议

导读

  • ping命令的用法和参数详解
  • 如何ping一个IP地址(Windows/Linux)
  • ping不通目标IP的可能原因及解决方法
  • ping结果中TTL和延迟的含义
  • 把ping命令比作测深度的探珠,你一次次发送小的数字包,看它能否安全抵达目的地,然后是延迟多长耗时。

    这个工具用来检查网络连通性还是非常基础且常用的技能。不管你是在办公室或隔着几千公里的异国服务器,只要对方设备还亮着灯,就能试试看通不通。别小看它,网络出了问题,探珠没扔进缸底,搞得不好直接一脚踩空。

    下面介绍怎么用:

    测网络连通性先用这小探珠试试:

    1. Windows系统:打开命令提示符,输入 ping <目标IP或域名>。比如想测下百度,就是 ping baidu.com。成功了会像闹钟一样说:

      来自 <ip的ping统计信息>:
      来自<网关ip>的:<值>毫秒响应时间
      ……
      成功发送:%成功发送率
      大约 <值> 毫秒的平均往返时间
      ……

      这个<值>就是每次来回花了多少时间,如果你听见请求超时或类似错误,基本上是接不到回应,说明珠子没了。

    2. Linux/Mac:打开终端,输入 ping <目标IP或域名>。一样,成功响应后会刷出两次往返时间(比如第一段数据是时间,最后一行是--- <目标> ping统计信息 ---,接着给出完整统计)。按Ctrl+C能停住,不然它就有“情深意长”的本事,一直发下去。

    参数也很多,你可能会想让小探珠发更多次,告诉它时间隔开发,大小也打多了瞧瞧:

    • Windows,用参数 -count <次数> 控制发多少次,-w <毫秒时间> 控制单个探测等待时间,-i <毫秒时间> 控制每次探测之间的间隔。如果嫌太啰嗦,其实就是告诉它:ping <ip> -count 4 ①;想要在间隔0.5秒再发一次,用 ping <ip> -w 100 -i 500(一次发完要等100毫秒,然后等500毫秒再发每次数据包)②;要定制数据包的大小,比如给小探珠穿上32K的大衣,用 ping <ip> -l 32768(数据包大小,Windows系统用的是 -l 指定字节)③。

    Linux 也可以用类似的参数,比如 -c <次数> ①,然后是 -W <秒数> 指的是整体超时时间, -w 接收器等待时间是多少,可能会引起混淆,但可以理解成接收超时设置, -s <字节> ③调整数据包大小,后面别忘了加上 -n-c 用了就没它。比如 ping -c 5 -W 2 -s 1024 example.com,那么就是到这回来5次命令,每次发之前等最长2秒,包里面塞1024个字节。

    常见错误和解决方法,要网络通畅了才方便ping。

    1. "请求超时"说明没收到回音,水没挑到地方?可能原因一箩筐:
      • 你自己本地的线、连你的设备(比如交换机、路由器)都断了。试着换根线,或者找别人的电脑连上同一个设备测测,检查配线和插口有没有问题。
      • 通往中转站(网关)的路被阻了。试着ping一下你那个连接外网设备的地址,比如路由器IP,再试试ping你家宽带的默认网关,还能没别的设备都能ping IP吗?
      • 连续ping(尤其在一问竖子成名阶段)可能被目的地设备识别成攻击或骚扰,很多设备会禁止源IP只发ICMP的流量(俗称ping of death或就是拒绝回答)。
      • 你的系统没收到感兴趣的目标地址,或者你要Ping的是个名字,不是实际存在的IP。需要确认输入有没有错,是不是真的存在这个地方。
      • 中转的路由器或别的设备对你那方向的IP包不转发,或者说,路径上那些箱子在这个IP上丢了你的珠子。这时候可以尝试 tracertmtr 来找原因。
      • 或者可能你所在的网络设置了策略,不让你去Ping某些地方,有些人不爽你老来探探他身世。

    一般不建议用手动ping作为维护主要方式,因为它不智能,只是碰运气。故障排查时,需要结合 pingping 路由(特权检查)、traceroute(走哪条路)、mtr(持续监工)等工具。如果真的怀疑是网络双方还不够亲密,可能要考虑是两边互相不通话,是不是因为路由器那边设置里有黑洞或策略路由绕过了。总之,没啥大问题,不要再看见ping不通就一筹莫展了。

    细看ping的结果,后面那些附加信息其实也挺有用:

    TTL 指生存时间。一粒探珠进入世界之前被设定了寿命(递减方式)。假设出发前它被给了100岁寿龄,经过每一跳,年龄就减一。最早过生日减到0的,那颗珠子就会宣告死亡,不再往下传播。这个默认寿命值在操作选择上,例如大多数Linux是64,Windwos可能有128-129这种设定,然后你看到目标TTL值=64,实际上意味了在这条路线上你看到的设备是以Linux为基础正在工作的,或者可能是缓存转发。大约多少跳呢?那深入程度就是你默认TTL数值减去最终剩余值之间的差值除以每个中间路由器减少一的规律计算出来的数量级。不过记得这只是个近似值,尤其跳数变多后(超过64),网络状况可能千差万别,并不精确。

    延迟也就是往返时间 RTT。指你的探珠发出到回来需要多长时间(单位是毫秒ms),用 = 这个符号展示。数值越小,感觉越快,一般单跳在1-5ms算网卡网线或本地设备工作OK,大于100ms就比较慢了。比如你要下载大片的时候,如果节点之间的每次消息交换都要100ms才能传回来,那真的想放弃;而如果全程加起来10毫秒很理想,比如局域网,发个hello过去眨眼就回。当然,这个值还是看网络负载和路由跳跃次数不一而定。有可能在拥挤马路上听不到珠子碰撞的细微声响,反馈还是会慢;也可能走了条近道,跳得少,速度快如闪电。

    © 版权声明

    本文由盾科技原创,版权归 盾科技所有,未经允许禁止任何形式的转载。转载请联系candieraddenipc92@gmail.com