Windows网络诊断和配置命令【笔记残缺】

Windows网络诊断和配置命令

Windows提供了一组实用程序来实现简单的网络配置和管理功能,这些实用程序通常以DOS命令的形式出现。用键盘命令来显示和改变网络配置,感觉就像直接操控硬件一样,不但操作简单方便,而且效果立即显现;不但能详细了解网络的配置参数,而且提高了网络管理的效率。所以,掌握常用的网络管理命令是网络管理人员的基本技能,必须坚持使用,才能驾轻就熟。
Windows的网络管理命令通常以exe文件的形式存储在system32目录中,在“开始”菜单中运行命令解释程序Cmd.exe进入DOS命令窗口,可以执行任何实用程序。下面的一些例子都是在DOS窗口中截图的。

ipconfig

ipconfig命令相当于Windows9x中的图形化命令winipcfg,是最常用的Windows实用程序,可以显示所有网卡的TCP/IP配置参数,可以刷新动态主机配置协议(DHCP)和域名系统的设置。ipconfig的语法如下。

ipconfig 
[/all] 
[/review[Adapter]] 
[/release[Adapter]] 
[/flushdns] 
[/dsiplaydns] 
[/registerdns] 
[/showclassid Adapter] 
[/setclassid Adapter[ClassID]]

对以上命令参数解释如下。

  • /?
    显示帮助信息,对本章中其他命令有同样作用。
  • /all
    显示所有网卡的TCPIP配置信息。如果没有该参数,则只显示各个网卡的P地址、子网掩码和默认网关地址。
  • /review [Adapter]
    更新网卡的DHCP配置,如果使用标识符Adapter说明了网卡的名字,则只更新指定网卡的配置,否则更新所有网卡的配置。这个参数只能用于动态配置P的计算机。使用不带参数的ipconfig命令,可以列出所有网卡的名字。
  • /release [Adapter]
    向DHCP服务器发送DHCP Release 请求,释放网卡的DHCP配置参数和当前使用的P地址。
  • /flushdns
    刷新客户端DNS缓存的内容。在DNS排错期间,可以使用这个命令丢弃负缓存项以及其他动态添加的缓存项。
  • /displaydns
    显示客户端DNS缓存的内容,该缓存中包含从本地主机文件中添加的预装载项,以及最近通过名字解析查询得到的资源记录。DNS客户端服务使用这些信息快速处理经常出现的名字查询。
  • /registerdns
    刷新所有DHCP租约,重新注册DNS名字。在不重启计算机的情况下,可以利用这个参数来排除DNS名字注册中的故障,解决客户端和DNS服务器之间的手工动态更新问题,可以利用“高级TCP/IP设置”来注册本地连接的DNS后缀,如图11-38所示。
    image
  • /showclassid Adapter
    显示网卡的DHCP类别ID。利用通配符“*”
    代替标识符Adapter,可以显示所有网卡的DHCP类别ID。这个参数仅适用于自动配置IP地址的计算机,可以根据某种标准把DHCP客户端划分成不同的类别,以便于管理。例如,将移动客户划分到租约期较短的类,将固定客户划分到租约期较长的类。
  • ==/setclassid Adapter[ClassID]
    对指定的网卡设置DHCP类别ID。如果未指定DHCP类别ID,则会删除当前的类别ID。

如果Adapter名称包含空格,则要在名称两边使用引号(即"Adapter名称")。在网卡名称中可以使用通配符星号“”,例如,Local可以代表所有以字符串Local开头的网卡,而Con可以表示所有包含字符串Con的网卡。
ipconfig命令最适合于自动分配IP地址的计算机,使用户可以明确区分DHCP或自动专用IP地址(APIPA)配置的参数。
举例如下。
(1)如果要显示所有网卡的基本TCP/IP配置参数,输入:

ipconfig

image

(2)如果要显示所有网卡的完整TCP/IP配置参数,输入:

ipconfig /all

image

(3)如果仅更新本地连接的网卡由DHCP分配的IP地址,输入:

ipconfig /renew "Local Area Connection"

image

(4)在排除DNS名称解析故障时,如果要刷新DNS解析器缓存,输入:

ipconfig /flushdns

image

(5)如果要显示名称以Local开头的所有网卡的DHCP类别ID,输入:

ipconfig /showclassid Local*

image

(6)如果要将“本地连接”网卡的DHCP类别ID设置为TEST,输入:

ipconfig /setclassid "Local Area Connection"

image

图11-39是用ipconfig/al命令显示的网络配置参数,其中列出了主机名、网卡物理地址和DHCP租约期,由DHCP分配的IP地址、子网掩码、默认网关和DNS服务器的P地址等配置参数。图11-40是利用参数showclasid显示的“本地连接”的类别标识。

