1.4 常用的系统维护命令


Linux系统支持的命令非常多,但由于篇幅的关系,本书无法介绍所有命令,只说明一些较常使用的命令,以节省读者学习的时间。

1.4.1 网卡设置—ifconfig命令

网卡可说是网络通信中最重要的组件之一,它不仅负责数据的传递,同时亦可确保传输时的安全,因此管理员需要对网卡的设置相当熟练,以应付网络环境的变化。而在设置网卡的配置时,ifconfig可以说是最重要的命令之一,它可用来显示及设置网卡的配置,例如IP地址、子网掩码、IRQ及IO Port等。

显示网卡信息

如果在不加任何参数的情形下,直接执行ifconfig命令将会显示系统目前的网卡信息。包含一张网卡的客户端会出现eth0和loLoopback)两个设备信息,如果用户端正在利用调制解调器进行拨接,则会显示ppp0和lo两个接口。以下是具有一张网卡的客户端配置示例:

[root@ns1 ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:48:40:30
inet addr:192.168.0.118 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe48:4030/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2987 errors:0 dropped:0 overruns:0 frame:0
TX packets:3044 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2886858 (2.7 MiB) TX bytes:403985 (394.5 KiB)
Interrupt:16 Base address:0x1080

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2372 errors:0 dropped:0 overruns:0 frame:0
TX packets:2372 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2463105 (2.3 MiB) TX bytes:2463105 (2.3 MiB)

上述的结果可分为两个部分:eth0和lo,其中包含的项目都很相似。因为很多都是网络中很重要的专有名词,所以本书在此逐一解释每个名词的意义及用法:

ナLink encapLink encapsulate)
用来表示将信息划分为分组的方法,例如Ethernet。
ナHwaddrHardware address)
表示网卡的硬件地址,又称为MACMedia Access Control)地址。它由12个十六进制值组成,以每两个数字为一组,每组之间以:分隔,例如00:0C:29:48:40:30,这个号码是直接烧在网卡芯片上的。
硬件地址中的前3组号码6个数字)表示网卡制造商的代码,所以由同一家厂商生产的网卡前3组号码都会相同,例如D-Link的代码为00:80:C8。而网卡的后3组号码表示网卡的编号,因此世界上每张网卡硬件地址都不同。
ナinet addrinternet address)
表示主机的IP地址,它可能是由手动输入或DHCP服务器自动指定而来。
ナBcastBroadcast)
这是指主机使用的广播地址,如果目的地址为广播地址,则表示此信息可在同一时间传送到同网域中的所有计算机。通常广播地址会以IP地址的类别而定,表1-5是不同类别 IP地址使用的广播地址示例。
表1-5 广播地址示例

IP Class 主机IP示例 广播地址示例

A 24.46.68.80 24.255.255.255
B 128.12.23.34 128.12.255.255
C 200.1.100.100 200.1.100.255
◆MaskNet Mask)

是指主机使用的子网掩码,它主要是用来将IP地址分为Network ID和Host ID两部分。简单来说,将IP地址和子网掩码先转换为二进制数,然后将二者作AND运算0 AND 0 = 0、0 AND 1 = 0、1 AND 0 = 0、1 AND 1 = 1),得到的结果就是Network ID。
通常子网掩码会按照IP地址的类别而定,表1-6是不同类别的IP地址使用的子网掩码示例。
ナMTUMaximum Transmission Unit)
表示网络传输时,分组最大的传输单位,Ethernet的MTU默认值是1500 Bytes。
ナMetric
源主机将信息送到目的主机,所需经过的转发次数,一些路由通信协议,例如RIP,在计算最短路径时,必须参考这一数值。
ナRXReceived)
表示已接收的分组总数、分组流失数量以及冲突数量。
ナTXTransmitted)
表示已传送的分组总数、分组流失数量,以及冲突的数量。
启动与停用网卡
显示网卡信息只是ifconfig命令最基本的功能,除此之外,它还可以用来启动与停用网卡。假设要停用eth0网卡的功能,可以先指定网卡名称,然后再使用down参数,如果希望重新启动网卡,则需使用up参数,以下是一个简单的示例:

[root@ns1 ~]# ifconfig eth0 down
# 停用eth0网卡
[root@ns1 ~]# ifconfig eth0 up
# 启动eth0网卡

设置网卡
ifconfig命令的另一项功能是用来设置网卡,例如IP地址和子网掩码。在以下的示例中,我们将把eth0网卡的IP地址和子网掩码分别修改为192.168.0.50和255.0.0.0:

[root@ns1 ~]# ifconfig eth0 192.168.0.50 netmask 255.0.0.0
[root@ns1 ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:48:40:30
inet addr:192.168.0.50 Bcast:192.168.0.255 Mask:255.0.0.0
inet6 addr: fe80::20c:29ff:fe48:4030/64 Scope:Link
…………

在同一张网卡上添加其他IP地址
目前几乎所有的网卡都支持NDISNetwork Driver Interface Standard)的标准,也就是说,它允许在同一张网卡上使用多个IP地址,这在添加虚拟主机时相当方便。
而Linux在识别同一张网卡上的IP地址时,都是利用冒号:)来指定,举例来说,第一张以太网卡为eth0,而添加IP地址所使用的设备名称就称为eth0:1,以此类推。

