tcp/ip 基本原理 第六章 tcp/ip 诊断与设置

53
6-1 中中中中中中中中 中中中中 TCP/IP TCP/IP 基基基基 基基基基 基基基 基基基 TCP/IP TCP/IP 基基基基基 基基基基基

Upload: adonia

Post on 01-Feb-2016

166 views

Category:

Documents


0 download

DESCRIPTION

TCP/IP 基本原理 第六章 TCP/IP 诊断与设置. 本章学习要求 : 掌握:常用网络测试及维护命令. 6.1 TCP 设置. TCP/IP 网络配置是通过使用一些配置工具改变网络参数来实现的。而这些参数又存储在若干个配置文件中,这些配置文件是许多配置工具的幕后操作对象。了解这些配置文件,可以更好地了解系统及软件的工作原理。本节将说明如何使用配置工具或修改配置文件来配置 TCP/IP 网络。 6.1.1 网络接口的命名规则 一块网卡一般对应一个网络接口,但是许多系统支持虚拟网络接口(别名),这种情况下,每块网卡就可能对应多个网络接口。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-1中国科学技术大学 远程教育

TCP/IPTCP/IP 基本原理基本原理

第六章 第六章 TCP/IPTCP/IP 诊断与设置诊断与设置

Page 2: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-2中国科学技术大学 远程教育

本章学习要求:

掌握:常用网络测试及维护命令

Page 3: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-3中国科学技术大学 远程教育

6.1 TCP 设置 TCP/IP 网络配置是通过使用一些配置工具改变网络参数来实现的。而这些参数又存储在若干个配置文件中,这些配置文件是许多配置工具的幕后操作对象。了解这些配置文件,可以更好地了解系统及软件的工作原理。本节将说明如何使用配置工具或修改配置文件来配置 TCP/IP 网络。

6.1.1 网络接口的命名规则一块网卡一般对应一个网络接口,但是许多系统支持虚拟网络接口(别名),这种情况下,每块网卡就可能对应多个网络接口。不同的系统对接口命名不同, Solaris 下 10/100M 网络接口命名为 hmeN 、leN 、 qfeN ,千兆以太接口命名为 geN 。 Linux 则命名为 ethN .其中 N表示数字 0 、 1 等等数字,大小次序由操作系统根据网络接口的 I / O 基地址由低到高依序排列。不同操作系统下对别名的命名规则也略有个问, Solaris 下如果需要为某个接口如 hme0 配置别名,其命名规则为 hem0:X , XJ 表示从 1 开始顺序递增的整数。而 Linux 下配置别名 eth0:X 时, X 可以从 0 开始。如果不知道网络接口的名称,用 dmesg 命令查找与 net 相关的内容,可以获知网络接口的名称。

Page 4: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-4中国科学技术大学 远程教育

每块网卡至少对应一个 IP” 地址,每个 IP 地址也可以对应多块网卡(相应的技术称为负载均衡,即 Load sharing ,也称为多路绑定,即 trunking ) 。如果一个主机和网络设备有多块网卡接入到 TCP/IP 网络中,就可能要配置多个 IP 地址,拥有多个 IP 址的主机叫多穴主机。

Page 5: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-5中国科学技术大学 远程教育

6.1.2 TCP/IP 配置工具

一、 ifconfigifconfig 是用来设置和配置网络接口的命令行工具,可以启用或禁用网络接口、配置 IP 地址、子网掩码、广播地址以及其他参数。系统启动时也用到该命令来配置网络,运行期间还可以用该命令来调整各种参数。

1. Linux 系统 ifconfig 命令的使用方法ifconfig 常用的命令格式如下:ifconfig [interface] [address family] [options] [address netmask broadcast]

interface :网络接口名称;address family :网络协议地址类型,如 inet (IPv4) 、 inet6 (IPv6) 等;address : IP 地址,例如 192.168.1.1 ;netmask : 子网掩码值,如 255.255.255.0 ;broadcast :广播地址,需要根据子网掩码值计算,网络地址加上全为 1 的主机地址;hw ether : 用于设定网卡的硬件地址,需要硬件支持,例如,

ifconfig hw ether 00:00:00:00:00:01

Page 6: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-6中国科学技术大学 远程教育

Option :选项参数,常用的有如下选项:UP 启用网络接口DOWN 禁用网络接口[-]ARP 在某个网络接口上启用或禁用 ARP 协议,“ -” 号表示禁用,默认为启用[-]promise 同上,启用或禁用杂混模式,默认为禁用[-] allmulti 是否接受网络上所有的组播报文,默认为不启用metric 意义见下一个命令的解释mtu 设定网络接口上的最大传输单元,即报文最大长度。IRQ 中断请求

注:用 ifconfig 命令动态修改的网络参数,如果没有修改相应的配置文件,则重新启动后,修改的参数将会丢失。

下页显示的是不带选项参数的 ifconfig 命令,其功能是显示所有激活接口的信息:

Page 7: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-7中国科学技术大学 远程教育

[root@ backup/root]# ifconfigeth1 Link encap : Ethernet HWaddr 00:D0:B7:B6:0A:9E

inet addr : 166.111.4.99 Bcast : 166.111.4.127 Mask : 255.255.255.128UP BROAADCAST RUNNING MULTICAST MTU : 1500 Metric : 1RX packets : 7853085 errors : 0 dropped : 0 ovverruns : 0 frame : 0TX packets : 2914494 errors : 0 dropoed : 0 overruns : 0 carrier : 0

collisions : 0 txqueuelen : 100Interrupt : 18

ethl : 0 Link encap : Ethernet HWaddr 00:D0:B7:B6:0A:9Einet addr : 192.168.1.50 Bcast : 192.168.1.255 Mask : 255.255.255.0UP BROAADCAST RUNNING MULTICAST MTU : 1500 Metric : 1RX packets : 7853085 errors : 0 dropped : 0 ovverruns : 0 frame : 0Interrupt : 18

lo Link encap : Local Lookbackinet addr : 127.0.0.1 Mask : 255.0.0.0UP BROAADCAST RUNNING MULTICAST MTU : 16436 Metric : 1RX packets : 949 errors : 0 dropped : 0 ovverruns : 0 frame : 0TX packets : 949 errors : 0 dropoed : 0 overruns : 0 carrier : 0

collisions : 0 txqueuelen : 0Interrupt : 18

Page 8: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-8中国科学技术大学 远程教育

解释:Eth0 :当前网卡名Link encap :网卡设置为以太网卡HWaddr :网卡的硬件地址Inet addr :网卡的 IP 地址Bcast :广播地址Mask :子网掩码第 3 行:表示已经收到网卡上的 ifconfig 命令的可选项。第 4 、 5 行:表示接收、发送等数据包统计信息Lo :回送设备