下图显示的才是上面命令的正确用法:上面有些我用错了!
image

image

image

ping

ping命令通过发送ICMP回声请求报文来检验与另外一个计算机的连接。这是一个用于排除连接故障的测试命令,如果不带参数则显示帮助信息。ping命令的语法如下。

ping 
[-t]
[-a]
[-n Count]
[-l Size]
[-f]
[-i TTL]
[-v TOS]
[-r Count]
[-s Count]
[{-j HostList | -k HostList}]
[-w Timeout]
[TargetName]

对以上命令参数解释如下

  • -t
    持续发送回声请求直到输入Ctrl+BreakCtrl+C被中断,前者显示统计信息,后者不显示统计信息。

  • -a
    用IP地址表示目标,进行反向名字解析,如果命令执行成功,则显示对应的主机名。

  • -n Count
    说明发送回声请求的次数,默认为4次。

  • -l Size
    说明了回声请求报文的字节数,默认是32,最大为65527。

  • -f
    在IP头中设置不分段标志,用于测试通路上传输的最大报文长度。

  • -i TTL
    说明IP头中TTL字段的值,通常取主机的TTL值,对于Windows XP主机,这个值是128,最大为255。

  • -v TOS
    说明了IP头中TOS(Type of Service)字段的值,默认值是0。

  • -r Count
    在IP头中添加路由记录选项,Count表示源和目标之间的跃点数,其值在1~9之间。

  • -s Count
    在IP头中添加时间截(timestamp)选项,用于记录达到每一跃点的时间,Count的值在1~4之间。

  • -j HostList
    在IP头中使用松散源路由选项,HostList指明中间节点(路由器)的地址或名字,最多9个,用空格分开。

  • -k HostList
    在IP头中使用严格源路由选项,HostList指明中间节点(路由器)的地址或名字,最多9个,用空格分开

  • ==-w Timeout
    指明等待回声响应的时间(us),如果响应超时,则显示出错信息Request timed out,默认超时间隔为4s。

  • TargetName
    用IP地址或主机名表示目标设备。

使用ping命令必须安装并运行TCP/IP协议,可以使用IP地址或主机名来表示目标设备。如果ping一个IP地址成功,但ping对应的主机名失败,则可以断定名字解析有问题。无论名字解析是通过DNS、NetBIOS,还是通过本地主机文件,都可以用这个方法进行故障诊断。
举例如下。【IP地址我会替换成192.168.1.1(方便测试)】
(1)如果要测试目标10.0.99.221并进行名字解析,则输入:
ping -a 192.168.1.1

(2)如果要测试目标10.0.99.221,发送10次请求,每个响应为1000字节,则输入:
ping -n 10 -l 1000 192.168.1.1
image

(3)如果要测试目标10.0.99.221,并记录4个跃点的路由,则输入:
ping -r 4 192.168.1.1
image

(4)如果要测试目标10.0.99.221,并说明松散源路由,则输入:
【暂时无测试,后面补上!】
image

图11-41所示为ping www.163.com.cn的结果。
【地址替换成百度】
image

arp

arp命令用于显示和修改地址解析协议缓存表的内容,缓存表项是IP地址与网卡地址对。
计算机上安装的每个网卡各有一个缓存表。如果使用不含参数的arp命令,则显示帮助信息。
arp命令的语法如下:

arp
[-a [InetAddr] [-N IfaceAddr]]
[-g [InetAddr] [-N IfaceAddr]]
[-d InetAddr [IfaceAddr]]
[-s InetAddr EtherAddr [IfaceAddr]]

对以上命令参数解释如下,

  • "[-a [InetAddr] [-N IfaceAddr]]"
    显示所有接口的ARP缓存表。如果要显示特定IP地址的ARP表项,则使用参数InetAddr;如果要显示指定接口的ARP缓存表,则使用参数-N IfaceAddr。这里,N必须大写。InetAddr和IfaceAddr都是IP地址。
  • "[-g [InetAddr] [-N IfaceAddr]]"
    与参数-a相同,
  • "[-d InetAddr [IfaceAddr]]"
    删除由InetAddr指示的ARP缓存表项。如果要删除特定接口的ARP缓存表项,使用参数IfaceAddr指明接口的IP地址;如果要删除所有ARP缓存表项,使用通配符“*”代替参数InetAddr.
  • "[-s InetAddr EtherAddr [IfaceAddr]]"
    添加一个静态的ARP表项,把IP地址InetAddr解析为物理地址EtherAddr.参数IfaceAddr指定了接口的IP地址。

