利用ping、nslookup、route、traceroute、mtr等工具排查网络异常

目前网络间交互在服务中应用特别多,尤其是目前第三方服务基本都是远程访问,快速解决网络问题,定位网络问题可以节省我们很多时间,下面就介绍一下,ping、telnet、traceroute等几款工具

快速查看自己的出口IP

linux系统可以使用命令,windows系统可以使用命令
还可以使用一些第三方服务,如: 可以直接在浏览器执行,或者使用curl请求访问

提供查看公网IP的第三方服务

ping命令查看当前域名访问情况

Ping程序实际就是发送一个ICMP回显请求报文给目的主机,并等待回显的ICMP应答。然后打印出回显的报文。ping命令查看丢包、查看当前域名解析地址,此命令可以持续执行,也可以简短执行观察是否畅通,一般情况下都是开启ping的,特定服务没有开启,可以使用telnet等方案来查看问题

PING得到的结果包括字节数、反应时间、以及生存时间。Ping程序通过在ICMP报文数据中存放发送请求的时间来计算返回时间。当应答返回时,根据现在时间减去报文中存放的发送时间就得到反应时间了。生存时间(TTL),本来就存放在IP数据报的头部,直接就能够获取。上面示例代表,发送4个包,4个丢包,网络有相应问题

小技巧:可以通过ping返回的TTL判断目标机器的操作系统~

telnet命令查看当前端口能否访问通

telnet命令通常用来远程登录。telnet程序是基于TELNET协议的远程登录客户端程序。telnet因为采用明文传送报文,安全性不好,很多Linux服务器都不开放telnet服务,而改用更安全的ssh方式了,但是其可以很方便的测试端口的连通性。

上面示例所示,即可看出端口是否畅通,退出为”CTRL+]”

traceroute命令查看网络请求节点访问情况

Tracert(跟踪路由)是路由跟踪实用程序,用于确定 IP 数据报访问目标所采取的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其它主机的路由。Tracert 先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。

上图可以看到在访问到 之后,就会丢包,这样即可让对方去排查网络问题

mtr工具友好查看网络节点访问情况

mtr是traceroute的升级版,集合了ping与traceroute的所有优点

windows下载地址:http://winmtr.net/download-winmtr/
linux安装命令:yum install mtr (centos)

测试到 example.com 的路由信息和网络连接质量

nslookup命令查看DNS是否可用

一般以上几个步骤就可以排查出网络问题发生在哪里,很多间歇性问题,还可以持续使用工具来观察丢包率。

0条留言