Page 9: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-9中国科学技术大学 远程教育

2. Solaris 系统上 ifconfig 命令的使用方法Solaria 的网络接口需要用 plumb 加载设备后方可使用,

否则 netstat -i 命令看不到该设备也无法进行配置。另外 Solaris 系统上的 ifconfig 命令提供更多的功能,除了 Linux提供的配置网络接口和 PPP连接外,它还可以配置 DHCP 、 IP隧道的加密算法,可以动态载入模块等。 Solaris 8 的 ifconfig 命令的默认格式如下:ifconfig interface [address_family] address/ 掩码长度 parameter

address_family 默认为 inet (IPv4) , parameter 基本上和 Linux 系统相似,不过 Solaris 提供一种对所有网络接口进行操作的办法:

ifconfig -ad 停用所有网络接口; ifconfig -au 启用所有网络接口;Ifconfig -a4 对所有 IPv4 接口应用本命令;Ifconfig -a broadcast+ 为所有设置了掩码值的接口调整广播值。

Solaris 也有相应的修改网络接口硬件地址的办法:ifconfig le0 ether aa:1:2:3:4:5

不同于 Linux 系统, Solaris 系统上的 ifconfig 命令配置网络接口时可以生成相应的路由,并调整路由的 metric 值。

Page 10: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-10中国科学技术大学 远程教育

3. Windows 下查看 IP 协议的配置

与 unix 下的 ifconfig 类似,在 windows 2000 及其以上版本的OS 中可以使用 ipconfig/all 命令 查看主机的 IP 协议配置。下面是一个使用此命令的示例:

Page 11: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-11中国科学技术大学 远程教育

二、 route

UNIX/Linux 系统具备一个简单的主机路由表,明显的特征就是只有一条默认的路由。这一点和路由器等网络设备不同,网络设备可以通过专用的路由协议自动更新路由表,而主机路由表只能人为操作,不具备自动更新的功能,除非将系统作为路由器使用,启动路由协议。

router 命令是用来查看和操纵主机路由表的工具软件,而且在 Solaris和 Linux 系统上的选项和格式也略有不同。

1. Linux 系统上 route 命令的常用格式为:route –ee :包含了 -v 和 -e两个选项所显示的所有内容.显示了路由表的所有参数route add [-net/-host dest] [netmask mm] [gw gateway][parameter] [dev interface]route delete/del [-net/-host dest] [netmask mm][gw gateway] [metric M][dev interface]

以上两条命令分别用来向路由表中添加和删除路由,需要做以下说明:interface 是网络接口的名字,其中关键宇 dev 可省略。删除时 delete 等同于 del 。添加路由时 [parameter] 和 [dev interface] 两项可任选,其他选项是必需的。删除路由时 [-net/-host dest] 和 [netmask mm] 是必需的,其他的都是任选项。netmask水有两种形式: -net 202.112.0.0 netmask 255.255.0.0 或 202.112.0.0/16 。Parameter包含的参数有: metric(跳数 ) 、 mss( 最大段尺寸 ) 、 window(窗口尺寸 ) 、 irtt(初始往返时间 ) 、 reject(强制路由表查询失败 ) 等。

Page 12: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-12中国科学技术大学 远程教育

2. windows 系统上 route 命令的常用格式为:语法格式:

route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]

参数 -f 清除所有不是主路由(网掩码为 255.255.255.255 的路由)、环回网

络路由(目标为 127.0.0.0 ,网掩码为 255.255.255.0 的路由)或多播路由(目标为 224.0.0.0 ,网掩码为 240.0.0.0 的路由)的条目的路由表。如果它与命令之一(例如 add 、 change 或 delete )结合使用,表会在运行命令之前清除。

-p 与 add 命令共同使用时,指定路由被添加到注册表并在启动 TCP/IP

协议的时候初始化 IP 路由表。默认情况下,启动 TCP/IP 协议时不会保存添加的路由。与 print 命令一起使用时,则显示永久路由列表。所有其它的命令都忽略此参数。永久路由存储在注册表中的位置是

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes 。

Page 13: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-13中国科学技术大学 远程教育

Command 指定要运行的命令。下表列出了有效的命令。 命令 目的 add 添加路由 change 更改现存路由 delete 删除路由 print 打印路由

Destination 指定路由的网络目标地址。目标地址可以是一个 IP 网络地址(其中

网络地址的主机地址位设置为 0 ),对于主机路由是 IP 地址,对于默认路由是 0.0.0.0 。

mask subnetmask 指定与网络目标地址相关联的网掩码(又称之为子网掩码)。子网掩

码对于 IP 网络地址可以是一适当的子网掩码,对于主机路由是 255.255.255.255 ,对于默认路由是 0.0.0.0 。如果忽略,则使用子网

掩码 255.255.255.255 。定义路由时由于目标地址和子网掩码之间的关系,目标地址不能比它对应的子网掩码更为详细。换句话说,如果子网掩码的一位是 0 ,则目标地址中的对应位就不能设置为 1 。

Page 14: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-14中国科学技术大学 远程教育

Gateway 指定超过由网络目标和子网掩码定义的可达到的地址集的前一个或下

一个跃点 IP 地址。对于本地连接的子网路由,网关地址是分配给连接子网接口的 IP 地址。对于要经过一个或多个路由器才可用到的远程路由,网关地址是一个分配给相邻路由器的、可直接达到的 IP 地址。

metric Metric 为路由指定所需跃点数的整数值(范围是 1 ~ 9999 ),它用来在路

由表里的多个路由中选择与转发包中的目标地址最为匹配的路由。所选的路由具有最少的跃点数。跃点数能够反映跃点的数量、路径的速度、路径可靠性、路径吞吐量以及管理属性。

if Interface 指定目标可以到达的接口的接口索引。使用 route print 命令可以显

示接口及其对应接口索引的列表。对于接口索引可以使用十进制或十六进制的值。对于十六进制值,要在十六进制数的前面加上 0x 。忽略 if 参数时,接口由网关地址确定。

/? 在命令提示符显示帮助。

Page 15: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-15中国科学技术大学 远程教育

注释

路由表中 跃点数 一列的值较大是由于允许 TCP/IP 根据每个 LAN 接口的 IP 地址、子网掩码和默认网关的配置自动确定路由表中路由的跃点数造成的。默认启动的自动确定接口跃点数确定了每个接口的速度,调整了每个接口的路由跃点数,因此最快接口所创建的路由具有最低的跃点数。要删除大跃点数,应在每个 LAN 连接的 TCP/IP 协议的高级属性中禁用自动确定接口跃点数。