IP地址InetAddr和IfaceAddr用点分十进制表示。物理地址EtherAddr由6个字节组成,每个字节用两个十六进制数表示,字节之间用连字符“-”分开,例如00-AA-00-4F-2A-9C.
用参数-s添加的ARP表项是静态的,不会由于超时而被删除。如果TCP/IP协议停止运行,ARP表项都被删除。为了生成一个固定的静态表项,可以在批文件中加入适当的arp命令,并在计算机启动时运行批文件。
举例如下。
(1)如果要显示ARP缓存表的内容,输入:
arp -a
image

(2)如果要显示IP地址为10.0.0.99【替换成192.168.1341.1】的接口的ARP缓存表,输入:
arp -a -N 192.168.134.1
image

(3)如果要添加一个静态表项,把IP地址10.0.0.80解析为物理地址00-AA-00-4F-2A-9C,则输入:
arp -s 192.168.134.1 00-AA-00-4F-2A-9C
image
image

image

netstat

netstat命令用于显示TCP 连接、计算机正在监听的端口、以太网统计信息、IP路由表、IPv4统计信息(包括IP、ICMP、TCP和UDP等协议)和IPv6统计信息(包括IPv6,ICMPv6、TCP over IPv6 和 UDP over IPv6等协议)等。如果不使用参数,则显示活动的TCP 连接。netstat命令的语法如下。

netstat
[-a]
[-e]
[-n]
[-o]
[-p Protocol]
[-r]
[-s]
[Interval]

对以上参数解释如下

  • -a
    显示所有活动的TCP连接,以及正在监听的TCP和UDP端口。
  • -e
    显示以太网统计信息,例如发送和接收的字节数,以及出错的次数等。这个参数可以与-s参数联合使用。
  • -n
    显示活动的TCP连接,地址和端口号以数字形式表示。
  • -o
    显示活动的TCP连接以及每个连接对应的进程ID。在Windows任务管理器中可以找到与进程ID对应的应用。这个参数可以与-a、-n和-p联合使用。
  • -p Protocol
    用标识符Protocol指定要显示的协议,可以是TCP、UDP、TCPv6或者UDPv6。如果与参数-s联合使用,则可以显示协议TCP、UDP、ICMP、IP、TCPv6,UDPv6,ICMPv6 或 IPv6的统计数据。
  • -s
    显示每个协议的统计数据。默认情况下,统计TCP、UDP、ICMP和IP协议发送及接收的数据包、出错的数据包、连接成功或失败的次数等。如果与-p参数联合使用,可以指定要显,示统计数据的协议。
  • -r
    显示IP路由表的内容,其作用等价于路由打印命令route print。
  • Interval
    说明重新显示信息的时间间隔,输入Ctrl+C则停止显示。如果不使用这个参数,则只显示一次。

netstat显示的统计信息分为4栏或5栏,解释如下。

  • Proto:表示协议的名字(例如TCP或UDP)。

  • Local Address:本地计算机的地址和端口。通常显示本地计算机的名字和端口名字(例如ftp),如果使用了-n参数,则显示本地计算机的IP地址和端口号。如果端口尚未建立,则用“*”表示。

  • Foreign Address:远程计算机的地址和端口。通常显示远程计算机的名字和端口名字,(例如ftp),如果使用了-n参数,则显示远程计算机的IP地址和端口号。如果端口尚,未建立,则用“*”表示。

  • State:表示TCP连接的状态,用下面的状态名字表示。

CLOSE_WAIT:收到对方的连接释放请求。
CLOSED:连接已关闭。
ESTABLISHED:连接已建立。
FIN_WAIT_1:已发出连接释放请求。
FIN_WAIT_2:等待对方的连接释放请求。
LAST_ACK:等待对方的连接释放应答。
LISTEN:正在监听端口。
SYN_RECEIVED:收到对方的连接建立请求。
SYN_SEND:已主动发出连接建立请求。
TIMED_WAIT:等待一段时间后将释放连接。

举例如下。

(1)如果要显示以太网的统计信息和所有协议的统计信息,则输入:
netstat -e -s
image

(2)如果要显示TCP和UDP协议的统计信息,则输入:
netstat -s -p tcp | netstat -s -p udp
image

image

(3)如果要显示TCP连接及其对应的进程ID,每4s显示一次,则输入:
netstat -o 4
image

(4)如果要以数字形式显示TCP连接及其对应的进程ID,则输入:

netstat -o -n

image

tracert

