1.2 常用网络命令简介
本节以Windows系统下的命令为例进行说明。
1.2.1 ping命令
1.功能
ping命令是最常用的命令,特别是在组网中。ping命令基于ICMP协议,在源站点执行,向目的站点发送ICMP回送请求报文,目的站点在收到报文后向源站点返回ICMP回送回答报文,源站点把返回的结果信息显示出来。
该命令用来测试站点之间是否可达,若可达,则可进一步判断双方的通信质量,包括稳定性等。
需要注意的是,有些主机为了防止通过ping 探测,通过防火墙设置禁止ping或者在参数中设置禁止ping,这样就不能通过ping确定该主机是否处于开启状态或者其他情况。
有关ICMP的详细解释参见《计算机网络》(第7版)教材第147~150页。
2.命令格式
Windows系统用户可单击“开始”→“运行”选项,并键入cmd,打开命令行程序。在命令提示符后,按如下格式输入:

其中,目标主机可以是IP地址或者域名。
3.命令参数
命令参数及其含义如下。


4.常见用法实验
1)ping www.163.com
在Windows中,ping命令发送4个ICMP回送请求,每个32字节,正常会收到4个响应。比如,下面是ping网易的命令。

可以看到,ping 命令没有带任何参数,返回4个响应。每个响应中,TTL 值指明该 IP分组可以经过的最大路由器数量。由统计信息可以看出:发送4个请求,收到4个响应,丢失率为0%;最长、最短及平均往返时延,时延越短,说明连通越好。根据这些信息可初步判断本机和目标主机的连通状态。
可经常通过ping 127.0.0.1来检测本地主机是否正确地安装和配置了TCP/IP。
2)ping-n 20 www.163.com
通过这个命令可以自己定义发送的回送请求个数,对衡量网络速度很有帮助。比如该命令可以测试发送20个数据包的情况,通过查看返回的平均时间、最长时间、最短时间来衡量网络连通状态。
3)ping-t www.163.com
该命令会一直进行下去,直到按“Ctrl+C”组合键停止。若要查看统计信息并继续 ping操作,可以按“Ctrl+Break”组合键。
4)ping-l 5600-n 2 www.163.com
在默认的情况下,Windows中ping发送的数据包大小为32字节,该命令设置回送请求个数为2,数据包的大小为5600字节,但需要注意该值最大为65500字节。

5)ping-i 3 www.163.com
该命令设置ICMP请求报文中的TTL值为3,这个值在每经过一个路由器时会被减1,当被减小到1时,路由器会将该分组丢弃,造成超时。所以,当TTL值太小时,可能会出现本来网络是通的,但由于TTL值耗尽而导致的超时现象,对此要合理判断。以下为命令运行情况。

可见,该请求并未到达目的主机,显然,这并非是网络不通,而是TTL值被耗尽了。
6)ping-n 1-r 7 www.163.com
该命令设置发送1个请求分组,最多记录7个路由节点。其中,路由节点的数量最大设置为9,若需要查看更多路由节点,可使用tracert命令(后面会介绍)。

如果多运行几次该命令,可以发现其经过的路由节点不是完全一样的,这是因为每个IP分组都是独立路由的结果。
1.2.2 ipconfig命令
1.功能
该命令用于显示、更新和释放网络地址设置,包括IP地址、子网掩码、网关地址和DNS服务器设置等。
2.命令格式
命令格式如下所示:

其中,adapter为连接名称,允许使用通配符*和?。
3.命令参数
命令参数及其含义如下所示:


4.常见用法实验
1)ipconfig
默认情况下,仅显示绑定到TCP/IP适配器的IP地址、子网掩码和默认网关。

2)ipconfig/all
显示接口网络详细信息(以无线网卡接口为例)。


3)ipconfig/release
释放所有适配器的IP地址。

4)ipconfig/renew
更新所有适配器,重新获得IP地址。


5)ipconfig/flushdns
清空本机DNS缓存。

6)ipconfig/allcompartments/all
显示有关所有接口的详细信息。
另外,对于release和renew,这两个参数只能在向DHCP租用IP地址的计算机上起作用。release将所有租用IP地址归还给DHCP,而renew则重新租用DHCP分配的IP地址。当然,如果未指定适配器名称,则会释放或更新所有绑定到TCP/IP适配器的IP地址租约。
1.2.3 netstat命令
1.功能
netstat是Windows系统提供的用于查看与TCP、IP、UDP和ICMP协议相关统计数据的网络工具,能检验本机各端口的网络连接情况。
2.命令格式
命令格式如下所示:

3.命令参数
命令参数及其含义如下所示:


4.常见用法实验
1)netstat-a
该命令显示所有连接和监听端口。
下面是命令执行后的部分内容。其中,协议指连接所用的协议;本地地址指本机地址及端口;外部地址指远端主机地址及端口,端口也用协议代替;状态指协议所处的状态。