[root@ns1 ~]# ifconfig eth0:1 192.168.0.142
[root@ns1 ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:80:C8:6F:7E:FE
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:12486 errors:0 dropped:0 overruns:0 frame:0
TX packets:8393 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:1000548977.0 Kb) TX bytes:59547615.6 Mb)
Interrupt:10 Base address:0x5000

eth0:1 Link encap:Ethernet HWaddr 00:80:C8:6F:7E:FE
inet addr:192.168.0.142 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:10 Base address:0x5000
…………

1.4.2 检测主机连接—ping命令
pingPacket INternet Groper)命令可能是大家都耳熟能详的网络检测工具,不论在Linux或是Windows上都同样支持这个命令,而且大部分的参数都很类似。它主要是用来检测远程的主机是否正常,或是两台主机间的介质是否中断,例如网线脱落或网卡故障等。
其实ping命令运行的原理很简单,它先利用传送ICMP中的ECHO_REQUEST分组到远程网络的主机,然后由响应的信息来判断网络目前的情况。
一般而言,如果很难或是无法连接远程主机时,我们都会尝试利用ping来了解与远程主机间的网络是否拥塞,以下是利用ping命令测试本机与www.yahoo.com间的情形。
另外,因为ping会持续地传送ICMP分组直到以+来中断执行,所以为了避免这个状况,在以下的示例中我们使用-cCounter)参数来设置传送分组的次数以3次为例):

[root@ns1 ~]# ping -c 3 www.yahoo.com
PING www.yahoo.akadns.net (68.142.197.88) 56(84) bytes of data.
64 bytes from p25.www.mud.yahoo.com (68.142.197.88): icmp_seq=1 ttl=48 time=206ms
64 bytes from p25.www.mud.yahoo.com (68.142.197.88): icmp_seq=2 ttl=48 time=204ms
64 bytes from p25.www.mud.yahoo.com (68.142.197.88): icmp_seq=3 ttl=47 time=210ms

--- www.yahoo.akadns.net ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 204.329/207.054/210.168/2.399 ms

由以上的结果,我们可以得知以下的信息:
◆远程主机的IP地址,在上例中为68.142.197.88。
◆ICMP的ECHO_REQUEST分组大小,在上例中为64 Bytes。
◆ICMP的ECHO_REQUEST分组编号,在上例中为icmp_seq=x。
◆TTLTime To Live)时间,在上例中为48 msec。
◆响应时间,在上例中为time=x msec。
◆传送分组的次数,在上例中为3次。
◆传送、接收,以及分组丢失率,在上例中为3 packets transmitted,3 received,0% loss,time 2000ms。
◆最小来回时间/平均来回时间/最大来回时间,在上例中为rtt min/avg/max/mdev = 204.329/207.054/210.168/2.399 ms。
1.4.3 显示分组经过历程——traceroute命令
有时我们觉得与远程网络或主机可以连接,但是连接速度很慢,此时使用ping命令似乎没有作用,因为ping命令只能告诉您“可以”或“不可以”连接,但无法提供连接的速度或品质。
为了解决上述问题,我们需使用另一种常用的网络命令—traceroute,它可以显示分组由本机传送到远程主机的完整路径,并且标示出每一段的连接速度,以帮助管理员了解是否产生网络拥塞的情形。
在一般情形下,可以不需要使用任何参数,直接以traceroute命令加上目的主机名称或IP地址的方式,来显示分组传递时的所有历程,以下是一个简单的示例:

[root@ns1 ~]# traceroute www.hinet.net
traceroute to www.hinet.net168.95.1.88),30 hops max,38 byte packets
1 172.16.11.8172.16.11.8)49.720 ms 51.800 ms 59.373 ms
2 139.175.15.1139.175.15.1)51.206 ms 64.177 ms 46.359 ms
3 R58-201.seed.net.tw139.175.58.201)59.368 ms 60.622 ms 60.229 ms
4 R58-90.seed.net.tw139.175.58.90)59.390 ms 55.093 ms 58.636 ms
5 211.22.41.174211.22.41.174)53.687 ms 57.631 ms 58.556 ms
6 211.22.35.230211.22.35.230)53.657 ms 57.724 ms 60.320 ms
7 168.95.207.97168.95.207.97)58.793 ms 59.470 ms 58.619 ms
8 w3lay4.hinet.net168.95.1.83)59.430 ms 62.363 ms 53.017 ms

由以上的结果,我们可以得知以下的信息:
◆远程主机的IP地址,在上例中为168.95.1.88。
◆允许经过的路由器上限,在上例中为3030 hops max)。
◆传送的测试,在上例中为38 Bytes38 byte packets)。
◆实际经过的路由器,在上例中的每一行都是表示每一个经过的路由器记录。
◆实际经过的路由器数目,在上例中为8共有8行记录)。
◆经过路由器的时间,在上例中的每一条记录中都包含3个以ms为单位的时间,它们就是分组尝试3次经过该路由器的时间。
◆如果显示为*,则表示分组在指定的TTL时间内,无法将分组经过该路由器,也是表示该路由器目前正处于忙碌状态。
由执行traceroute命令得知的结果,用户可清楚地知道分组在传送到远程网络的过程中,每个网络段的拥塞情形,这些数据可以有效判断发生的网络问题。

回书目   上一节   下一节

相关内容