tracert命令的功能是确定到达目标的路径,并显示通路上每一个中间路由器的IP地址。通过多次向目标发送ICMP回声(echo)请求报文,每次增加IP头中TTL字段的值,就可以确定到达各个路由器的时间。显示的地址是路由器接近源这一边的端口地址。tracert命令的语法如下:

tracert
[-d]
[-h MaximumHops]
[-j HostList]
[-w Timeout]
[TargetName]

对以上参数解释如下:

  • -d
    不进行名字解析,显示中间节点的IP地址,这样可以加快跟踪的速度。
  • -h MaximumHops
    说明地址搜索的最大跃点数,默认值是30跳。
  • -j HostList
    说明发送回声请求报文要使用IP头中的松散源路由选项,标识符HostList列出必须经过的中间节点的地址或名字,最多可以列出9个中间节点,各个中间节点用空格隔开。
  • -w Timeout
    说明了等待ICMP回声响应报文的时间(js),如果接收超时,则显示星号“*”,默认超时间隔是4s。
  • TargetName
    用IP地址或主机名表示的目标。

这个诊断工具通过多次发送ICMP回声请求报文来确定到达目标的路径,每个报文中TTL字段的值都是不同的。通路上的路由器在转发IP数据报之前先要将TTL字段减1,如果TTL为0,则路由器就向源端返回一个超时(Time Exceeded)报文,并丢弃原来要转发的报文。在tracert第一次发送的回声请求报文中置TTL=1,然后每次加1,这样就能收到沿途各个路由器返回的超时报文,直至收到目标返回的ICMP回声响应报文。如果有的路由器不返回超时报文,那么这个路由器就是不可见的,显示列表中用星号“*”表示。
举例如下。【Replace the following address with Baidu】
(1)如果要跟踪到达主机corp7.microsoft.com【替换为百度】的路径,则输入:

tracert baidu.com

image

(2)如果要跟踪到达主机corp7.microsoft.com的路径,并且不进行名字解析,只显示中间节点的IP地址,则输入:

tracert -d baidu.com

image

(3)如果要跟踪到达主机corp7.microsoft.com的路径,并使用松散源路由,则输入:【未进行测试!】我可能又要鸽了!

image

pathping

pathping 结合了 ping 和tracert两个命令的功能,可以显示通信线路上每个子网的延迟和丢包率。pathping在一段时间内向通路中的各个路由器发送多个回声请求报文,然后根据每个路由器返回的数据包计算统计结果。由于pathping命令显示了每个路由器(或链路)丢失数据包的程度,所以用户可以据此确定哪些路由器或者子网存在通信问题。pathping命令的语法如下:

pathping
[-n]
[-h MaximumHops]
[-g HostList]
[-p Period]
[-q NumQueries]
[-w Timeout]
[-T]
[-R]
[TargetName]

对以上参数解释如下

  • -n
    不进行名字解析,以加快显示速度。
  • -h MaximumHops
    说明了搜索目标期间的最大跃点数,默认是30。
  • -g HostList
    在发送回声请求报文时使用松散源路由,标识符HostList列出了中间节点的名字或地址。最多可以列出9个中间节点,用空格分开。
  • ==-p Period
    说明两次ping之间的时间间隔(ms),默认为1/4s。
  • -q NumQueries
    说明发送给每个路由器的回声请求报文的数量,默认为100个。
  • -w Timeout
    说明每次等待回声响应的时间,默认是3s。
  • -T
    对发送的回声请求数据包附加上第二层优先标志(例如802.1p)。这样可以测试出不具备区分第二层优先级能力的设备,这个开关用于测试网络连接提供不同服务质量的能力。
  • -R
    确定通路上的设备是否支持资源预约协议(RSVP),这个开关用于测试网络连接提供不同,服务质量的能力。
  • TargetName
    用IP地址或名字表示的目标。

pathping 命令的参数是大小写敏感的,所以T和R必须大写。为了防止网络拥塞,ping的频率不能太快,这样也可以防止突发性地丢包。

当使用-p Period参数时,对每一个中间节点一次只发送一个回声请求包,对同一个节点,两次ping之间的时间间隔是PeriodX跃点数。

当使用-w Timeout参数时,多个回声请求包并行地发出,因此标识符Timeout规定的时间并不受由Period规定的时间限制。

IEEE 802.1p标准使得局域网交换机具有以优先级区分信息流的能力,向支持声音、图像和数据的综合业务方面迈进了一步。802.1p定义了8种不同的优先级,分别用于支持时间关键的通信(例如RIP和OSPF的路由更新报文),延迟敏感的应用(例如交互式语音和视频),可控负载的多媒体流,重要的SAP数据以及尽力而为(best-effort)的通信等。符合802.1p规范的交换机具有多队列缓冲硬件,可以对较高优先级的分组进行快速处理,使得这些分组能够越过低级别分组而迅速通过交换机。

