为什么ping公网比ping内网(路由器IP)速度还快?

admin 2026-04-27 04:23:34 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文档分析ping公网地址比内网路由器响应更快的原因,指出代理软件通过DNS劫持将域名解析至测试段IP(198.18.0.190),使ICMP请求在本机完成交互。通过TTL值64证明报文未经路由转发,并对比ping内网IP时路由器直接响应且不递减TTL的机制,解释转发场景下TTL减1的规则及防环路设计。 综合评分: 82 文章分类: 网络安全,渗透测试,技术标准


cover_image

为什么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 6890198.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)速度还快?》

评论:0   参与:  0