今天闲来无事,想弄清楚学校至百度服务器的网络问题,结果不试不知道,一试吓一跳。完全出乎我的意料。我们学校的网关是172.21.6.254,172.21.4.254和172.21.7.254。发现可以ping通学校网关,却不能traceroute。如下图:

这是为什么?查了一下资料:windows的tracert预设是走ICMP协议,而linux的traceroute则预设走UDP协议,若两端点之间的UDP connection被任何firewall挡掉, 那 traceroute 就不行了.

原因好像大概知道了,就是有firewall把udp给挡掉了。解决方法:traceroute -I 加I参数改用ICMP协议。即下图,果然成功了。

可以发现,从我的服务器到达百度服务器经过了21跳。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22traceroute to baidu.com (123.125.115.110), 30 hops max, 60 byte packets

1 192.168.1.1 (192.168.1.1) 实验室路由器

2 172.21.6.254 (172.21.6.254) 学校网关内接口

3 172.21.200.5 (172.21.200.5) 学校网关外接口

4 172.30.201.6 (172.30.201.6) 本地局域网

5 211.71.94.251 (211.71.94.251) 北京市朝阳区 教育网

6 124.207.38.253 (124.207.38.253) 北京市 鹏博士宽带

7 * * * (有的就是这么设置,便于隐藏)

8 10.10.1.1 (10.10.1.1) 4.997 ms 本地局域网

9 218.241.251.105 (218.241.251.105) 北京市 鹏博士宽带

10 218.241.253.241 (218.241.253.241) 北京市 鹏博士宽带

11 218.241.245.181 (218.241.245.181) 北京市 鹏博士宽带

12 202.99.1.173 (202.99.1.173) 北京市 鹏博士宽带

13 * * *

14 * * *

15 202.106.42.97 (202.106.42.97) 北京市北京市 联通

16 61.148.154.97 (61.148.154.97) 北京市 联通

17 * * *

18 61.148.146.194 (61.148.146.194) 北京市 联通

19 61.49.168.98 (61.49.168.98) 北京市 联通

20 * * *

21 123.125.115.110 (123.125.115.110) 北京市 联通 (百度服务器)

那么我们就来了解一下traceroute的工作原理:Traceroute是用来侦测主机到目的主机之间所经路由情况的重要工具,也是最便利的工具。前面说到,尽管ping工具也可以进行侦测,但是,因为ip头的限制,ping不能完全的记录下所经过的路由器。所以Traceroute正好就填补了这个缺憾。Traceroute的原理是非常非常的有意思,它受到目的主机的IP后,首先给目的主机发送一个TTL=1(还记得TTL是什么吗?)的UDP(后面就 知道UDP是什么了)数据包,而经过的第一个路由器收到这个数据包以后,就自动把TTL减1,而TTL变为0以后,路由器就把这个包给抛弃了,并同时产生 一个主机不可达的ICMP数据报给主机。主机收到这个数据报以后再发一个TTL=2的UDP数据报给目的主机,然后刺激第二个路由器给主机发ICMP数据 报。如此往复直到到达目的主机。这样,traceroute就拿到了所有的路由器ip。从而避开了ip头只能记录有限路由IP的问题。

有人要问,我怎么知道UDP到没到达目的主机呢?这就涉及一个技巧的问题,TCP和UDP协议有一个端口号定义,而普通的网络程序只监控少数的几个号码较 小的端口,比如说80,比如说23,等等。而traceroute发送的是端口号>30000(真变态)的UDP报,所以到达目的主机的时候,目的 主机只能发送一个端口不可达的ICMP数据报给主机。主机接到这个报告以后就知道,主机到了,所以,说Traceroute是一个骗子一点也不为过

Traceroute程序里面提供了一些很有用的选项,甚至包含了IP选路的选项。

当我以为终于弄懂得时候,我发现还是太年轻了,在windows我又手贱的试了一下,又发现了问题。为什么windows下也能ping通,但不能traceroute呢?

欲知结果如何,还是待我知道以后。