如果在 systemroot\System32\Drivers\Etc 文件夹的本地网络文件中存在适当的条目,名称可以用于

Destination 。只要名称可以通过“域名系统” (DNS) 查询这样的标准主机名解析技术分解为 IP 地址,就可以将其用于

Gateway , DNS 查询使用存储在 systemroot\System32\Drivers\Etc 文件夹下的本地主机文件和 NetBIOS 名称解析。

如果是 print 或 delete 命令,可以忽略 Gateway 参数,使用通配符来表示目标和网关。

Page 16: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-16中国科学技术大学 远程教育

Destination 的值可以是由星号 (*) 指定的通配符。如果指定目标含有一个星号 (*) 或问号 (?) ,它被看作是通配符,只打印或删除匹配的目标路由。星号代表任意一字符序列,问号代表任一字符。例如, 10.*.1, 192.168.* 、 127.* 和 *224* 都是星号通配符的有效使用。

使用了无效的目标和子网掩码(网掩码)值的组合,会显示“ Route:bad gateway address netmask”错误消息。目标中有一位或多位设置为 1 ,而其在子网掩码中的对应位设置为 0 时会发生这个错误。可以通过二进制表示法表示目标和子网掩码来检查这种情况。以二进制表示的子网掩码包括表示目标网络地址部分的一连串的 1 和表示目标主机地址部分的一连串的 0 两个部分。查看目标以确定目标的主机地址部分(由子网掩码所定义)是否有些位设置成了 1 。

只有 Windows NT 4.0 、 Windows 2000 、 Windows Millennium Edition 和 Windows XP 的 route 命令支持 -p 参数。 Windows 95 或 Windows 98 的 route 命令不支持该参数。

只有当网际协议 (TCP/IP) 协议在 网络连接中安装为网络适配器属性的组件时,该命令才可用。

Page 17: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-17中国科学技术大学 远程教育

• 范例一 要显示 IP 路由表的完整内容,可键入: route print 要显示 IP 路由表中以 10. 开始的路由,可键入: route print 10.* 要添加默认网关地址为 192.168.12.1 的默认路由,可键入: route add 0.0.0.0 mask 0.0.0.0 192.168.12.1 要添加目标为 10.41.0.0 ,子网掩码为 255.255.0.0 ,下一个跃点地址

为 10.27.0.1 的路由,键入: route add 10.41.0.0 mask 255.255.0.0 10.27.0.1 要添加目标为 10.41.0.0 ,子网掩码为 255.255.0.0 ,下一个跃点地址

为 10.27.0.1 的永久路由,键入: route -p add 10.41.0.0 mask 255.255.0.0 10.27.0.1 要添加目标为 10.41.0.0 ,子网掩码为 255.255.0.0 ,下一个跃点地址

为 10.27.0.1 ,跃点数为 7 的路由,键入: route add 10.41.0.0 mask 255.255.0.0 10.27.0.1 metric 7 要添加目标为 10.41.0.0 ,子网掩码为 255.255.0.0 ,下一个跃点地址

为 10.27.0.1 ,接口索引为 0x3 的路由,键入: route add 10.41.0.0 mask 255.255.0.0 10.27.0.1 if 0x3

Page 18: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-18中国科学技术大学 远程教育

要删除目标为 10.41.0.0 ,子网掩码为 255.255.0.0 的路由,键入: route delete 10.41.0.0 mask 255.255.0.0

要删除 IP 路由表中以 10. 开始的所有路由,请键入: route delete 10.*

要将目标为 10.41.0.0 ,子网掩码为 255.255.0.0 的路由的下一个跃点地址由 10.27.0.1 更改为 10.27.0.25 ,键入:

route change 10.41.0.0 mask 255.255.0.0 10.27.0.25

Page 19: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-19中国科学技术大学 远程教育

范例二使用 route 命令解决一机双网访问 当一台计算机要同时访问两个网络(一个是互联网,一个是企业内部网)的要求。例如,(地址是虚构的)某机器有两块网卡,接到两台交换机上 internet 地址:

218.22.123.123 ,子网掩码: 255.255.255.0 ,网关: 218.22.123.254 企业内部网地址:

10.128.123.123 ,子网掩码: 255.255.255.0 ,网关: 10.128.123.254

如果按正常的设置方法设置每块网卡的 ip 地址和网关,再 cmd 下使用 route print 查看时会看到

Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 218.22.123.254 218.22.123.123 20 0.0.0.0 0.0.0.0 10.128.123.254 10.128.123.123 1

即指向 0.0.0.0 的有两个网关,这样就会出现路由冲突,两个网络都不能访问。要实现同时访问两个网络就要用到 route 命令 第一步: route delete 0.0.0.0 删除所有 0.0.0.0 的路由 第二步: route add 0.0.0.0 mask 0.0.0.0 218.22.123.254 添加 0.0.0.0网络路由 第三步: route add 10.0.0.0 mask 255.0.0.0 10.128.123.254 添加 10.0.0.0 网络路由

Page 20: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-20中国科学技术大学 远程教育

这时就可以同时访问两个网络了,但碰到一个问题,使用上述命令添加的路由在系统重新启动后会自动丢失,怎样保存现有的路由表呢? 在 win2000 下可以使用 route add -p 添加静态路由,即重启后,路由不会丢失。注意使用前要在 tcp/ip 设置里去掉接在企业内部网的网卡的网关 。

Page 21: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-21中国科学技术大学 远程教育

三、 arp

地址转换协议 ARP提供以大网 MAC 地址到 IP 地址的转换。运行有TCP/IP 协议栈的设备都支持 ARP 协议,并维护一个 ARP 表、该表中记录了本网段内与本机通信的所有 IP 地址与 MAC 地址的对应关系。 arp 命令则是用来操纵和观察 ARP 表的工具。Linux 系统查看 ARP 表常用的选项如下:-a 显示 ARP 表所有记录,每条记录描述一个 IP 地址对应的 MAC 地址。-e 用 Linux 系统的默认方式显示记录,和 -n联用显示如下:

Address HWtype HWaddress Flags Mask Iface166.111.4.5 ether 00:00:AA:20:2A:16 C eth1166.111.4.1 etller 00:00:AA:20:2A:17 C ethl

-n 不作域名解析, Linux 下才支持, Solaris 不提供。-i 该选项用于选择要查看的网络接口,如 eth0 ,也可以和操作选项联合使用。Linux 系统操纵 ARP 表的选项如下:-d hostname [pub] 从 ARP 表中删除一条记录。-s hostname hw_addr[ pub] 向 ARP 表中添加一条记录。-f file 默认为 /etc/ethers ,文件中每行表示为 [ 主机 IP MAC 地址 netmask mm pub/temp] ,从文件中逐行读出记录,并在 ARP 表中生成相应的记录。

