网络故障排查的九个常用网络命令
一、ping命令
ping是个使用频率极高的实用程序,主要用于确定网络的连通性。这对确定网络是否正确连接,以及网络连接的状况十分有用。简单的说,ping就是一个测试程序,如果ping运行正确,大体上就可以排除网络访问层、网卡、Modem的输入输出线路、电缆和路由器等存在的故障,从而缩小问题的范围。
ping能够以毫秒为单位显示发送请求到返回应答之间的时间量。如果应答时间短,表示数据报不必通过太多的路由器或网络,连接速度比较快。ping还能显示TTL(Time To Live,生存时间)值,通过TTL值可以推算数据包通过了多少个路由器。
1、命令格式
ping 主机名 / ping 域名 / ping IP地址
如图所示,使用ping命令检查到www.baidu.com的IP地址为39.156.66.14,该例为连接正常。共发送了四个测试数据包,正确接收到四个数据包。
2、ping命令的基本应用
一般情况下,用户可以通过使用一系列ping命令来查找问题出在什么地方,或检验网络运行的情况。下面就给出一个典型的检测次序及对应的可能故障:
① ping 127.0.0.1
如果测试成功,表明网卡、TCP/IP协议的安装、IP地址、子网掩码的设置正常。如果测试不成功,就表示TCP/IP的安装或设置存在有问题。
② ping 本机IP地址
如果测试不成功,则表示本地配置或安装存在问题,应当对网络设备和通讯介质进行测试、检查并排除。
③ ping局域网内其他IP
如果测试成功,表明本地网络中的网卡和载体运行正确。但如果收到0个回送应答,那么表示子网掩码不正确或网卡配置错误或电缆系统有问题。
④ ping 网关IP
这个命令如果应答正确,表示局域网中的网关路由器正在运行并能够做出应答。
⑤ ping 远程IP
如果收到正确应答,表示成功的使用了缺省网关。对于拨号上网用户则表示能够成功的访问Internet(但不排除ISP的DNS会有问题)。
⑥ ping localhost
local host是系统的网络保留名,它是127.0.0.1的别名,每台计算机都应该能够将该名字转换成该地址。否则,则表示主机host文件中存在问题。
⑦ ping www.baidu.com
对此域名执行Ping命令,计算机必须先将域名转换成IP地址,通常是通过DNS服务器。如果这里出现故障,则表示本机DNS服务器的IP地址配置不正确,或它所访问的DNS服务器有故障。
如果上面所列出的所有ping命令都能正常运行,那么计算机进行本地和远程通信基本上就没有问题了。但是,这些命令的成功并不表示你所有的网络配置都没有问题,例如,某些子网掩码错误就可能无法用这些方法检测到。
3、ping命令的常用参数选项
ping IP -t:连续对IP地址执行ping命令,直到被用户以Ctrl C中断。
ping IP -l 2000:指定ping命令中的特定数据长度(此处为2000字节),而不是缺省的32字节。
ping IP -n 20:执行特定次数(此处是20)的ping命令。
二、ipconfig命令
ipconfig实用程序可用于显示当前的TCP/IP配置的设置值。这些信息一般用来检验人工配置的TCP/IP设置是否正确。
而且,如果计算机和所在的局域网使用了动态主机配置协议DHCP,使用ipconfig命令可以了解到你的计算机是否成功地租用到了一个IP地址,如果已经租用到,则可以了解它目前得到的是什么地址,包括IP地址、子网掩码和缺省网关等网络配置信息。
下面给出最常用的选项:
1、ipconfig
当使用不带任何参数选项ipconfig命令时,显示每个已经配置了的接口的IP地址、子网掩码和缺省网关值。
2、ipconfig /all
当使用all选项时,ipconfig能为DNS和WINS服务器显示它已配置且所有使用的附加信息,并且能够显示内置于本地网卡中的物理地址(MAC)。如果IP地址是从DHCP服务器租用的,ipconfig将显示DHCP服务器分配的IP地址和租用地址预计失效的日期。图为运行ipconfig /all命令的结果窗口。
3、ipconfig /release 和 ipconfig /renew
这两个附加选项,只能在向DHCP服务器租用IP地址的计算机使用。如果输入ipconfig /release,那么所有接口的租用IP地址便重新交付给DHCP服务器(归还IP地址)。如果用户输入ipconfig /renew,那么本地计算机便设法与DHCP服务器取得联系,并租用一个IP地址。大多数情况下网卡将被重新赋予和以前所赋予的相同的IP地址。
三、arp命令(地址转换协议)
ARP是TCP/IP协议族中的一个重要协议,用于确定对应IP地址的网卡物理地址。
使用arp命令,能够查看本地计算机或另一台计算机的ARP高速缓存中的当前内容。此外,使用arp命令可以人工方式设置静态的网卡物理地址/IP地址对,使用这种方式可以为缺省网关和本地服务器等常用主机进行本地静态配置,这有助于减少网络上的信息量。
按照缺省设置,ARP高速缓存中的项目是动态的,每当向指定地点发送数据并且此时高速缓存中不存在当前项目时,ARP便会自动添加该项目。
常用命令选项:
① arp –a:用于查看高速缓存中的所有项目。
② arp -a IP:如果有多个网卡,那么使用arp -a加上接口的IP地址,就可以只显示与该接口相关的ARP缓存项目。
③ arp -s IP 物理地址:向ARP高速缓存中人工输入一个静态项目。该项目在计算机引导过程中将保持有效状态,或者在出现错误时,人工配置的物理地址将自动更新该项目。
④ arp -d IP:使用本命令能够人工删除一个静态项目。
四、traceroute命令
掌握使用traceroute命令测量路由情况的技能,即用来显示数据包到达目的主机所经过的路径。
traceroute命令的基本用法是,在命令提示符后键入“tracert host_name”或“tracert ip_address”,其中,tracert是traceroute在Windows操作系统上的称呼。
输出有5列:
第一列是描述路径的第n跳的数值,即沿着该路径的路由器序号;
第二列是第一次往返时延;
第三列是第二次往返时延;
第四列是第三次往返时延;
第五列是路由器的名字及其输入端口的IP地址。
如果源从任何给定的路由器接收到的报文少于3条(由于网络中的分组丢失),traceroute在该路由器号码后面放一个星号*,并报告到达那台路由器的少于3次的往返时间。
此外,tracert命令还可以用来查看网络在连接站点时经过的步骤或采取哪种路线,如果是网络出现故障,就可以通过这条命令查看出现问题的位置。
思 考:
【测试大型网络的路由】:
(1)多尝试几次“ping www.sina.com.cn”操作,比较得到的新浪网的IP地址。如果两次ping得到的IP地址不同,试考虑其中的原因(如考虑到负载均衡)。然后,针对这些不同的IP地址,执行“tracert ip_address”命令,观察分析输出的结果是否有差异。
(2)对于大型网络中的某站点进行traceroute测试,记录测试结果。观察其中是否出现第n跳的时延小于第n-1跳的时延情况。试分析其中原因(提示:可分别考虑时延的各个构成成分在总时延中所起的作用)。
(3)在一天的不同时段内,用traceroute程序多次测试从固定主机到远程固定IP地址的主机的路由。试分析比较测量数据,观察该路由是否有变化?如果有变化,该变化频繁吗?
五、route命令
大多数主机一般都是驻留在只连接一台路由器的网段上。由于只有一台路由器,因此不存在选择使用哪一台路由器将数据包发送到远程计算机上去的问题,该路由器的IP地址可作为该网段上所有计算机的缺省网关。
但是,当网络上拥有两个或多个路由器时,用户就不一定想只依赖缺省网关了。实际上可能想让某些远程IP地址通过某个特定的路由器来传递,而其他的远程IP则通过另一个路由器来传递。在这种情况下,用户需要相应的路由信息,这些信息储存在路由表中,每个主机和每个路由器都配有自己独一无二的路由表。大多数路由器使用专门的路由协议来交换和动态更新路由器之间的路由表。但在有些情况下,必须人工将项目添加到路由器和主机上的路由表中。route命令就是用来显示、人工添加和修改路由表项目的。该命令可使用如下选项:
1、route print
本命令用于显示路由表中的当前项目,在单个路由器网段上的输出结果如图所示。
2、route add
使用本命令,可以将路由项目添加给路由表。
例如,如果要设定一个到目的网络209.99.32.33的路由,其间要经过5个路由器网段,首先要经过本地网络上的一个路由器IP为202.96.123.5,子网掩码为255.255.255.224,那么用户应该输入以下命令:
route add 209.99.32.33 mask 255.255.255.224 202.96.123.5 metric 5
3、route change
可以使用本命令来修改数据的传输路由,不过,用户不能使用本命令来改变数据的目的地。下面这个例子将上例路由改变采用一条包含3个网段的路径:
route add 209.99.32.33 mask 255.255.255.224 202.96.123.250 metric 3
4、route delete
使用本命令可以从路由表中删除路由。例如:route delete 209.99.32.33
六、nslookup命令
命令nslookup的功能是查询任何一台机器的IP地址和其对应的域名。它通常需要一台域名服务器来提供域名。如果用户已经设置好域名服务器,就可以用这个命令查看不同主机的IP地址对应的域名。
(1)在本地机上使用nslookup命令查看本机的IP及域名服务器地址。
直接键入命令,系统返回本机的服务器名称(带域名的全称)和IP地址,并进入以“>”为提示符的操作命令行状态;键入“?”可查询详细命令参数;若要退出,需键入exit。
(2)查看www.baidu.com的IP,在提示符后输入要查询的IP地址或域名并回车即可,nslookup www.baidu.com 。
七、nbtstat命令
使用nbtstat命令可以查看计算机上网络配置的一些信息。使用这条命令还可以查找出别人计算机上一些私人信息。如果想查看自己计算机上的网络信息,可以运行nbtstat -n,可以得到你所在的工作组,计算机名以及网卡地址等等;想查看网络上其他的电脑情况,就运行nbtstat -a *.*.*.*,此处的*.*.*.*用IP地址代替就会返回得到那台主机上的一些信息。
八、netstat命令
学习使用netstat命令,以了解网络当前的状态。
netstat命令能够显示活动的TCP连接、计算机侦听的端口、以太网统计信息、IP路由表、IPv4统计信息(对于IP、ICMP、TCP和UDP协议)以及IPv6统计信息(对于IPv6、ICMPv6、通过IPv6的TCP以及UDP协议)。使用时如果不带参数,netstat显示活动的TCP连接。
下面给出netstat的一些常用选项:
① netstat –a:-a选项显示所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请求(LISTENING)的那些连接。
② netstat –n:以点分十进制的形式列出IP地址,而不是象征性的主机名和网络名。
③ netstat -e:-e选项用于显示关于以太网的统计数据。它列出的项目包括传送的数据包的总字节数、错误数、删除数、数据包的数量和广播的数量。这些统计数据既有发送的数据包数量,也有接收的数据包数量。使用这个选项可以统计一些基本的网络流量。
④ netstat -r:-r选项可以显示关于路由表的信息,类似于route print命令时看到的信息。除了显示有效路由外,还显示当前有效的连接。
上图显示的是一个路由表,其中:Network Destination表示目的网络,0.0.0.0表示不明网络,这是设置默认网关后系统自动产生的;127.0.0.0表示本机网络地址,用于测试;224.0.0.0表示组播地址;255.255.255.255表示限制广播地址;Netmask表示网络掩码,Gateway表示网关,Interface表示接口地址,Metric表示路由跳数。
⑤ netstat -s:-s选项能够按照各个协议分别显示其统计数据。这样就可以看到当前计算机在网络上存在哪些连接,以及数据包发送和接收的详细情况等等。如果应用程序(如Web浏览器)运行速度比较慢,或者不能显示Web页之类的数据,那么可以用本选项来查看一下所显示的信息。仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在。
九、net命令
了解Net服务的功能,学会使用Net服务命令解决有关网络问题.
在命令行键入net help command,可以在命令行获得net命令的语法帮助。例如,要得到关于net accounts命令的帮助信息,可键入“net help accounts”。
所有net命令都可以使用/y和/n命令行选项。例如,net stop server命令用于提示用户确认停止所有依赖的服务器服务,net stop server/y表示确认停止并关闭服务器服务。
下表列出了基本的NET命令及它们的作用:
NET命令的执行结果有许多与其它Windows管理工具所得到的结果相似。但是,NET命令可以在一个地方提供所有信息,并可以把结果重定向到打印机或一个标准的文本文件中。
许多服务所使用的网络命令都以net开头,这些net命令有一些公用属性。要看到所有可用的net命令的列表,可以在命令提示符窗口键入net/?得到。