tcp ip tcp ip
Download
Skip this Video
Download Presentation
TCP/IP 基本原理 第六章 TCP/IP 诊断与设置

Loading in 2 Seconds...

play fullscreen
1 / 53

TCP/IP 基本原理 第六章 TCP/IP 诊断与设置 - PowerPoint PPT Presentation


  • 117 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' TCP/IP 基本原理 第六章 TCP/IP 诊断与设置' - adonia


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide2
本章学习要求:
  • 掌握:常用网络测试及维护命令
6 1 tcp
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 相关的内容,可以获知网络接口的名称。
slide4
每块网卡至少对应一个IP”地址,每个IP地址也可以对应多块网卡(相应的技术称为负载均衡,即Load sharing,也称为多路绑定,即 trunking )。如果一个主机和网络设备有多块网卡接入到TCP/IP网络中,就可能要配置多个IP地址,拥有多个IP址的主机叫多穴主机。
6 1 2 tcp ip
6.1.2 TCP/IP配置工具

一、ifconfig

ifconfig是用来设置和配置网络接口的命令行工具,可以启用或禁用网络接口、配置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

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

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

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

slide7
[root@backup/root]# ifconfig

eth1 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.128

UP BROAADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:7853085 errors:0 dropped:0 ovverruns:0 frame:0

TX packets:2914494 errors:0 dropoed:0 overruns: 0 carrier:0

collisions:0 txqueuelen:100

Interrupt:18

ethl:0 Link encap:Ethernet HWaddr 00:D0:B7:B6:0A:9E

inet addr:192.168.1.50 Bcast:192.168.1.255 Mask:255.255.255.0

UP BROAADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:7853085 errors:0 dropped:0 ovverruns:0 frame:0

Interrupt:18

lo Link encap:Local Lookback

inet addr:127.0.0.1 Mask:255.0.0.0

UP BROAADCAST RUNNING MULTICAST MTU:16436 Metric:1

RX packets:949 errors:0 dropped:0 ovverruns:0 frame:0

TX packets:949 errors:0 dropoed:0 overruns: 0 carrier:0

collisions:0 txqueuelen:0

Interrupt:18

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

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

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

route
二、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(强制路由表查询失败)等。
2 windows route
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。

slide13
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。

slide14
Gateway

指定超过由网络目标和子网掩码定义的可达到的地址集的前一个或下一个跃点 IP 地址。对于本地连接的子网路由,网关地址是分配给连接子网接口的 IP 地址。对于要经过一个或多个路由器才可用到的远程路由,网关地址是一个分配给相邻路由器的、可直接达到的 IP 地址。

metric Metric

为路由指定所需跃点数的整数值(范围是 1 ~ 9999),它用来在路由表里的多个路由中选择与转发包中的目标地址最为匹配的路由。所选的路由具有最少的跃点数。跃点数能够反映跃点的数量、路径的速度、路径可靠性、路径吞吐量以及管理属性。

if Interface

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

/?

在命令提示符显示帮助。

slide15
注释

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

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

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

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

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

slide16
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) 协议在 网络连接中安装为网络适配器属性的组件时,该命令才可用。

slide17
范例一

要显示 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

slide18
要删除目标为 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

slide19
范例二使用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 Metric0.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网络路由

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

166.111.4.5 ether 00:00:AA:20:2A:16 C eth1

166.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表中生成相应的记录。

6 2 tcp ip
6.2 TCP/IP的检测工具

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

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

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

6 2 1 ping
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个报文时就停止。例如:

slide24
bash-2.03# ping –s dns 100 3

PING dns:100 data bytes

108 bytes from dns. Tsinghua.edu.cn (166.111.8.30) : icmp_seq=0, time=1. ms

108 bytes from dns. Tsinghua.edu.cn (166.111.8.30) : icmp_seq=1, time=1. ms

108 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 loss

round-trip min/avg/max = 1/1/1

Linux系统上ping命令默认是连续工作的,对应上例的格式是:

xiu # ping –c 3 –s 100 dns.tsinghua.edu.cn

PING dns.tsinghua.edu.cn (166.111.8.30) from 166.111.4.23: 100(128) bytes of data

108 bytes from dns.tsinghua.edu.cn (166.111.8.30): icmp_seq = 0 ttl=251 time=5.3 ms

108 bytes from dns.tsinghua.edu.cn (166.111.8.30): icmp_seq = 1 ttl=251 time=1.1 ms

108 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 loss

round-trip min/avg/max = 1.1/2.5/5.3 ms

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

slide25
如果ping失败,则返回一些错误信息,典型的错误信息有如下几种:如果ping失败,则返回一些错误信息,典型的错误信息有如下几种:
  • unknown host 未知主机,原因是无法通过名称服务转换成对应的 IP地址。名称服务可能是基于本地hosts文件的,也可能是域名服务器或者nis 服务器。如果采用的是非限定主机名,如 sissi,则问题可能是hosts文件没有相应解析项,或者不能连通nis 服务器,如果采用的是全限定城名,则应该检查域名服务器。一方面测试名称服务器的连通性,一方面要检查名称服务是否正常。对于域名服务,常用的工具有nslookup和dig。
  • network unreachable 网络不可达,表示本地系统没有路由到远程系统。这种情况需要检查各种路由的情况,可以采用netstat、traceroute等工具。traceroute可以用来检查目标地址沿途各级路由是否正常工作,netstat可以用来检查本地的路由表,至于解决问题时往往是都试试,根据反馈的结果来判断问题发生的地点。
  • no answer 没有反应,原因很多,可能是远程系统没有反应或者网络配置有误,也可能是本地系统的配置有误,还可能是中间的网关出了问题。