Page 22: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-22中国科学技术大学 远程教育

6.2 TCP/IP 的检测工具

网络发生故障的原因是多方面的,首先要测试本地的网络,以判断本地网络是否正常工作,然后再检查到目的网络的连通性。这项工作涉及以下几方面的内容:

主机网络配置 IP 地址、子网掩码、网关及域名设置是否正确;局域网是否通畅 __判断本机到网关以及其他机器是否连通;跟踪路由,判断网络发生故障的地点,再联系对方予以解决。

实际解决问题的过程中,根据个人的经验,采用的步骤不尽相同。但是一般来说,远程通信发生问题时,应先检查局域网是否通畅,如果局域网没有问题,再追查到广域网,请求相应的网管部门解决问题。如果局域网有问题,再逐步缩小问题的范围。整个过程中将会用到 Ping 、 traceroute 、 netstat 等工具。

Page 23: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-23中国科学技术大学 远程教育

6.2.1 ping

ping 是一个常用工具,主要用来检测网络的连通性,不能直接用来衡量网络状况的好坏和可用性。 Ping成功返回的结果包括: ICMP分组报文顺序号、分组包来回一趟的响应时间以及分组包丢失的统计信息。Solaris 系统 ping 命令的常用格式示例如下:

bash-2.03# ping dns

dns is alive

默认只发送一个请求报文,如果无法连通则等待超时 ( 默认为 20秒 ) ,并显示:

ping : unknown host dns

如果要连续观察网络连通状况,则需要带 – s 选项,格式如下:ping –a –I interval host/IP data_size count

其中参数 -I interval 用来调整发包的时间间隔,默认为每秒一个报文; data_size控制报文数据的长度; count控制发包个数,当 ping 命令发送或接受了 count 个报文时就停止。例如:

Page 24: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-24中国科学技术大学 远程教育

bash-2.03# ping –s dns 100 3PING dns : 100 data bytes108 bytes from dns. Tsinghua.edu.cn (166.111.8.30) : icmp_seq=0, time=1. ms108 bytes from dns. Tsinghua.edu.cn (166.111.8.30) : icmp_seq=1, time=1. ms108 bytes from dns. Tsinghua.edu.cn (166.111.8.30) : icmp_seq=2, time=1. ms

---- dns PING Statistics ----3 packets transmitted,3 packets received , 0% packet lossround-trip min/avg/max = 1/1/1

Linux 系统上 ping 命令默认是连续工作的,对应上例的格式是:xiu # ping –c 3 –s 100 dns.tsinghua.edu.cnPING dns.tsinghua.edu.cn (166.111.8.30) from 166.111.4.23: 100(128) bytes of data108 bytes from dns.tsinghua.edu.cn (166.111.8.30): icmp_seq = 0 ttl=251 time=5.3 ms108 bytes from dns.tsinghua.edu.cn (166.111.8.30): icmp_seq = 1 ttl=251 time=1.1 ms108 bytes from dns.tsinghua.edu.cn (166.111.8.30): icmp_seq = 2 ttl=251 time=1.1 ms

---- dns.tsinghua.edu.cn ping Statistics ----3 packets transmitted,3 packets received , 0% packet lossround-trip min/avg/max = 1.1/2.5/5.3 ms

同 Solaris 系统相比,参数 -c 等同于 count , -s 等同于 data_size , -i 等同于 -I 。

Page 25: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-25中国科学技术大学 远程教育

如果 ping 失败,则返回一些错误信息,典型的错误信息有如下几种:

unknown host 未知主机,原因是无法通过名称服务转换成对应的 IP 地址。名称服务可能是基于本地 hosts 文件的,也可能是域名服务器或者 nis 服务器。如果采用的是非限定主机名,如 sissi ,则问题可能是 hosts 文件没有相应解析项,或者不能连通nis 服务器,如果采用的是全限定城名,则应该检查域名服务器。一方面测试名称服务器的连通性,一方面要检查名称服务是否正常。对于域名服务,常用的工具有 nslookup 和 dig 。network unreachable 网络不可达,表示本地系统没有路由到远程系统。这种情况需要检查各种路由的情况,可以采用 netstat 、traceroute 等工具。 traceroute 可以用来检查目标地址沿途各级路由是否正常工作, netstat 可以用来检查本地的路由表,至于解决问题时往往是都试试,根据反馈的结果来判断问题发生的地点。no answer 没有反应,原因很多,可能是远程系统没有反应或者网络配置有误,也可能是本地系统的配置有误,还可能是中间的网关出了问题。

Page 26: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-26中国科学技术大学 远程教育

6.2.2 traceroute

traceroute 是用来显示到远程主机沿途每一个网关的 IP 地址、对应的域名、跳数和每个分组包的往返时间 traceoute追踪路由时使用 UDP分组报文,为了侦测中间网关, traceroute 用无效的端口号, ttl 值自1 开始逐次加 1 ,每种 ttl 值发送三个分组报文。中间网关收到分组报文时将 ttl 值减 1 ,如果 ttl 值为零,则向原地址发送一个 ICMP超时消息, traceroute 根据该消息显示一列该网关的记录。如果三个分组报文的某一个没有回应报文 ( 可能是该系统不返回超时出错信息,也可能是 traceroute 对该分组报文的等待超时 ) , traceroute 就显不一个“ *” 号。如果目的主机收到 traceroute 的分组报文,则回应一个 ICMP Unreachable Port消息, traceroute收到该消息时则表示已经到达目的地址,并结束追踪。如果某个路由网关对三个分组均无响应,则连续显示 3 个“ *” 号,如果一直没有收到目标地址的回应,则 traceroute 在跳数到达 30 时终止。需要说明的是由于某些中间同关可能复用一些路径,对某一 ttl 值可能有几个不同的路由器都返回了 IC MMP超时消息, traceroute 会把所有返送网关都列出来。另外,某几个中间同关没有响应也不一定说明有问题,只要最终目的地能够达到就可以。

Page 27: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-27中国科学技术大学 远程教育

经过以上分析可以看到, traceroute 可以获得两个信息:路由是否正常;如果路由有问题,传输故障发生在哪里。

下由是一例的结果: root@backup network-scripts]# traceroute –n 202.112.0.35

traceroute to 202.112.0.35 (202.112.0.35) , 30 hops max, 38 byte packels

1 166.111.4.1 0.683 ms 0.442 ms 0.429 ms