linux可以ping通,Linux可以Ping通但不能traceroute相关推荐

  1. linux不能ping通域名能ping通ip

    http://blog.163.com/coco_blog/blog/static/130852930201063014836855/ 首先检查dns配置文件:/etc/resolv.conf,看下d ...

  2. 能ping通Linux但是ssh连不上问题解决方法

    问题:能ping通Linux服务器 但是ssh连不上  <Linux redhat AS4 版本> 解决方法这个问题花了我20分钟去查资料,网上写的解决方法也是五花八门,不过,总算解决了, ...

  3. linux能ping通ssh连不上,能ping通Linux但是ssh连不上问题解决方法

    问题:能ping通Linux服务器 但是ssh连不上 解决方法这个问题花了我20分钟去查资料,网上写的解决方法也是五花八门,不过,总算解决了,分享出来和大家一起学习. 服务器正常,PING也能PING ...

  4. 分析windows宿主机Ping不通linux虚拟机的其中一种情况

    ping不通的情况是由于设置网络选项的时候,可以看到界面名称的选择如下(当前选择的是无线网卡驱动): ping得通的情况是由于设置网络选项的时候,可以看到界面名称的选择如下(当前选择的是有线网卡驱动) ...

  5. Linux用ICMP协议实现简单Ping网络监测功能

    From: http://www.linuxidc.com/Linux/2012-05/61073.htm ICMP是(Internet Control Message Protocol)Intern ...

  6. 每天一个linux命令(54):ping命令

    Linux系统的ping命令是常用的网络命令,它通常用来测试与目标主机的连通性,我们经常会说"ping一下某机器,看是不是开着".不能打开网页时会说"你先ping网关地址 ...

  7. Linux日常运维管理技巧(二)Linux防火墙:你可以ping别人,别人ping不了你、转发、代理

    目录 Linux防火墙 netfilter iptables filter表小案例 nat表应用 Linux防火墙 selinux临时关闭 setenforce 0 [root@zyshanlinux ...

  8. linux虚拟机如何ping,linux虚拟机与真机互相ping的问题

    linux虚拟机与真机互相ping的问题 发布时间:2010-12-02 13:25:49来源:红联作者:qianlong4526888 [i=s] 本帖最后由 qianlong4526888 于 2 ...

  9. Linux系统如何PING地址,Linux下指定源ip进行ping操作的方法

    [序言] 目前在做一台电脑上两个虚拟机之间的通信. 对于每个虚拟机都有两个网卡,一个桥接模式和一个NAT模式. 那么问题来了.... 如果使用简单的ping ip形式的命令得到ping通的结果,只能证 ...

  10. linux网络协议栈招聘,Linux 网络协议栈开发(一)ping命令

    linux网络开发中比较常用的命令之一是ping,最近一直再查rtl的模块连接问题,使用ping命令后一段时间,模块就卡主了感觉,不能完成基本的网络通信了,所以来查一查,我通常使用了ping命令加上要 ...

最新文章

  1. 2018usnews计算机专业排名,2018年研究生计算机专业前50排名(美USNews版)
  2. Swift 性能相关
  3. Django之web框架的本质
  4. 那些女程序员们的故事
  5. 重做《机房收费系统》——概要设计(UI)
  6. 百度免费开放长语音识别功能
  7. 用 Javascript 验证表单(form)中多选框(checkbox)值
  8. sscom32串口测试软件连接串口时有时会造成设备异常,更换别的串口软件后正常,特此记录
  9. linux下blast设计引物,Primer-BLAST:NCBI的引物设计和特异性检验工具
  10. Python金融大数据风控建模实战
  11. CodeReview流程梳理
  12. shader篇-高光反射模型
  13. nginx resolver
  14. 一文搞懂InheritedWidget局部刷新机制
  15. Auto.js网盘下载加打包插件
  16. 成功就是一种自我满足
  17. android RecyclerView 简单实现横竖布局穿插
  18. dcmm认证发证机构有哪些?
  19. 叉姐的魔法训练小结(未完结)
  20. 手持两把锟斤拷, 口中疾呼烫烫烫, 脚踏千朵屯屯屯, 笑看万物锘锘锘

热门文章

  1. Elasticsearch、Elasticsearch-head、Kibana 安全设置账号密码验证登陆
  2. 强化学习3——有模型(Model-base)与无模型(Model-free)RL的区别
  3. s l m 尺码排序 php,m l xl xxl是什么意思?服装尺码s m l xl xxl含义
  4. python在长字符串中寻找重复子串_Python 入门到精通
  5. C/Cpp / typeof、_typeof 和 _typeof_ 区别和联系
  6. kali linux 截图位置,Kali Linux中使用截图工具
  7. mysql 性能日志_Mysql系列(十一)—— 性能分析慢查询日志
  8. springboot去掉git版本控制_关于 Git 提交这些规范,你都遵守了吗?
  9. mysql 控制台全是_Mysql控制台命令大全
  10. 生成android_Android开发:生成桌面快捷方式是这样做的