如果系统正在运行P2P类型的应用,比如一些下载类的软件,那么这些应用会不断地与外部地址建立TCP连接,从而获取下载资源。这种情况下,在本命令执行后就会发现大量本地端口正在与外部建立TCP连接,请读者自行测试。
关于TCP、UDP及端口的内容请查阅教材相关内容。
2)netstat-n
本选项用于以数字形式显示地址和端口号,比如-a参数中的主机名在这里会被显示成IP地址。
在测试命令前,也可以先访问一些Web站点,紧接着运行本命令,观察其中的活动连接。运行本命令后显示的部分结果如下:

3)netstat-e
本选项用于显示关于以太网的统计数据。它列出的项目包括传送的数据报的总字节数、错误数、删除数,以及数据报的数量和广播的数量。这些统计数据既有发送的数据报数量,也有接收的数据报数量。
这个参数选项可以用来统计一些基本的网络流量。


4)netstat-s
本选项能够按照各个协议分别显示其统计数据,默认情况下,显示 IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP和UDPv6的统计数据。如果应用程序(如Web浏览器)运行速度比较慢,或者不能显示Web页之类的数据,那么就可以用本选项来查看一下所显示的信息,仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在。
下面是运行本命令后显示的部分结果。


5)netstat-r
本选项可以显示关于路由表的信息,除了显示有效路由,还显示当前有效的连接。下面是部分运行结果,路由知识请参考《计算机网络》(第7版)教材相关部分。


6)netstat-p tcp
显示TCP协议的连接。-p后面的参数也可以是下列任何一个:UDP、TCPv6或UDPv6。

7)netstat-s-p tcp
该命令可显示当前TCP连接,并对TCP协议进行统计。除了TCP协议,还可以是下列任何一个:IP、IPv6、ICMP、ICMPv6、TCPv6、UDP或UDPv6。
下面是命令运行结果的部分内容。

1.2.4 arp命令
1.功能
arp命令用来显示和修改IP地址与物理地址之间的映射关系,即IP地址到物理地址的转换表,该转换表保存在本地arp缓存中。
2.命令格式
命令格式如下:

3.命令参数
命令参数及其含义如下所示:


4.常见用法实验
1)arp-a
显示arp缓存中的IP地址和硬件地址的对应关系。如果不止一个网络接口使用arp,则显示每个接口的arp项。下面是含三个接口的arp命令运行结果。

如果只想显示某个指定IP的arp记录,则可用如下命令:

如果只显示某个接口的arp缓存记录,则可用如下命令:

2)arp-s 167.56.85.112 00-1a-00-62-c6-08
该命令将在arp缓存中添加一条静态arp条目。运行该命令后,请查看添加效果。
3)arp-d 167.56.85.112
该命令将删除刚刚添加的arp条目,请自行验证。
另外,在一些Windows系统(如Windows 7)中,当运行arp命令添加静态记录或删除某记录时,有时会被提示“请求的操作需要提升”,这需要使用管理员身份运行命令行程序。在“开始”处搜到命令行程序后,单击鼠标右键并选择“以管理员身份运行”命令即可。
1.2.5 tracert命令
1.功能
tracert用于探测源节点到目的节点之间数据报经过的路径。IP数据报的TTL值在每经过一个路由器的转发后减1,当TTL=0时,则向源节点报告TTL超时。利用这个特性,可将第一个数据报的TTL值置为1,内部封装无法交付的UDP用户数据报,这样,途经的第一个路由器将向源节点报告TTL超时,第二个数据报将TTL赋值为2,以此类推,直到到达目的站点或TTL达到最大值255,这样就可以得到沿途的路由器IP地址。详见《计算机网络》(第7版)教材第150页。
2.命令格式
命令格式如下所示:

3.命令参数
命令参数及其含义如下所示:

4.常见用法实验
1)tracert www.163.com
tracert后面可跟域名或IP地址,默认的TTL值为30。读者可观察如下命令执行情况。

命令结果清晰地显示了去往目的地所经过的路由,[]前面是IP对应的主机名。从命令执行结果可以看到,封装同一TTL值的数据报被发送三次。
2)tracert-h 5 60.222.11.27
该命令设置TTL值为5,读者可运行该命令并观察结果。
1.2.6 route命令
1.功能
用来增加、删除或显示本地路由表。
2.命令格式
命令格式如下所示:

3.命令参数
命令参数及其含义如下所示:

4.常见用法实验
1)route print
该命令效果同netstat-r完全一致,不再介绍。
2)route add 10.0.0.0 mask 255.0.0.0 192.168.182.1 if 19
该命令将增加一条目的地址为10.0.0.0、掩码为255.0.0.0的路由条目。命令运行结束后,读者使用route print命令查看,可以看到该条目已经被添加到本地路由表中。
3)route delete 10.0.0.0 mask 255.0.0.0
运行本命令后,刚刚添加的路由条目被删除,读者可自行查看。
需要注意的是,route后面添加命令参数需要以管理员身份运行命令行处理程序。
当命令为route print或route delete时,目标或网关可以为通配符(通配符指定为星号“*”),否则可能会忽略网关参数。如果 Dest 包含一个“*”或“?”,则会将其视为Shell模式,并且只打印匹配目标路由。“*”匹配任意字符串,而“?”匹配任意一个字符。