2 166.111.1.133 0.944 ms 0.781 ms 0.777 ms

3 166.111.255.2 1.627 ms 1.423 ms 1.448 ms

4 166.111.255.6 67.322 ms 72.871 ms 70.938 ms

5 202.112.38.69 73.356 ms 76.018 ms 70.165 ms

6 202.112.53.21 73.128 ms 73.289 ms 68.679 ms

7 202.112.0.35 66.439 ms 66.155 ms 70.234 ms

另外还有一种情况,就是网络是通的,但是对方设置了防火墙, traceroute发出的请求被挡住了或者相应的消息报文被封都会导致 traceroute无法得到最终目标的响应,其典型特征是从目标主机的网关开始就得不到回应。

Page 28: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-28中国科学技术大学 远程教育

需要补充的是, windows 系统要求目标主机返回的不是 Unreachable port 消息,而是 ECHO REPLY ,所以上里中如果用 windows 的 tracert 工具可以得到正确的结果。

Page 29: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-29中国科学技术大学 远程教育

6.2.3 netstat 显示活动的 TCP 连接、计算机侦听的端口、以太网统计信息、 IP 路由

表、 IPv4 统计信息(对于 IP 、 ICMP 、 TCP 和 UDP 协议)以及 IPv6 统计信息(对于 IPv6 、 ICMPv6 、通过 IPv6 的 TCP 以及通过 IPv6 的 UDP 协议)。使用时如果不带参数, netstat 显示活动的 TCP 连接。语法为: netstat [-a] [-e] [-n] [-o] [-p Protocol] [-r] [-s] [Interval]

参数 -a 显示所有活动的 TCP 连接以及计算机侦听的 TCP 和 UDP 端口。 -e 显示以太网统计信息,如发送和接收的字节数、数据包数。该参数可以与 -s 结合使用。 -n 显示活动的 TCP 连接,不过,只以数字形式表现地址和端口号,却不尝试确定名称。 -o 显示活动的 TCP 连接并包括每个连接的进程 ID (PID) 。可以在 Windows 任务管理器中的“进程”选项卡上找到基于 PID 的应用程序。该参数可以与 -a 、 -n 和 -p 结合使用。 -p Protocol 显示 Protocol 所指定的协议的连接。在这种情况下, Protocol 可以是 tcp 、 udp 、 tcpv6 或 udpv6 。如果该参数与 -s 一起使用按协议显示统计信息,则 Protocol 可以是 tcp 、 udp 、 icmp 、 ip 、 tcpv6 、 udpv6 、 icmpv6 或 ipv6 。

Page 30: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-30中国科学技术大学 远程教育

-s 按协议显示统计信息。默认情况下,显示 TCP 、 UDP 、 ICMP 和 IP 协议的统计信息。如果安装了 Windows XP 的 IPv6 协议,就会显示有关 IPv6 上的 TCP 、 IPv6 上的 UDP 、 ICMPv6 和 IPv6 协议的统计信息。可以使用 -p 参数指定协议集。

-r 显示 IP 路由表的内容。该参数与 route print 命令等价。 Interval 每隔 Interval 秒重新显示一次选定的信息。按 CTRL+C 停止重新显示统计信息。如果省略该参数, netstat 将只打印一次选定的信息。

/? 在命令提示符显示帮助。

Page 31: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-31中国科学技术大学 远程教育

注释 与该命令一起使用的参数必须以连字符 (-) 而不是以短斜线 (/) 作为前缀。 Netstat 提供下列统计信息: Proto 协议的名称( TCP 或 UDP )。

Local Address 本地计算机的 IP 地址和正在使用的端口号。如果不指定 -n 参数,就显示与 IP 地址和端口的名称对应的本地计算机名称。如果端口尚未建立,端口以星号( * )显示。

Foreign Address 连接该插槽的远程计算机的 IP 地址和端口号码。如果不指定 -n 参数,就显示与 IP 地址和端口对应的名称。如果端口尚未建立,端口以星号( * )显示。

(state) 表明 TCP 连接的状态。可能的状态如下: CLOSE_WAIT CLOSED ESTABLISHED FIN_WAIT_1 FIN_WAIT_2 LAST_ACK LISTEN SYN_RECEIVED SYN_SEND TIMED_WAIT

只有当网际协议 (TCP/IP) 协议在 网络连接中安装为网络适配器属性的组件时,该命令才可用。

Page 32: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-32中国科学技术大学 远程教育

范例 显示以太网统计信息和所有协议的统计信息,键入: netstat -e -s

想仅显示 TCP 和 UDP 协议的统计信息,键入: netstat -s -p tcp udp

想每 5 秒钟显示一次活动的 TCP 连接和进程 ID ,键入: netstat -o 5

想以数字形式显示活动的 TCP 连接和进程 ID ,键入: netstat -n –o

Page 33: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-33中国科学技术大学 远程教育

6.2.4 nbtstat

nbtstat 命令显示本地计算机和远程计算机的基于 TCP/IP (NetBT) 协议的 NetBIOS 统计资料、 NetBIOS 名称表和 NetBIOS 名称缓存。 nbtstat 可以刷新 NetBIOS 名称缓存和注册的 Windows Internet 名称服务 (WINS) 名称。使用不带参数的 nbtstat 显示帮助。语法 nbtstat [-a RemoteName] [-A IPAddress] [-c] [-n] [-r] [-R] [-RR] [-s] [-S][Interval]

参数 -a remotename 显示远程计算机的 NetBIOS 名称表,其中, RemoteName 是远程计算机的 NetBIOS 计算机名称。 NetBIOS 名称表是运行在该计算机上的应用程序使用的 NetBIOS 名称列表。

-A IPAddress 显示远程计算机的 NetBIOS 名称表,其名称由远程计算机的 IP

地址指定(以小数点分隔)。 -c 显示 NetBIOS 名称缓存内容、 NetBIOS 名称表及其解析的各个地

址。

Page 34: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-34中国科学技术大学 远程教育

-n 显示本地计算机的 NetBIOS 名称表。 Registered 中的状态表明该名称是

通过广播或 WINS 服务器注册的。 -r 显示 NetBIOS 名称解析统计资料。在配置为使用 WINS 的 Windows X

P 计算机上,该参数将返回已通过广播和 WINS 解析和注册的名称号码。

-R 清除 NetBIOS 名称缓存的内容并从 Lmhosts 文件中重新加载带有 #PR

E 标记的项目。 -RR

重新释放并刷新通过 WINS 注册的本地计算机的 NetBIOS 名称。 -s 显示 NetBIOS 客户和服务器会话,并试图将目标 IP 地址转化为名称。 -S 显示 NetBIOS 客户和服务器会话,只通过 IP 地址列出远程计算机。

