做网站推广优化靠谱/googleplay安卓版下载
1.前言
之前我们谈到的命令大多数都是针对主机的网络参数设置的,而ping是两台主机之间的连通性判断
那么有没有命令可以跟踪两台主机之间通过的各个节点(node)的通信状况的好坏呢?
判断是自己的网络有问题还是外部的Internet有问题,这个时候就要使用traceroute命令
2.使用方法如下
traceroute [选项与参数] IP
-n | 可以不必进行主机的名称解析,单纯用IP,速度较快 |
---|---|
-U | 使用UDP的port 33434来进行检测,这是默认的检测协议 |
-I | 使用ICMP的方式来进行检测 |
-T | 使用TCP来进行检测,一般使用port 80测试 |
-w | 若对方主机在几秒钟没有回应就声明不通,默认是5s |
-p 端口号 | 若不想使用UDP与TCP的默认端口号来检测,可以在此改变端口号 |
-i 设备 | 用在比较复杂的环境,如果网络接口很多比较复杂时,才会用到这个参数。举例来说,如果我有两条ADSL可以连接到外,那么我的主机就会有两个ppp,我可以用-i 来选择是ppp0还是ppp1 |
-g 路由 | 与-i参数相仿,只是-g后面接的是gateway的IP就是了 |
3.举例
示例一:检测本机至baidu去的各节点的连接状态
注意:traceroute这个命令会针对预连接的目标的所有node进行UDP的超时等待
在上面的例子当中,它会经过3个节点,traceroute会主动对这3个节点做UDP的响应等待,并检测回复的时间
比较特殊的是4以及4以后,会返回星号,代表该node可能设有某些防护措施,让我们发送的数据包信息被丢弃掉
因为我们是直接通过路由器传递数据包,并没有进入路由器去取得路由器的使用资源
所以某些路由器仅支持数据包转递,并不会接受来自客户端的各项检测,此时就会出现上述的问题
traceroute默认使用UDP数据包,如果想使用其它数据包,可以用-I 或-T试试看
示例二:防止攻击
由于目前UDP/ICMP的攻击层出不穷,因此很多路由器可能就此取消这两个数据包的响应功能
因此我们可以使用TCP来检测
使用同样的方法,通过等待时间1s,以及TCP 80端口的情况,可以按照如下的方法做: