文章总结: 文档分析ping公网地址比内网路由器响应更快的原因,指出代理软件通过DNS劫持将域名解析至测试段IP(198.18.0.190),使ICMP请求在本机完成交互。通过TTL值64证明报文未经路由转发,并对比ping内网IP时路由器直接响应且不递减TTL的机制,解释转发场景下TTL减1的规则及防环路设计。 综合评分: 82 文章分类: 网络安全,渗透测试,技术标准
为什么ping公网比ping内网(路由器IP)速度还快?
原创
车小胖谈网络 车小胖谈网络
车小胖谈网络
2026年4月2日 13:43 上海
在小说阅读器读本章
去阅读
代理软件劫持了DNS解析,将www.baidu.com返回一个伪造的IP=198.18.0.190。
当Ping程序以目的IP =198.18.0.190发送Ping包时,被代理软件捕获并响应。所以Ping包的ICMP Echo Request、Reply都没有离开本机,故响应非常快。
根据RFC 6890,198.18.0.0/15这个IP区段是一个测试号段。伪造的198.18.0.190处于这个区段。
另外,从Ping www.baidu.com的Echo报文的TTL=64可以进一步推测,这个Echo报文大概率是本机生成的。一般的Echo报文常用的TTL有255、128、64。根据Ping报文的响应不到毫秒级,大概率使用TTL=64。
如果途经中间路由节点的-1操作,不可能到达本机时依然保持TTL =64,一定比64小。
为何Ping 192.168.3.1没有被劫持?
没有DNS查询。
可以尝试Ping 8.8.8.8,这个因为没有DNS查询,应该不会被劫持。
如果你尝试Ping www.google.com,这个应该会被劫持。
可能会问,既然Ping 192.168.3.1是从Router上响应的Echo Reply,TTL初始值大概率也是64,为何到达本机时不应该-1,从而变成63?
推演一下,Ping 192.168.3.1到达Router,路由器发现这是自己的IP,将Ping包punt给IP、ICMP处理。生成ICMP Echo,初始化TTL=64。然后经由ip_output处理。
ip_output会对TTL =64做-1的操作吗?
并不会,而是保持初始值64离开并进入网卡发出。
当Ping包到达本机时,经由destination ip、source IP、identifier匹配socket,然后将ping 包放入socket receive queue,并wake up 该Ping进程。唤醒的Ping进程recv,将socket的Ping报文copy出来打印到屏幕上。TTL依然保持初始值64。
什么时候才会有TTL-1的操作?
当一个packet需要转发(forward),所谓forward,通俗地说,从一个接口进,从另一个接口出。ip_forward处理且成功的packet的TTL会-1。但是在-1操作之前,会检查当前的TTL是否为0或1,如果yes,直接丢弃。如果no,才会-1。
为何?
TTL=0, TTL-1 =0-1= 255(ttl is unsigned char),满血复活。当发生环路时,packet永远万寿无疆。
TTL=1, TTL-1=0,丢弃。 反正都是丢弃,为何浪费一次TTL-1的操作呢?
故,遇到以上2种情况,都是直接丢弃。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:车小胖谈网络 车小胖谈网络 车小胖谈网络《为什么ping公网比ping内网(路由器IP)速度还快?》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论