Interval 重新显示选择的统计资料,可以中断每个显示之间的 Interval 中指定的秒数。按 CTRL+C 停止重新显示统计信息。如果省略该参数, netstat 将只显示一次当前的配置信息。

/? 在命令提示符显示帮助。

Page 35: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-35中国科学技术大学 远程教育

注释 Nbtstat 命令行参数区分大小写。下面列出了由 Nbtstat 生成的列标题。 标题 说明

Input 接收的字节数。 Output 发送的字节数。 In/Out 该连接是否从计算机(传出)或者其他计算机到本地计算机

(传入)。 Lift 名称表缓存项在被清除之前所存留的时间。 Local Name 本地 NetBIOS 名称与连接相关联。 Remote Host 与远程计算机相关的名称或 IP 地址。 <03> 转化为十六进制的 NetBIOS 名称的最后一个字节。每个 NetBI

OS 名称长度均为 16 个字符。由于最后一个字节通常有特殊的意义,因为相同的名称(只有最后一个字节不同)可能在一台计算机上出现几次。例如, <20> 在 ASCII 文本中是一个空格。

Type 名称类型。名称可以是单个名称,也可以是组名称。 Status 远程计算机上是否在运行 NetBIOS 服务(“已注册”),或

同一计算机名是否已注册了相同的服务(“冲突”)。 State NetBIOS 连接的状态。

Page 36: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-36中国科学技术大学 远程教育

下面列出了可能的 NetBIOS 连接状态。已连接: 会话已建立。 关联:连接的终结点已经被创建并与 IP 地址关联。 正接听:该终结点对内向连接可用。 空闲:该结束点已被打开单不能接收连接。 正在连接:会话处于连接阶段。在此阶段正在解析所选目标的由

名称到 IP 地址的映射。 接受:入站会话当前正在被接受,将在短期内连接。 重新连接:会话将试图重新连接(如果第一次连接失败)。 出站:会话正处于连接阶段。此阶段正在创建 TCP 连接。 入站:入站会话在连接期。 正在断开:会话正在断开连接。 已中断连接:本地计算机已断开连接,并正等待远程系统的确认。

只有当 TCP/IP 协议在网络连接中安装为网络适配器属性的组件时,

该命令才可用。

Page 37: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-37中国科学技术大学 远程教育

范例 显示 NetBIOS 计算机名为 CORP07 的远程计算机的 NetBIOS 名称表,键入:

nbtstat -a CORP07

显示所分配 IP 地址为 10.0.0.99 的远程计算机的 NetBIOS 名称表,键入: nbtstat -A 10.0.0.99

显示本地计算机的 NetBIOS 名称表,键入: nbtstat -n

显示本地计算机 NetBIOS 名称缓存的内容,这些内容是与本机最近进行通信的其他计算机的 NetBIOS 名字和 IP 地址对。键入: nbtstat -c

清除 NetBIOS 名称缓存并重新装载本地 Lmhosts 文件中带标记 #PRE 的项目,键入: nbtstat -R

释放通过 WINS 服务器注册的 NetBIOS 名称并对其重新注册,键入: nbtstat -RR

每隔 5 秒以 IP 地址显示 NetBIOS 会话统计资料,键入: nbtstat -S 5

Page 38: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-38中国科学技术大学 远程教育

6.2.5 其他命令

一、 ARP 命令:1. 在代理服务器端捆绑 IP 和 MAC 地址,解决局域网内盗用 IP 。假

设 LAN 中某台计算机的指定的 IP 地址为 192.168.10.59 ,其网卡的物理地址为 00-50-ff-6c-08-75 ,我们可键入:ARP -s 192.168.10.59 00-50-ff-6c-08-75

2. 解除网卡的 IP 与 MAC 地址的绑定:arp -d 主机的 IP 地址

二、网络 net 命令:1. 显示当前工作组服务器列表 : net view2. 查看计算机上的用户帐号列表 : net user3. 查看网络链接 : net use4. 记录链接 : net session

Page 39: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-39中国科学技术大学 远程教育

三、共享安全的命令 net share 此命令用于创建、删除或显示共享资源。命令格式为: net share sharename=drive:path [/users:number| /unlimited]

[/remark:"text"] net share sharename [/users:number| unlimited ] [/remark:"text"] net share {sharename | drive:path} /delete

参数 键入不带参数的 net share 显示关于本地计算机上共享的所有资源的信息。 sharename :共享资源的网络名称。键入带参数 sharename 的 net share

命令只显示有关该共享的信息。 drive:path :指定要共享目录的绝对路径。 /users:number :设置可以同时访问共享资源的最多用户数。 /unlimited :指定可以同时访问共享资源的、数量不受限制的用户。 /remark:“text” : 添加关于资源的描述注释。将文本包括在引号中。 /delete :停止共享资源。 例:1. 要显示有关计算机上共享资源的信息,键入: net share

Page 40: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-40中国科学技术大学 远程教育

2. 要使用共享名 SECRETARY 共享计算机的 C:\\LETTERS 目录并包括注释,键入:

net share secretary=c:\\letters /remark:"For department 123."

3. 要停止共享 LETTERS 目录,键入: net share secretary /delete

4. 要使用共享名 LIST 共享计算机的 C:\\ART LST 目录并包括注释,键入:

net share list="c:\\art lst"5. 查看本机器的共享资源

net share2. 手工删除共享

net share c$ /dnet share d$ /dnet share ipc$ /dnet share admin$ /d

3. 增加一个共享:c:\net share mymovie=e:\downloads\movie /users:1

mymovie 共享成功。同时限制链接用户数为 1人。

Page 41: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-41中国科学技术大学 远程教育

四、 NSLOOKUP 命令 DNS服务器储存了域名和 IP 的对应关系,如 www.cpcw.com 对应的

IP 就是 218.201.44.82 。如果 DNS服务器出现故障就无法使用域名访问网站,而只能使用 IP 地址访问。怎么才能判断是否是 DNS出现故障呢? windows 2000/xp 中的 Nslookup 命令用来确定 DNS服务器是否正常工作。 Nslookup 有两种模式:交互模式和非交互模式(还可以用这种方式找到网站实际使用的 IP 地址)。非交互模式:在 window 2000/xp 中进入命令提示符。先用 nslookup 来检测 DNS 的域名正向解析功能。键入“ nslookup www.chinafit.com” 命令,回车之后即可看到如下结果:

   Server: ns.ustc.edu.cn

   Address: 202.38.64.1

   Non-authoritative answer:

   Name: www.chinafit.com

   Address:210.51.187.84

这说明正在工作的 DNS服务器的主机名为“ cn.ustc.edu.cn” ,它的 IP 地址是 202.38.64.1 ,而域名 www.chinafit.com 所对应的 IP 地址为: 210.51.187.84 。 DNS 地址解析正确。

Page 42: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-42中国科学技术大学 远程教育

交互模式 在命令提示符下输入“ nslookup”,回车,会出现目前的默认

DNS服务器名字和 IP 地址。接下来就可以在“ >” 后输入想要解析或者反向解析的域名或者 IP 地址。查询完一条后可接着在“ >”后输入新的查询,按下 ctrl+c 可退出该模式。

如果网络内没有 DNS服务器故障或 DNS 配置错误,或者其它原因,会出现一些错误信息,如 Timed out(超时 ),No response form server( 应无答 ),No records(无记录 ),Nonexistent domain(域名不存在 ),Connection refused(连接被拒绝 ),Network is unreachable ( 网络连接失败 ),Server failure(服务器故障 ) 等。

Page 43: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-43中国科学技术大学 远程教育

6.3 路由配置命令 在 windows 下配置路由,可以使用用于路由的 Netsh 命令,从命令行管理路由服务器,而不用通过“路由和远程访问”控制台。从命令行管理服务器在下列情况下最有用: 从命令行管理路由服务器可以比使用控制台更快一些。如果使用慢速网络链接,比如通过广域网 (WAN) 的连接,这种能力就特别重要。

通过将这些命令合并到能够在许多服务器上运行的脚本中,可以一致地管理路由服务器。 可以在合适的 Netsh 环境命令提示符下使用下列命令,来管理路由服务器。要在远程 Windows 2000 Server 上运行这些 Netsh 命令,必须首先使用“远程桌面连接”连接到运行终端服务器的 Windows 2000 Server 。Windows 2000 和 Windows Server 2003 家族中的 Netsh 环境命令之间存在一些功能性差异。

我们还可以使用 Netsh 实用程序将一台计算机的当前网络配置保存到一个脚本文件中,用来配置其他服务器。

Netsh 通过添加 Netsh 助手 DLL 支持多个 Windows 2000 组件。 Netsh 助手 DLL 通过提供用来监视或配置特定 Windows 2000 网络组件的附加命令,扩展了 Netsh 的功能。例如, Dhcpmon.dll 提供了配置 DHCP 服务器服务的命令。各 Netsh 助手 DLL 都提供了一个上下文 - 针对某一特定网络组件的命令组。在各上下文中,可以有子上下文。例如,在 routing

上下文中,子上下文 ip 和 ipx 分别将 IP 和 IPX 路由命令组织在一起。

Page 44: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-44中国科学技术大学 远程教育

6.3.1 Netsh 命令行语法 Netsh 命令行参数包括: -a 别名文件:指定使用一个别名文件。别名文件中包含一个 netsh 命令列表及各命令

对应的别名命令。可以使用别名命令来缩短 Netsh 命令。 -c 上下文:在 Netsh 命令提示符下指定后继命令的默认上下文。如果没有 -c 选项,

则默认上下文将是根上下文 netsh> 。 命令:指定要运行的 netsh 命令。必须指定完整的 Netsh 命令,并带有参数。否则,

Netsh 将显示命令行帮助。如果使用了 -c 选项,则上下文就作为 Netsh 命令的一部分包括在命令中。

-f 脚本文件:指定运行脚本文件文件中的所有 Netsh 命令。 -r 远程计算机:指定 Netsh 命令针对远程计算机运行,此计算机通过计算机名或 IP

地址来指定。 可以在 Windows 2000 命令提示符下运行命令: C:\>netsh interface ip show address

也可以在 Netsh 命令提示符下以交互方式运行命令: netsh>interface ip show address

实际在 Netsh 命令提示符下运行的命令取决于当前上下文。例如,下列所有命令都产生同样的效果:

netsh> interface ip show address

interface> ip show address

interface ip> show address

Page 45: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-45中国科学技术大学 远程教育

可以将命令缩减为最短但意义清楚的形式。例如: C:\>netsh interface ip show address

等同于: C:\>netsh int ip sh ad

Netsh 命令有的是全局命令,有的特定于上下文。全局命令可在任何上下文中发出,而且用于通用的 Netsh

实用程序功能。特定于上下文的命令因上下文而异。 不可以在某一上下文中运行另外一个上下文中的命令。例如,不可以运行

下面的命令: ras>interface ip show address

因为 ras 和 interface 是不同的上下文。

Page 46: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-46中国科学技术大学 远程教育

命令 说明 命令 说明

.. 改变到当前上下文的上一级上下文。根上下文是 netsh> 。

show mode 显示当前模式。

? Help 显示命令行帮助,包括语法和示例。 abort 放弃脱机模式中的任何更改。

add helper 安装一个 Netsh 助手 DLL 。 commit 提交在脱机模式中做的更改。

delete helper

删除一个 Netsh 助手 DLL 。 set machine 配置运行 Netsh 命令所在的计算机。

show helper 显示安装的 Netsh 助手 DLL 。 exec 运行一个包含 Netsh 命令的脚本文件。

online 将当前模式设置为联机。 Quit bye exit 退出 Netsh 实用程序。

offline 将当前模式设置为脱机。 Dump 将当前配置显示为一系列 Netsh 命令。

set mode 将当前模式设置为联机或脱机。 pushd 将当前上下文保存到后进先出 (LIFO) 堆栈的栈顶,而且,也可选择更改到另一个不同的上下文。

show mode 显示当前模式。 popd 从 LIFO 堆栈栈顶还原一个上下文。

abort 放弃脱机模式中的任何更改。 alias 给一个现有命令添加别名。

commit 提交在脱机模式中做的更改。 unalias 删除一个现有命令的别名。

Netsh 全局命令

Page 47: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-47中国科学技术大学 远程教育

Netsh 上下文 安装在本地计算机上的 Netsh 助手 DLL 提供了一个上下文(即一组

命令),而且也可能提供子上下文。只可以运行与本地安装的助手 DLL 对应的命令,即使在远程计算机上也安装了此助手 DLL 的情况下也是如此。

例如,当在一台运行 Windows 2000 Professional 的计算机上使用 Netsh 实用程序远程管理一台运行 Windows 2000 Server 的计算机时,就属于这种情况。尽管运行 Windows 2000 Server 的计算机上安装了用以管理动态主机配置协议 (DHCP) 服务器服务、 Windows Internet 名称服务 (WINS) 和 Internet 验证服务 (IAS) 的附加助手 DLL ,但如果这些助手 DLL 未在运行 Windows 2000 Professional 的计算机上安装,就不可以在此计算机上使用 Netsh 实用程序配置 Windows 2000 Server 计算机上的这些服务。此问题有两个解决办法:

在运行 Windows 2000 Professional 的计算机上安装 Windows 2000 管理工具,方法是从 Windows 2000 Server CD-ROM 上的 I386 文件夹中运行 Adminpak.msi 文件。 通过此解决办法,运行 Windows 2000 Professional 的计算机将安装上所有 Netsh 助手来远程管理运行 Windows 2000 Server 的计算机。

从运行 Windows 2000 Professional 的计算机建立一个到 Windows 2000 Server 计算机的终端服务或 Telnet 连接,然后从运行 Windows 2000 Server 的计算机上运行 Netsh 。 这种解决办法根本没有使用远程模式。

Page 48: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-48中国科学技术大学 远程教育

不能通过将上下文指定为一个命令来从 Windows 2000 命令行中进入一个特定的 Netsh 上下文。例如,不能使用下面的命令运行 Netsh 并改变到 interface> 上下文: C:\>netsh interface

要在 Windows 2000 命令行进入一个 netsh 上下文,使用 -c 命令行选项。例如:

C:\>netsh -c interface Windows 2000 Professional 提供了下列上下文:

-interface :用来为远程访问连接和 TCP/IP 配置配置接口参数。 -ras :用来配置“网络和拨号连接”的“传入的连接”组件。 -routing :用来配置“网络和拨号连接”的“ Internet 连接共享” (ICS) 组件。

Windows 2000 Server 提供了下列上下文: -interface :用来为远程访问和请求拨号连接以及 TCP/IP 配置配置接口参数。 -ras :用来配置“网络和拨号连接”和“路由和远程访问”服务的“传入的连接”组件。 -routing :用来配置“网络和拨号连接”和“路由和远程访问”服务的 ICS 组件。 -dhcp :用来配置 DHCP 服务器服务。 -wins :用来配置 WINS 。 -aaaa :用来配置 IAS 和“路由和远程访问”服务都使用的身份验证、授权、计帐和审核 (AAAA) 数据库。

Page 49: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-49中国科学技术大学 远程教育

Netsh 命令模式 Netsh 实用程序有下列命令模式: 非交互式: 在 Windows 2000 命令提示符下发出 Netsh 命令时,就处于非交互模式下。

交互式: 在 Netsh 命令提示符下发出命令时,就处于交互模式下。 联机: 在联机模式下,在 Netsh 命令提示符下运行的命令将立即运行。

Netsh 默认处于联机模式。如要将 Netsh 置于联机模式,可使用 online 或 set mode online 命令。

脱机: 在脱机模式下,在 Netsh 命令提示符下运行的命令将累积起来,通过发出 commit 全局命令来批量运行。您可以通过发出 abort 全局命令来放弃所有累积的命令。如要将 Netsh 置于脱机模式,可使用 offline 或 set mode offline 命令。

脚本: 当使用 -f 命令行选项或运行 exec 全局命令时,指定文件中的所有 Netsh 命令都将以脚本模式运行。

本地: 在本地模式中,命令应用于本地计算机。 远程: 在远程模式中,命令应用于按计算机名或 IP 地址指定的一台远程计

算机。有关远程模式的更多信息,请参见本文中“远程配置”一节。

Page 50: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-50中国科学技术大学 远程教育

使用 dump 命令创建配置脚本

要创建当前网络配置的一个脚本,可使用 dump 全局命令。 dump 命令将以 Netsh 命令的形式显示当前网络配置。要创建脚本文件,在 Windows 2000 命令提示符下执行以下命令:

C:\>netsh dump > config.nsh

可以使用此命令创建的脚本来配置一台新的服务器,或通过在 Windows 2000 命令提示符下运行下面的命令来重新配置一台现有的服务器:

C:\>netsh -f config.nsh

如果要对一个组件的配置做大范围的更改,建议在开始进行配置时先将当前配置保存到一个脚本文件中。在进行更改前做这一步可确保能够还原到原配置。

Page 51: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-51中国科学技术大学 远程教育

示例 Netsh 脚本 此示例 Netsh 脚本在一个运行 Windows 2000 和“路由和远程访问”服务的分支办公室路由器上执行自动静态路由更新。需要运行的命令有: netsh interface set interface name=CorpHub connect=CONNECTED

netsh routing ip rip update CorpHub

netsh interface set interface name=CorpHub connect=DISCONNECTED

可以从一个批处理文件运行这些命令,也可以将它们放入一个 Netsh 脚本文件中。例如,脚本文件 Corphub.nsh 中包含下列命令: interface set interface name=CorpHub connect=CONNECTEDrouting ip rip update CorpHubinterface set interface name=CorpHub connect=DISCONNECTED

要运行 Corphub.scp 脚本文件,请在命令提示符下键入下面的命令: netsh -f corphub.nsh

在 Netsh 脚本文件创建完成后,您可以在需要时运行它,也可以通过 Windows 2000 任务调度程序来定期运行它。

Page 52: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-52中国科学技术大学 远程教育

远程配置 Netsh 最有用的一个方面是它能够远程配置运行 Windows 2000

的计算机。可以通过指定 -r 远程计算机 命令行选项或使用 set machine 全局 Netsh 命令来指示要配置的远程计算机。在这两种情况下,您都可以用 NetBIOS 名称、 UNC 名称、 DNS 域名,或用一个点分隔十进制符号形式的 IP 地址来指定一个远程计算机。

如要在远程计算机上运行命令,必须在该远程计算机上有管理员权限。必须用一个是该远程计算机上的“管理员”组中成员的用户帐户来登录。或者,必须有这样一个现有连接:该连接所用的用户帐户是该远程计算机上“管理员”组中的一名成员。

在使用 set machine 命令指定远程计算机时, netsh 命令提示符会变为指示将在其上运行命令的远程计算机的名称或 IP 地址。下面是一个例子: netsh>set machine 157.59.138.21 [157.59.138.21]

netsh>interface可以用同一个脚本文件配置多台远程计算机,方法是让

各组要在远程计算机上运行的命令以相应的 set machine 命令作为开始。 有些命令,如 aaaa 上下文中的那些命令,不能远程执行。如要

将 Netsh 重置为本地计算机模式,可发出不带任何参数的 set machine 命令。

Page 53: TCP/IP 基本原理 第六章   TCP/IP 诊断与设置

6-53中国科学技术大学 远程教育

本章习题

参见教师网页: http://staff.ustc.edu.cn/~leeyi