📄 00000017.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人: ruster (尘埃*星辰*领悟), 信区: Linux <BR>标 题: 第九章 管理、维护和排错(下) <BR>发信站: BBS 水木清华站 (Thu Dec 21 13:53:14 2000) <BR> <BR> <BR>9.6 网络管理和排错 <BR> <BR> 网络是容易出现问题的。尽管技术上说诸如网线折断或者远程路由错误这样的问题似 <BR>乎不应该由服务器管理员负责,但是用拒绝负责的态度对待你的客户绝对无益于你在他 <BR>们心目中的形象。不过,在这本书里面我们不想讨论如何处理网络硬件问题。我们将会 <BR>讨论如何对网络的运行状态进行监视,并且找出一些常见的问题。 <BR> <BR> 9.6.1 确定网络故障 <BR> <BR> 网络出现问题的最常见情况是网络连接错误。网线断连,路由失效或者拥塞,甚至服 <BR>务器主机已经掉电。我们这一节主要介绍如何判定这种比较简单的网络故障。 <BR> <BR> 在你的网络出现问题的时候,第一步总是对目标地址的ping命令。这个命令调用基本 <BR>的ICMP回应服务来探测对方的机器是否处于活动中。一些其它版本(特别是Solaris)U <BR>NIX的ping命令必须用特殊的参数才能激活输出信息,但是Linux根本不需要。 <BR> <BR> ping命令的格式非常简单:ping [目标地址]。例如,我感到到www.163.com的网络访 <BR>问出奇地缓慢(当然,如果你是个学生或者教师,你不需要我解释也能知道是为什么) <BR>。所以我要看一看问题出在哪里: <BR> <BR> $ping www.163.com <BR> <BR> PING www.163.com (202.106.185.85) from 202.199.248.11 : 56(84) bytes of da <BR>ta. <BR> <BR> 64 bytes from 202.106.185.85: icmp_seq=0 ttl=242 time=750.6 ms <BR> <BR> 64 bytes from 202.106.185.85: icmp_seq=2 ttl=242 time=797.6 ms <BR> <BR> ^C <BR> <BR> --- www.163.com ping statistics --- <BR> <BR> 4 packets transmitted, 2 packets received, 50% packet loss <BR> <BR> round-trip min/avg/max = 750.6/774.1/797.6 ms <BR> <BR> Linux版本的ping命令会不断地重复发送ping命令直到你按下^C组合键。实际上,这个 <BR>简单的ping命令已经显示了很多东西。首先,第一行中在www.163.com的旁边显示了它的 <BR>IP地址(202.106.185.85)。这意味着你的DNS服务器处于正常的工作中。 <BR> <BR> 接下来的行是信息行,我们可以注意到,网络的回应时间平均来说是774ms,这个数值 <BR>显示了网络的速度。另外一个重要的信息是丢包率,现在的丢包率是50%,表明相当一部 <BR>分数据包由于失败而被丢弃了。 <BR> <BR> 由于有50%的数据包得到了返回,说明目标主机在正常工作中。但是丢包率很高,说明 <BR>在数据传递的过程中已经出现了拥塞。 <BR> <BR> 如果ping命令始终得不到回应(丢包率100%),那么说明目标主机已经瘫痪或者到目 <BR>标主机的路由路径存在问题。这时候就需要使用traceroute命令来跟踪路由路径来解决 <BR>问题: <BR> <BR> $traceroute www.163.com <BR> <BR> traceroute: Warning: www.163.com has multiple addresses; using 202.106.185 <BR>.85 <BR> <BR> traceroute to www.163.com (202.106.185.85), 30 hops max, 38 byte packets <BR> <BR> 1 router (202.199.248.1) 0.989 ms 0.857 ms 0.781 ms <BR> <BR> 2 202.112.30.46 (202.112.30.46) 603.304 ms 646.450 ms 1124.455 ms <BR> <BR> …………………… <BR> <BR> 每一行的信息来源于路由路径上的一个路由器。后面的数字是路由器响应请求的时间 <BR>。如果某个路由器在缺省的时间内没有响应请求,它将显示为一个星号。如果某个路由 <BR>器始终显示星号,那么它可能不工作了,或者路由表设置错误使得它无法知道如何对你 <BR>的主机回应请求。后一种情况特别常见,尤其当路由器的管理是一些好奇或者恶作剧的 <BR>学生完成的时候。 <BR> <BR> 通过ping和traceroute可以找到网络中的拥塞点,确定路由层次是否有错误,甚至被 <BR>用来测试网络的线路连接是否有错误。 <BR> <BR> 关于Linux的ping命令我们要说一句题外的话。最常见的一种情况是,如果你在安装网 <BR>卡的时候发生了任何错误,那么可能会出现ping自己的ip一切正常却就是无法和别人通 <BR>信的情况。在这种情况下,你应该研究一下网卡模块是否正确地设置了。根据经验,这 <BR>种情况几乎总是发生在ISA的NE2000兼容网卡被错误地配置在PNP模式的情况。 <BR> <BR> 如果是你的主机出现了问题,你可以首先用ping命令来判断主机是否正常工作,如果 <BR>ping的返回正常,就需要看一看服务进程是否在正确地监听端口了。 <BR> <BR> 原则上,确定服务器进程是否在正确监听的正确方法是利用端口扫描程序。不过在大 <BR>部分情况下,由于端口对话常常是纯粹文本的,所以可以用telnet程序连接上去察看服 <BR>务是否正常,例如,我们用telnet命令来察看httpd程序是否在80端口等待请求: <BR> <BR> $telnet 202.199.240.2 80 <BR> <BR> Trying 202.199.240.2... <BR> <BR> Connected to 202.199.240.2. <BR> <BR> Escape character is '^]'. <BR> <BR> get // <BR> <BR> <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <BR> <BR> <HTML><HEAD> <BR> <BR> <TITLE>501 Method Not Implemented</TITLE> <BR> <BR> </HEAD><BODY> <BR> <BR> <H1>Method Not Implemented</H1> <BR> <BR> get to //index.html not supported.<P> <BR> <BR> Invalid method in request get //<P> <BR> <BR> <HR> <BR> <BR> <ADDRESS>Apache/1.3.4 Server at asiist.edu.cn Port 80</ADDRESS> <BR> <BR> </BODY></HTML> <BR> <BR> Connection closed by foreign host. <BR> <BR> connected to ...和Escape ...行说明在80端口确实有httpd服务程序在监听。为了确 <BR>认程序,我们用get //(非法请求)得到了httpd服务程序的信息。 <BR> <BR> 直接telnet到指定端口的方法是对许多服务进行测试的基本方法,如http,smtp,po <BR>p-3,nntp等等。 <BR> <BR> 9.6.2 对网络进行监视 <BR> <BR> 如果你发现系统性能异乎寻常地降低,那么接下来你需要干什么?系统性能降低或者 <BR>干脆罢工可能由许多原因导致,无论如何,现在你必须启动某种监视程序来判断网络的 <BR>问题所在。 <BR> <BR> 即使你的系统运行正常,使用某种监视程序也是必要的,它可以让你了解你的系统有 <BR>什么潜在的问题。另外,还可以对其它工作提供有益的参考。 <BR> <BR> 最常用的工具是netstat程序,它有很多种功能,最基本的功能是显示当前系统运行的 <BR>网络服务以及客户的请求情况: <BR> <BR> $ netstat <BR> <BR> Active Internet connections (w/o servers) <BR> <BR> Proto Recv-Q Send-Q Local Address Foreign Address State <BR> <BR> tcp 0 0 linux.asnc.edu.cn:pop-3 202.199.248.16:1066 TIME_W <BR>AIT <BR> <BR> tcp 0 4 linux.asnc.edu.c:telnet 202.199.249.2:1146 ESTABL <BR>ISHED <BR> <BR> tcp 0 0 linux.asnc.:netbios-ssn asnt_1.asnc.edu.cn:2092 ESTABL <BR>ISHED <BR> <BR> tcp 0 0 linux.asnc.edu.cn:smtp euler.math.hkbu.ed:1516 TIME_W <BR>AIT <BR> <BR> tcp 0 0 mail.asnc.e:netbios-ssn 202.199.249.2:1029 ESTABL <BR>ISHED <BR> <BR> Active UNIX domain sockets (w/o servers) <BR> <BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -