网络不通用traceroute,网络不通用什么命令查看

http://www.itjxue.com  2023-01-09 05:38  来源:未知  点击次数: 

linux网络不通怎么排查

先ping确认通不通,然后用traceroute IP

看看能通到哪,如果中间短了,可能是路由数据不完整。如果最后一跳短了,很可能是最后一跳缺乏回程路由或者访问的设备有防火墙保护,需要调整防火墙规则。

Linux系统中traceroute命令使用详解

Linux系统中traceroute命令可以追踪到网络数据包的路由途径。下面由我为大家整理了linux系统中traceroute命令使用详解,希望对大家有帮助!

Linux系统中traceroute命令使用详解

1.命令格式:

traceroute[参数] [主机]

2.命令功能:

traceroute 指令让你追踪网络数据包的路由途径,预设数据包大小是40 Bytes, 用户可另行设置。

具体参数格式:traceroute [-dFlnrvx] [-f存活数值] [-g网关][-i网络界面][-m存活数值][-p通信端口][-s来源地址][-t服务类型][-w超时秒数][主机名称或IP地址][数据包大小]

3.命令参数

-d使用socket 层级的排错功能

-f设置第一个检测数据包的存活数值TTL的大小

-F设置勿离段位 ----我也不知道啥是勿离段位,查了下没查到什么信息^^

-g设置来源路由网关,最多可设置8个

-i使用指定的网络界面送出数据包

-I使用ICMP回应取代UDP资料信息

-m设置检测数据包的最大存活数值TTL 的大小

-n直接使用IP地址而非主机名称

-p设置UDP传输协议的通信端口

-r忽略普通的routing table ,直接将数据包送到远端主机上

-s设置本地主机送出数据包的IP地址

-t设置检测数据包的TOS数值

-v详细显示指令的执行过程

-w设置等待远端主机回报的时间

-x开启或关闭数据包的正确性检验

linux系统中traceroute命令实例

实例1:traceroute 用法简单,最常用的用法

命令:traceroute

说明:

记录按序列号从1开始,每个记录就是一跳,每跳表示一个网关,我们看到每行有三个时间,单位是 ms,其实就是 -q 的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果您用 traceroute -q 4 , 表示向每个网关发送4个数据包

有时我们 traceroute 一台主机时,会看到有一些行是以星号表示的。出现这种情况,可能是防火墙封掉了 ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。

有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因,当然如果某台DNS出现问题时,不能解析主机名、域名时,也会有延时长的现象;您可以加 -n 参数来避免DNS 解析,以 IP格式 输出数据。

如果在局域网中的不同网段之间,我们可以通过 traceroute 来排查问题所在,是主机的问题还是网关的问题。如果我们通过远程来访问某台服务器遇到问题时,我们用到 traceroute 追踪数据包所经过的网关,提交 IDC 服务商,也有助于解决问题;但目前看来国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商也不可能帮助我们解决。

实例2:跳数设置

命令:

traceroute -m 10

实例3:只显示IP 地址,不查主机名DNS

命令:traceroute -n

实例4:探测包使用的基本UDP端口设置6888

命令:traceroute -p 6888

实例5:把探测包的个数设置为4个

命令:traceroute -q 4

实例6:绕过正常的路由表,直接发送到网络相连的主机

命令:traceroute -r

实例7:把对外发探测包的等待响应时间设置为3秒

命令:traceroute -w 3

补充:linux系统中traceroute 的工作原理

traceroute 程序的设计是利用 ICMP 及IP header 的TTL(time to live)栏位(field)。首先,traceroute 送出一个 TTL 是1 的IP datagram(每次送的的是3个 40字节的包,包括源地址,目的地址和包发出的时间标签)到目的地,当路径上的第一个路由器(router)收到这个 datagram 时,它将TTL减少 1,此时,TTL变为0了,所以该路径会将次 datagram 丢掉,并送回一个 【ICMP time exceeded】消息,traceroute 收到这个消息后,便知道这个路由器存在于这个路径上,接着traceroute 再送出另一个 TTL为 2 的 datagram ,发现第二个路由器,然后一直重复执行这种操作,直到某个datagram 抵达目的地。

在traceroute 送出 UDP datagram 到目的地时,它所选择送达的 port number 是一个一般应用程序都不会用的号码,所以当此UDP datagram到达目的地后该主机会送回一个 ICMP port unreachable 的消息,而当traceroute 收到这个消息时,便知道目的地已经到达,所以 traceroute 在 server 端也就没有所谓的 daemon 程式。

traceroute 通过计算 ICMP TTL 到期消息设备的IP 地址并做域名解析。每次,traceroute 都打印出一系列数据,包括所经过的路由设备的域名及 IP 地址,三个包每次来回所花时间。

linux测试网络是否连通的命令

测试网络是否连通

1,ping IP 查看网络数据包是否可达 (首先PING 网关 如果网关都不通的话说明网络或配置有问题。如果网关通,但是没有外网 或PING不通其他网段的网络)那么可以实用下一条!

2,. traceroute Ip(域名)查看你是再哪一跳失败的。 从而检测出 是哪个设备的故障。比如网关 防火墙 路由器 交换机等。

测试端口是否连通

方法一、telnet法

telnet为用户提供了在本地计算机上完成远程主机工作的能力,因此可以通过telnet来测试端口的连通性,具体用法格式:

telnet ip port

说明:

ip:是测试主机的ip地址

port:是端口,比如80

如果telnet连接不存在的端口,那会如下图所示。

如果telnet 连接存在端口会出现如下图所示的内容,下图中以80端口为例。

方法二、ssh法

SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,在linux上可以通过ssh命令来测试端口的连通性,具体用法格式如下:

用法:?ssh -v -p port username@ip

说明:

-v?调试模式(会打印日志).

-p?指定端口

username:远程主机的登录用户

ip:远程主机

如果远程主机开通了相应的端口,会有如下图所示的建立成功的提示。

如果远程主机没有开通相应的端口,则如下图所示

方法三、curl法

curl是利用URL语法在命令行方式下工作的开源文件传输工具。也可以用来测试端口的连通性,具体用法:

curl ip:port

说明:

ip:是测试主机的ip地址

port:是端口,比如80

如果远程主机开通了相应的端口,都会输出信息,如果没有开通相应的端口,则没有任何提示,需要CTRL+C断开。

方法四、wget方法

wget是一个从网络上自动下载文件的自由工具,支持通过HTTP、HTTPS、FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理。wget名称的由来是“World Wide Web”与“get”的结合,它也可以用来测试端口的连通性具体用法:? ?《Linux就该这么学》 学习更多linux命令。

wget ip:port

说明:

ip:是测试主机的ip地址

port:是端口,比如80

如果远程主机不存在端口则会一直提示连接主机。

traceroute命令与ping命令的区别

traceroute命令与ping命令的区别为:用途不同、内容不同、适用范围不同。

一、用途不同

1、traceroute命令:traceroute命令用来显示数据包到达目标主机所经过的路径(路由器)情况。

2、ping命令:ping命令主要是用来查看到目的地址的时延和丢包情况。

二、内容不同

1、traceroute命令:traceroute命令获取到数据包所走的全部路径、节点的IP以及花费的时间。

2、ping命令:ping命令获取到目的地址的IP地址和指定IP包被路由器丢弃之前允许通过的最大网段数量。

三、适用范围不同

1、traceroute命令:traceroute命令适用于大型网络,测试是否和代理服务器联通。

2、ping命令:ping命令适用于中小型网络,测试网卡是否正常工作。

【traceroute】关于traceroute(路由追踪)的原理分析

traceroute 主要利用 IP 数据包的 TTL 字段值 + ICMP 来实现,它发送的用于探测网络路径的数据包的 IP 之上的协议可以是 UDP、TCP或ICMP。

协议表示该数据报文所携带的数据所使用的协议类型,占 8 位。

该字段可以方便目的主机的 IP 层知道按照什么协议来处理数据部分。不同的协议有专门不同的协议号。

例如,TCP 的协议号为 6,UDP 的协议号为 17,ICMP 的协议号为 1。

不同模式下,探测过程中设计的数据包如下:

UDP 探测数据包(目标端口大于 30000) + 中间网关发回 ICMP TTL 超时数据包 + 目标主机发回 ICMP Destination Unreachable 数据包

TCP [SYN] 探测数据包(默认目标端口为 80) + 中间网关发回 ICMP TTL 超时数据包 + 目标主机发回 TCP [SYN ACK] 数据包

ICMP Echo (ping) Request 探测数据包 + 中间网关发回 ICMP TTL 超时数据包 + 目标主机发回 ICMP Echo (ping) reply 数据包

UDP 端口扫描比较麻烦,它同TCP不一样,因为它不需要建立连接。

我们向 目标主机 的固定端口发送UDP数据包,可以得到 两种结果:

在运营商的路由器上,UDP 与 ICMP 的待遇大不相同。

为了利于 troubleshooting,ICMP ECHO Request/Reply 是不会封的,而 UDP 则不同。

UDP 常被用来做网络攻击,因为 UDP 无需连接,因而没有任何状态约束它,比较方便攻击者伪造源 IP、伪造目的端口发送任意多的 UDP 包,长度自定义。

所以运营商为安全考虑,对于 UDP 端口常常采用白名单 ACL,就是只有 ACL 允许的端口才可以通过,没有明确允许的则统统丢弃。比如允许 DNS/DHCP/SNMP 等。

当网络工程师用Ping时,Ping在偷摸做啥事儿?

ping命令是依托于 ICMP协议的, ICMP协议的存在就是为了更高效的转发 IP数据报和提高交付成功的机会。

ping命令除了依托于 ICMP,在局域网下还要借助于 ARP协议, ARP协议能根据 IP地址反查出计算机的 MAC地址。

另外 ARP是有缓存的,为了保证 ARP的准确性,计算机会更新ARP缓存。

有时我们traceroute 一台主机时,会看到有一些行是以星号表示的。

出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。

有些路由器会隐藏的自己的位置,不让ICMP Timeout的消息通过,结果就是在那一跳上始终会显示星号。此外服务器也可以伪造traceroute路径的,不过一般应用服务器也没有理由这么做,所以Traceroute的结果还是能够为网络分析提供一些参考的。

Linux下traceroute程序默认发送的探测包为UDP协议,windows下tracert、mtr,以及Linux下mtr默认都发送的是icmp的数据包,并不是所有网关都会如实返回 ICMP 超时报文。处于安全性考虑,大多数防火墙以及启用了防火墙功能的路由器缺省配置为不返回各种 ICMP 报文,其余路由器或交换机也可能被管理员主动修改配置变为不返回 ICMP 报文。因此 Traceroute 程序不一定能拿到所有的沿途网关地址。所以,当某个 TTL 值的数据包得不到响应时,并不能停止这一追踪过程,程序仍然会把 TTL 递增而发出下一个数据包。这个过程将一直持续到数据包发送到目标主机,或者达到默认或用参数指定的追踪限制(maximum_hops 默认最大为30)才结束追踪

如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。

如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题;但目前看来在国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商也不可能帮助我们解决。

动态图解traceroute(路由追踪)的原理与实现

IP数据报格式详解

解析为何traceroute探测的时候中间有些节点探测不到?

traceroute使用与实现原理分析

traceroute(路由追踪)的原理及实现

为什么目标地址ping能通,但是tracetoute不通?

只会用ping测试网络通不通?高级网工还会这么用

当网络工程师用Ping时,Ping在偷摸做啥事儿?

traceroute原理

TCP/UDP/ICMP Traceroute的原理及区别

网络故障诊断和排除的过程

逻辑故障中最常见的情况就是配置错误,就是指因为网络设备的配置原因而导致的网络异常或故障。配置错误可能是路由器端口参数设定有误,或路由器路由配置错误以至于路由循环或找不到远端地址,或者是路由掩码设置错误等。比如,同样是网络中的线路故障,该线路没有流量,但又可以ping通线路的两端端口,这时就很有可能是路由配置错误了。

2

遇到这种情况,我们通常用“路由跟踪程序”就是traceroute,它和ping类似,最大的区别在于traceroute是把端到端的线路按线路所经过的路由器分成多段,然后以每段返回响应与延迟。如果发现在traceroute的结果中某一段之后,两个IP地址循环出现,这时,一般就是线路远端把端口路由又指向了线路的近端,导致IP包在该线路上来回反复传递。幸好traceroute可以检测到哪个路由器之前都能正常响应,到哪个路由器就不能正常响应了。这时只需更改远端路由器端口配置,就能恢复线路正常了。

3

逻辑故障的另一类就是一些重要进程或端口关闭,以及系统的负载过高。比如也是线路中断,没有流量,用ping发现线路端口不通,检查发现该端口处于down的状态,这就说明该端口已经关闭,因此导致故障。这时只需重新启动该端口,就可以恢复线路的连通了。还有一种常见情况是路由器的负载过高,表现为路由器CPU温度太高、CPU利用率太高,以及内存剩余太少等,如果因此影响网络服务质量,最直接也是最好的办法就是——更换路由器,当然换个好点的。

(责任编辑:IT教学网)

更多

推荐数据库文章