电脑ping_ping,不仅仅用于检测源主机和目标主机的连通性

ping是最常用的网络检测命令,主要用来检测源主机和目标主机的连通性,但ping命令的作用远不止于此。

1. ping命令的作用

  • ping(Packet Internet Groper)命令用于验证源主机和目标主机的连通性。
  • 定量了解源主机和目标主机之间的网络速度。
  • 根据域名得到IP地址。
  • 粗略判断目标主机是Windows系列还是UNIX/Linux系列主机。
  • 修改个人主机TTL初始值,迷惑对方,增加对方攻击自己主机的难度。
e210bdcd886662f93079d9f92ef653f5.png

ping 源主机:回复请求 目标主机:回复回答

2. ping命令的输入输出

Windows、linux、unix都提供命令行的ping命令。格式类似:C>ping [可选参数] IP地址/域名。以ping新浪域名为例,如下图。

923234bff7b48275b5c1424804974972.png

ping 的输入输出

  • 源主机(本机)发送4个1024字节的数据包给目标主机(sina.com.cn),目标主机针对性返回了4个各1024字节的应答数据包,发送数据包和接收数据包没有丢失,说明源主机和目标主机sina.com.cn连通性良好,如果丢包或者数据包往返行程时间较长,说明网络状态不好。
  • 请求开始到返回为止,每次往返行程都是4ms,平均值也是4秒,说明源主机和目标主机之间的连接很稳定,往返行程的用时反映了源主机和目标主机的网络速度,用时越少,表示网络速度越快。
  • 域名sina.com.cn,对应的IP地址为123.126.157.222
  • TTL为58,是目标主机返回报文中的TTL值,一定程度上说明目标主机组织应答报文,并将应答报文一步一步返回给源主机所经历的网络节点数量,藉此大致判断目标主机是Linux主机,分析过程见下面的说明。

3. 关于TTL的说明

  • TTL(Time To Live)生存时间,是IP数据包的一个属性,源主机发送数据包时设定TTL初值,数据包传送过程中每经过一个路由器节点TTL减1(或减一个特定的值);当TTL为0时,当前路由器放弃该数据包,数据不可达。
  • TTL设置了放弃数据包的条件,经过一系列的步骤,仍然找不到目标主机时,就不再找了。设置跳数限制,防止了数据包在互联网络上永不停歇的找下一个节点。
  • 不同版本不同的操作系统都有对应的TTL默认值。TTL值过小,数据包没有经过几个网络节点就被丢弃了,虽然源主机能很快的得到返回结果,但很多目标主机主机还没有找到,通信过程完成率低。
  • TTL值过高,会导致一个报文在网络中长时间寻找下一个节点,以期找到目标主机。这样源主机长时间得不到回复信息,并且很可能会浪费大量的网络资源。
  • 不同的系统都提供TTL值的修改方法。针对windows系统,可以修改注册表表项DefaultTTL。如下图的目录结构。这样可以自主控制发送的数据包在网络中传送的长度(经历的网络节点数),同时也能干扰别有用心的人可能的对自己电脑的探测。本人在个人环境中测试win10家庭版和专业版,发现家庭版修改DefaultTTL后不起作用;专业版修改后有效。
5afae234f7db4b413a9ec0c7c5bbd226.png

通过注册表,修改windows系统的TTL值

  • 默认情况下,Linux系统的TTL值为64或255,目前主流Windows操作系统的TTL值为128, UNIX主机的TTL值为255。
  • ping命令使用ICMP(Internet Control Message Protocol 网际控制报文协议)中“回送请求”和“回送回答”功能。
  • 请求报文由请求方填写TTL值控制网络传送到目的地址之前可以经过的最多网络节点数量。
  • 请求回答报文由回答方(目标主机)形成回答报文,报文中的TTL为回答方的初始值,用于控制回答报文达到请求方可以经历的网络节点的最大数量。
  • 目标主机TTL初始值和返回给源主机的TTL之差,一定程度上反映了该数据包经过的网络节点(网段)的数量。
  • 如下图,通过ping和tracert粗略估计目标主机的操作系统类型(不会完全准确)。
  • 针对ping的请求回答报文(目标主机的回复),目标主机设置报文的TTL初始值,每经过一个网络节点(路由器)TTL=TTL-1,当 TTL==57时报文传回了源主机。使用tracert(unix中是traceroute)分析,从源主机到目标主机需要经过7个网络节点(路由器),默认也认为从目标主机返回源主机也经过7个网络节点;顾可以粗略判断目标主机TTL初值-7=57,则目标主机的TTL=64,如果目标主机没有人为修改TTL的默认值,则目标主机应该是LIUNX操作系统的主机。
9d506132dc1922951d523bf6113c7d4d.png

通过ping和tracert初步判断目标主机的TTL

  • 不同的操作系统的弱点或漏洞是不同的,入侵者对于不同的操作系统的攻击方法也是不一样的,如果我的主机win10主机,默认值TTL=128,但我修改TTL=255,探测方可能得到结论认为我是一台unix主机,unix主机的攻击难度比较大,也许就放弃攻击了。通过给攻击者一些迷惑信息,给主机的安全提供了多一些的保障。
  • 查看自己电脑的ttl值:ping 127.0.0.1 或者 ping 自己主机的ip地址。修改windows的TTL默认值后,必须重启主机才有可能生效。

4. ping命令的用法

  • Windows系统中,ping –help可以列出ping命令的用法;linux和unix中,man ping可以列出ping的帮助文档。
  • 下图是windows中ping的帮助信息。其中 ping –l size 可以修改ping数据包的字节数,用来测试网络性能;-r和-s选项,可以根据跟踪跃点路由,结合tracert命令(对应unix是traceroute)对于了解网络路径有帮助。
d2627fc3b2fe1c37da5108de3bc1390f.png

windows 中 ping 命令的帮助信息

  • 下图是使用 ping - l size 选项测试的baidu.com.cn 和 sina.com.cn. 对于组建的内网,可以使用该命令测试内网速度是否满足要求,当然使用ftp文件跨主机传送的方式比ping要好,ping也能反映出网络速度的一些信息。
  • 可以看到sina.com.cn可以运行10240字节的ICMP数据包,baidu.com.cn用4096字节的数据包探测时,对方就拒绝了。
  • 所以很多主机、路由器、防火墙设置了ICMP数据包的过滤,ping命令使用ICMP报文,所以ping会超时。因为大量的ping实际是对目标主机的网络攻击。
6936eb728e5a7a13a5578a8d6c1b93f1.png

大数据包的ping测试,频繁的ping测试影响网络影响主机

5. ping 常见的错误消息

ping不通主机也不能断定主机不可达,因为很多主机和网络过滤了ping命令使用ICMP协议,不准其他主机ping自己。

ping主机过程中常遇到“无法访问主机”和“请求超时”的报错信息,这是我们关注的重点;对于ping过程中出现参数错误问题、路由重定向问题,是系统的行为,我们不好干预。

  • 无法访问目标主机。ping同一网段已经关闭的主机,或者同一网段不存在的主机,会返回无法访问目标主机的提示;ping其他网段的主机,但没有设置默认路由,ping的数据包找不到下一跳到哪儿去,也会出现无法访问目标主机的信息。
a07bc93c0b984fd2bf5a0a86e5b8a876.png

ping 返回“无法访问目标主机”的示例

  • 请求超时:ping其他网段的主机,目标主机已经关闭,或者对应IP地址的主机没有挂载主机,请求会超时。
c942264ef23196386d4c11104c3e4ee6.png

ping 其他网段已经关闭的主机,ping的ip地址没有挂载实际主机,请求会超时

  • 请求超时:不同网段的目标主机存在,但必经链路中有一处可能设置了ICMP数据包过滤(比如防火墙设置),就会超时。例如ping苹果中国官网,ping不通,但苹果中国官网实际是可用的。
a18b93f27b5b952214b9055888cff403.png

ping不通,ping请求超时,但实际可以访问的站点

  • 请求超时:源主机网络设置错误导致超时。例如有多块网卡的主机,每块网卡的IP地址应该处于不同的IP子网,否则源主机不知道将数据包发到哪个网络接口,因为有两个网络接口都连接在同一网段,源主机也不知道用哪个地址作为数据包的源地址。因此,从这台主机去Ping其他机器,IP层协议会无法处理,超时后,Ping 就会给出一个“超时无应答”的错误信息提示。
  • 参数问题:当路由器或目标主机收到的数据报的首部中有的字段值不正确时,就丢弃该数据报,并向源主机发送参数问题的报文。这种情况我们普通用户不好干预。
  • 改变路由。路由器把改变路由报文发给主机,让主机知道下次应该将报文发送给其他路由器,走其他路由器的路径可能更好。这种情况属于系统问题,我们普通用户不好干预。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值