6 2 2 traceroute
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会把所有返送网关都列出来。另外,某几个中间同关没有响应也不一定说明有问题,只要最终目的地能够达到就可以。

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

下由是一例的结果:

[email protected] 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无法得到最终目标的响应,其典型特征是从目标主机的网关开始就得不到回应。

slide28
需要补充的是,windows系统要求目标主机返回的不是Unreachable port 消息,而是ECHO REPLY,所以上里中如果用windows的tracert 工具可以得到正确的结果。
6 2 3 netstat
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。

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

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

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

slide31
注释 与该命令一起使用的参数必须以连字符 (-) 而不是以短斜线 (/) 作为前缀。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) 协议在 网络连接中安装为网络适配器属性的组件时,该命令才可用。
slide32
范例 显示以太网统计信息和所有协议的统计信息,键入: netstat -e -s想仅显示 TCP 和 UDP 协议的统计信息,键入: netstat -s -p tcp udp想每 5 秒钟显示一次活动的 TCP 连接和进程 ID,键入: netstat -o 5 想以数字形式显示活动的 TCP 连接和进程 ID,键入: netstat -n –o
6 2 4 nbtstat
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名称表及其解析的各个地址。

slide34
-n

显示本地计算机的 NetBIOS 名称表。Registered 中的状态表明该名称是通过广播或 WINS 服务器注册的。

-r

显示 NetBIOS 名称解析统计资料。在配置为使用 WINS 的 Windows XP 计算机上,该参数将返回已通过广播和 WINS 解析和注册的名称号码。

-R

清除 NetBIOS 名称缓存的内容并从 Lmhosts 文件中重新加载带有 #PRE 标记的项目。

-RR

重新释放并刷新通过 WINS 注册的本地计算机的 NetBIOS 名称。

-s

显示 NetBIOS 客户和服务器会话,并试图将目标 IP 地址转化为名称。

-S

显示 NetBIOS 客户和服务器会话,只通过 IP 地址列出远程计算机。

Interval

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

/?

在命令提示符显示帮助。

slide35
注释

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

Input 接收的字节数。

Output 发送的字节数。

In/Out 该连接是否从计算机(传出)或者其他计算机到本地计算机(传入)。

Lift 名称表缓存项在被清除之前所存留的时间。

Local Name 本地 NetBIOS 名称与连接相关联。

Remote Host 与远程计算机相关的名称或 IP 地址。

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

Type 名称类型。名称可以是单个名称,也可以是组名称。

Status 远程计算机上是否在运行 NetBIOS 服务(“已注册”),或同一计算机名是否已注册了相同的服务(“冲突”)。

State NetBIOS 连接的状态。

slide36
下面列出了可能的 NetBIOS 连接状态。

已连接: 会话已建立。

关联:连接的终结点已经被创建并与 IP 地址关联。

正接听:该终结点对内向连接可用。

空闲:该结束点已被打开单不能接收连接。

正在连接:会话处于连接阶段。在此阶段正在解析所选目标的由名称到 IP 地址的映射。

接受:入站会话当前正在被接受,将在短期内连接。

重新连接:会话将试图重新连接(如果第一次连接失败)。

出站:会话正处于连接阶段。此阶段正在创建 TCP 连接。

入站:入站会话在连接期。

正在断开:会话正在断开连接。

已中断连接:本地计算机已断开连接,并正等待远程系统的确认。

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

slide37
范例

显示 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

6 2 5
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 view

2. 查看计算机上的用户帐号列表: net user

3. 查看网络链接: net use

4. 记录链接: net session

slide39
三、共享安全的命令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

slide40
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 share

2. 手工删除共享

net share c$ /d

net share d$ /d

net share ipc$ /d

net share admin$ /d

3. 增加一个共享:

c:\net share mymovie=e:\downloads\movie /users:1

mymovie 共享成功。

同时限制链接用户数为1人。

slide41
四、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地址解析正确。

slide42
交互模式

  在命令提示符下输入“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(服务器故障)等。

slide43
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 路由命令组织在一起。

slide44
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

slide45
可以将命令缩减为最短但意义清楚的形式。例如:

C:\>netsh interface ip show address

等同于:

C:\>netsh int ip sh ad

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

实用程序功能。特定于上下文的命令因上下文而异。

不可以在某一上下文中运行另外一个上下文中的命令。例如,不可以运行下面的命令:

ras>interface ip show address

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

slide47
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。 这种解决办法根本没有使用远程模式。

slide48
不能通过将上下文指定为一个命令来从 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) 数据库。

slide49
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 地址指定的一台远程计算机。有关远程模式的更多信息,请参见本文中“远程配置”一节。

slide50
使用 dump 命令创建配置脚本

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

C:\>netsh dump > config.nsh

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

C:\>netsh -f config.nsh

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

slide51
示例 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 任务调度程序来定期运行它。

slide52
远程配置

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 命令。

slide53
本章习题
  • 参见教师网页:http://staff.ustc.edu.cn/~leeyi
ad