在传统的单一缓冲区交换机中,当信息传输出现拥塞时,所有分组将平等地排队等待,直,到可继续前进。由于传统设备不能识别第二层优先级标签,那些带有优先标签的分组就会被丢弃,所以应用开关T可以区分传统交换机与可提供第二层优先级的交换机。

R参数用于对资源预约协议的测试。RSVP预约报文在会话开始之前首先发送给通路上的每一个设备。如果设备不支持RSVP,它返回一个ICMP“目标不可到达”报文;如果设备支持RSVP,它返回一个“预约错误信息”报文。有一些设备什么信息也不返回,如果这种情况出现,则显示超时信息。

图11-45的例子显示了命令C:>pathping -n corp 1的输出。pathping运行时产生的第一个结果就是路径列表,与tracert命令显示的结果相同。接着出现一个大约125s的“忙”消息,忙时间的长短随着跃点数的多少有所变化。在这期间,从上述列表中的路由器以及它们之间的链路收集统计信息,最后显示测试结果。

image

在图11-45所示的样本报告中,Node/Link、Lost/Sent=Pct和Address栏显示:在172.16.87.218与192.168.52.1之间的链路上丢包率是13%。第二跳和第四跳的路由器也丢失了数据包,但是对于它们转发的通信量不会产生影响。在图中的地址栏(Address)中,以直杠")”标识由于链路拥塞而产生的丢包,至于路由器丢包的原因,则可能是设备过载了。

nbtstat

这个命令显示NetBT(NetBIOS over TCP/IP)协议的统计信息,包括本地计算机和远程计算机的NetBIOS名字表,以及NetBIOS名字缓存。nbtstat也可以刷新NetBIOS名字缓存,刷新已经注册了的WINS名字。nbtstat命令的语法如下。

nbtstat
[-a RemoteName]
[-A IPAddress]
[-c]
[-n]
[-r]
[-R]
[-RR]
[-s]
[-S]
[Interval]

对以上参数解释如下

  • -a RemoteName
    显示远程计算机的NetBIOS名字表,用标识符RemoteName指示远程计算机的名字。
  • -A IPAddress
    显示远程计算机的NetBIOS名字表,用标识符IPAddress指示远程计算机的IP地址。
  • -c
    显示NetBIOS名字缓存的内容。
  • -n
    显示本地计算机的NetBIOS名字表。
  • -r
    显示NetBIOS名字解析的统计数据。在配置了WINS的Windows XP计算机上,这个参数返回通过广播解析的名字,以及通过WINS服务器解析的名字。
  • -R
    清除NetBIOS名字缓存,并从Lmhosts文件装载带有标签#PRE的预加载项目。
  • -RR
    释放并刷新本地计算机在WINS服务器中注册的名字。
  • -s
    显示NetBIOS客户端与服务器的会话,并把目标IP地址转换为名字。
  • -S
    显示NetBIOS客户端与服务器的会话,用IP地址表示远程计算机。
  • Interval
    多次显示统计数据,显示的间隔时间由标识符Interval(秒)表示,直至输入Ctrl+C停止显示。如果这个参数缺失,只显示一次。

nbtstat命令行参数是大小写敏感的,所以-A,-R,-RR和-S等必须大写。
表11-8表示nbtstat命令显示的列表栏目的含义。表11-9说明了NetBIOS连接的状态。

image

image

举例如下。【主机名全部替换成lvhanghmm进行测试,大部分的只能测试一个命令而已!】
(1)如果要显示远端计算机CORP07的NetBIOS名字表,则输入:

nbtstat -a lvhanghmm

image

(2)如果要显示地址为10.0.0.99的远端计算机的NetBIOS名字表,则输入:

nbtstat -A 192.168.134.1

image

(3)如果要显示本地计算机的NetBIOS名字表,则输入:

nbtstat -n

image

(4)如果要显示本地计算机NetBIOS名字缓存的内容,则输入:

nbtstat -c

image

(5)如果要清除NetBIOS名字缓存,并从本地Lmhosts文件重装预加载项目,则输入:

nbtstat -R

image

(6)如果要释放本地计算机在WINS服务器中注册的NetBIOS名字并重新注册,则输入:

nbtstat -RR

image

(7)如果要显示NetBIOS会话统计数据,每5s显示一次,则输入:

nbtstat -S 5

image

route

posted @ 2022-03-14 13:06  lvhanghmm  阅读(827)  评论(0)    收藏  举报