第 4章 Linux网络基础
本章学习目标
本章主要让读者在使用 Internet之前对
Internet有一个大致的了解,以帮助读者对
本书后续章节的学习。通过对本章的学习,
读者应该掌握以下主要内容:
? 什么是 Internet
? Internet的由来和发展历程
? Internet提供的主要服务有哪些
? Internet在企业内部网的应用
? 我国在 Internet网络上的发展状况
4.1 TCP/IP协议
4.1.1 TCP/IP协议概述
现在, 随着 Internet 的迅速发展使得计算机网络的应用已
经开始遍及到我们现实生活的方方面面, 而在 Internet网
络上所使用的协议正是 TCP/IP( Transmission Control
Protocol/Internet Protocol) 协议, 即传输控制协议 /网
际协议,在 20世纪 60年代后期开发出来了用于, 异构, 网
络环境中的 TCP/IP协议 。 也就是说, TCP/IP协议可以在各
种硬件和操作系统上实现, 并且 TCP/IP协议已成为建立计
算机局域网, 广域网的首选协议, 并将随着网络技术的进
步和信息高速公路的发展而不断地完善 。
4.1.2 Internet 网际协议 ( IP)
在 TCP/IP体系中, 网际协议是最主要的协议之一 。
1,IP地址
在 TCP/IP网络中, 每个主机都有唯一的地址, 它是通过 IP
协议来实现的 。 IP协议要求在每次与 TCP/IP网络建立连接
时, 每台主机都必须为这个连接分配一个唯一的 32位地址,
因为在这个 32位 IP地址中, 不但可以用来识别某一台主机,
而且还隐含着网际间的路径信息 。 需要强调指出的, 这里
的主机是指网络上的一个节点, 不能简单地理解为一台计
算机, 实际上 IP地址是分配给计算机的网络适配器 ( 即网
卡 ) 的, 一台计算机可以有多个网络适配器, 就可以有多
个 IP地址, 一个网络适配器就是一个节点 。
IP地址为 32位地址, 一般以 4个字节表示 。 每个字节的数
字又用十进制表示, 即每个字节的数的范围是 0~255,且
每个数字之间用点隔开, 例如,192.168.101.5,这种记录
方法称为, 点 -分, 十进制记号法 。 IP地址的结构如下所示:
网络类型 网络 ID 主机 ID
IP地址的 32位被分成了 3个字段:网络类型字段、网
络 ID字段和主机 ID字段。网络类型字段用于标识网络
的类型,到目前为止网络划分为 A~E五类;网络 ID则
标识该主机所在的网络,由网络类型字段和网络 ID
字段构成网络标识;主机 ID是该主机在网络中的标
识。 IP地址的基本分配原则是要为同一网络内的所
有主机分配相同的网络标识号,同一网络内的不同
主机必须分配不同的主机 ID号,以区分主机,不同
网络内的每台主机必须具有不同的网络标识号,但
是可以具有相同的主机标识号。按照 IP地址的结构
和其分配原则,可以在 Internet上很方便的寻址:先
按 IP地址中的网络标识号找到相应的网络,再在这
个网络上利用主机 ID找到相应的主机。由此可看出 IP
地址并不只是一个计算机的代号,而是指出了某个
网络上的某个计算机。
组建一个网络时, 为了避免该网络所分配的 IP地址与其他
网络上的 IP地址发生冲突, 必须为该网络向 InterNIC
( Internet网络信息中心 ) 组织申请一个网络标识号, 这
也就是整个网络使用一个网络标识号, 然后再给该网络上
的每个主机设置一个唯一的主机号码, 这样网络上的每个
主机都拥有一个唯一的 IP地址 。 另外, 国内用户可以通过
中国互联网络信息中心 ( CNNIC) 来申请 IP地址和域名 。
当然, 如果网络不想与外界通信, 就不必申请网络标识号,
而自行选择一个网络标识号即可, 只是网络内的主机的 IP
地址不可相同 。
2,IP地址的分类
为了充分利用 IP地址空间, Internet委员会定义了五种 IP地
址类型以适合不同容量的网络, 即 A类至 E类, 如图 4-1所
示 。 其中 A,B,C三类由 InterNIC( Internet网络信息信心 )
在全球范围内统一分配, D,E类为特殊地址 。
0 网络地址 ID( 7BIT) 主机地址 ID(24BIT)
0 1 7 8 31
A类 IP地址
10 网络地址 ID( 14BIT) 主机地址 ID(16BIT)
0 1 2 15 16 31
B类 IP地址
110 网络 IP地址( 21BIT) 主机地址 ID( 16BIT)
012 3 23 24 31
C类 IP地址
1110 广播地址 ID( 28BIT)
0123 4 31
D类 IP地址
11110 保留用于将来和试验使用
01234 5 31
E类地址
( 1) A类地址 。
从图 4-1( a) 中可以看出, 在 A类地址中, 用第一个字节
来表示网络类型和网络标识号, 后面三个字节用来表示主
机号码, 其中第一个字节的最高位设为 0,用来与其他 IP地
址类型区分 。 第一个字节剩余的 7位用来表示网络地址, 最
多可提供 27-2=126个网络标识号;这种 IP地址的后 3个字节
用来表示主机, 每个网络最多可提供大约 1678万 ( 224-2)
个主机地址 。 这类地址网络支持的主机数量非常大, 只有
大型网络才需要 A类地址, 由于 Internet发展的历史原因,
A类地址早已被分配完毕 。
( 2) B类地址 。
从图 4-1( b) 中可以看出, 在 B类地址中, 用前两个字节
来表示网络类型和网络标识号, 后面两个字节标识主机号
码, 其中第一个字节的最高两位设为 10,用来与其他 IP地
址区分开, 第一个字节剩余的 6位和第二个字节 ( 共 14位 )
用来表示网络地址, 最多可提供 214-2=16,384个网络标识
号 。 这种 IP地址的后 2个字节用来表示主机号码, 每个网络
最多可提供大约 65,534( 216-2) 个主机地址 。 这类地址网
络支持的主机数量较大, 适用于中型网络, 通常将此类地
址分配给规模较大的单位 。
( 3) C类地址 。
从图 4-1( c) 中可以看出, 在 C类地址中, 用前 3个字节来
表示网络类型和网络标识号, 最后一个字节用来表示主机
号码, 其中第一个字节的最高位设为 110用来与其他 IP地
址区分开, 第一个字节剩余的 5位和后面两个字节 ( 共 21
位 ) 用来表示网络地址, 最多可提供约 200万 ( 221-2) 个
网络标识号 。 最后 1个字节用来表示主机号码, 每个网络
最多可提供 254( 28-2) 个主机地址 。 这类地址网络支持
的主机数量较少, 适用于小型网络, 通常将此类地址分配
给规模较小的单位, 如公司, 院校等单位 。
D类地址是多播地址, 主要是留给 Internet体系结构委员会
IAB( Internet Architecture Board) 使用 。 E类地址保留在
今后使用 。 目前大量使用的 IP地址仅有 A,B和 C类三种 IP
地址 。
例如:一个 IP地址为 130.12.4.34,其用二进制表示为
10000010 00001100 00000100 00100010,把其与图 4-1相比较
可以看出,此 IP地址属于 B类网络,其网络 ID号为 0000010
00001100B,即 524,主机号为 00000100 00100010,即为 1058。
( 4) 特殊的 IP地址 。
① 如果网络 ID为 127,主机地址任意, 这种地址是用来
做循环测试用的, 不可用作其他用途 。 例如, 127.0.0.1
是用来将消息传给自己的 。
② 在 IP地址中, 如果某一类网络的主机地址为全 1,则
该 IP地址表示是一个网络或子网的广播地址 。 例如,
192.168.101.255,分析可知它是 C类网络地址, 其主机
地址为最后一个字节, 即 255,二进制为 11111111B,表
示将信息发送给该网络上的每个主机 。
③ 在 IP地址中, 如果某一类网络的主机地址为全 0,则
该 IP 地址表示为网络地址或子网地址 。 例如,
192.168.101.0,分析可知它是 C类网络地址, 其主机地
址为最后一个字节即 0,二进制为 00000000B,表示一
个网络地址 。
说明,正是由于地址不允许全 0( 表示网络或子网地址 ) 或
全 1( 表示广播地址 ), 所以其网络数目和主机数目都要减 2。
例如, C类网络只能支持 28-2=254个主机地址 。
另外, 如果要使网络直接连入 Internet,应使用由 InterNIC分
配的合法 IP地址 。 如果通过代理服务器连入 Internet,也不应
随便选择 IP地址, 应使用由 IANA( 因特网地址分配管理局 )
保留的私有 IP地址, 以避免与 Internet上合法的 IP地址相冲突 。
这些私有地址的范围是:
l 10.0.0.1 ~ 10.255.255.254 ( A类 ) ;
l 172.13.0.1 ~ 172.32.255.254 ( B类 ) ;
l 192.168.0.1 ~ 192.168.255.254 ( C类 ) 。
综合来看, IP地址具有以下一些重要特点:
① IP地址是一种非等级的地址结构 。 这就是说, 和电话
号的结构不一样, IP地址不能反映有关主机位置的地理信
息 。
② 当一个主机同时连接到两个网络上时 ( 作路由器用的
主机即为这种情况 ), 该主机就必须同时具有两个相应的
IP地址, 其网络号是不同的 。 这种主机称为多地址主机 。
③ 按照 Internet的观点, 用转发器或网桥连接起来的若干
个局域网仍为一个网络, 因此这些局域网都具有同样的网
络号码 。
④ 在 IP地址中, 所有分配到网络号的网络都是平等的 。
3,子网及子网掩码
( 1) 子网 。
子网是指在一个 IP地址上生成的逻辑网络,它使用源于单
个 IP地址的 IP寻址方案,把一个网络分成多个子网,要求
每个子网使用不同的网络 ID,通过把主机号(主机 ID)分
成两个部分,为每个子网生成唯一的网络 ID。一部分用于
标识作为唯一网络的子网,另一部分用于标识子网中的主
机,这样原来的 IP地址结构变成如下三层结构:
网络地址部分 子网地址部分 主机地址部分
( 2) 子网掩码 。
子网掩码是一个 32位地址, 它用于屏蔽 IP地址的一部分以
区别网络 ID和主机 ID;用来将网络分割为多个子网;判断
目的主机的 IP地址是在本局域网或是在远程网 。 在 TCP/IP
网络上的每一个主机都要求有子网掩码 。 这样当 TCP/IP网
络上的主机相互通信时, 就可用子网掩码来判断这些主机
是否在相同的网络段内 。
如表 4-2所示为各类 IP地址所默认的子网掩码 。 其中值为 1
的位用来定出网络的 ID号, 值为 0的位用来定出主机 ID。
例如, 如果某台主机的 IP地址为 192.168.101.5,通过分析
可 以 看 出 它 属 于 C 类 网 络, 所 以 其 子 网 掩 码 为
255.255.255.0,则将这两个数据作逻辑与 ( AND) 运算
后结果为 192.168.101.0,所得出的值中非 0位的字节即为
该网络的 ID。 默认子网掩码用于不分子网的 TCP/IP网络 。
类 子网掩码 子网掩码的二进制表示
A 255.0.0.0 11111111.00000000.0
0000000.00000000
B 255.255.0.0 11111111.11111111.00
000000.00000000
C 255.255.255.0 11111111.11111111.111
11111.00000000
具体的运算步骤如下:
例如,192.168.101.5的二进制表示为 11000000 10101000
01100101 00000101B;子网掩码为 255.255.255.0,其二进
制值为 11111111 11111111 11111111 00000000, 则当
192.168.101.5和 255.255.255.0进行逻辑与运算
11000000 10101000 01100101 00000000
11111111 11111111 11111111 11111111
11000000 10101000 01100101 0000000
后, 所得出结果为 11000000 10101000 01100101 00000000,
其中非 0的三个字节, 即 192.168.101为该网络 ID,剩余的字
节 ( 即 5 ) 为 主机 ID 。 若 该网络 的另 一台的 IP地 址为
192.168.101.250,子网掩码也为 255.255.255.0,则同样会
得到网络 ID为 192.168.101,因此这两台主机在同一网段内 。
子网掩码的另一个用途就是可将网络分割为多个以 IP路由连
接的子网 。 如果某单位仅申请了一个网络 ID号, 但其网络规
模较大, 需要按照部门划分出多个子网段, 此时可以借助子
网掩码来实现需求 。 从 IP地址的三层结构可以看出, 用于子
网掩码的位数决定可能的子网数目和每个子网内的主机数目 。
在定义子网掩码之前, 必须弄清楚网络中使用的子网数目和
主机数目, 这有助于今后当网络主机数目增加后, 重新分配
IP地址的时间, 子网掩码中如果设置的位数使得子网越多,
则对应的其网段内的主机就越少 。
4,IP路由
路由是数据从一个节点传输到另一个节点的过程 。 例如, 要
出发到某地, 一般先确定到达目的地的路线 。 在 TCP/IP网络
中, 同一网络区段中的计算机可以直接通信, 不同网络区段
中的计算机要相互通信, 则必须借助于 IP路由 。
在网络中要实现 IP路由必须使用路由器, 而路由器可以是
专门的硬件设备, 如 Cisco公司的路由器等;若没有专用
的路由设备, 也可以将某台计算机设置为路由器 。 不论用
何种方式实现, 路由器都是靠路由表来确定数据报的流向
的, IP路由表实际上是相互邻接的网络 IP地址的列表, 当
一个节点接收到一个数据报时, 便查询路由表, 判断目的
地址是否在路由表中, 如果是, 则直接送给该网络, 否则
转发给其他网络, 直到最后到达目的地 。
在 TCP/IP网络中, IP路由器又叫 IP网关 。 每一个节点都有
自己的网关 。 IP报头指定的目的地址不在同一网络区段中,
就会将数据报传送给该节点的网关, 如果网关知道数据报
的去向, 就将其转发到目的地 。 每一网关都有一组定义好
的路由表, 指明网关到特定目的地的路由 。 网关不可能知
道每一个 IP地址的位置, 因此网关也有自己的网关, 通过
不断转发, 寻找路径, 直到数据报到达目的地为止 。
如图 4-2所示, 通过设置为路由器的计算机 X来实现了两
个网段 202.204.58与 202.204.60( 它们的子网掩码为
255.255.255.0) 的互联 。 这两个网段的计算机可以互相
发送与接受信息 。
一般的, 作为路由器的计算机中都安装有两块网卡, 这
两块网卡的 IP分别是要路由的两个网段中的一个 IP地址,
这样该计算机就好比一座桥梁一样用来连接两个不同的
网段, 完成路由的功能 。
4.1.3 下一代的网际协议 IPv6
现在看来,当初 IP地址的设计确实有不够合理的地方。
1995年以后陆续公布了一系列有关 IPv6的协议、编址方法、
路由选择以及安全等问题的 RFC文档。 IPv6主要在以下几
个方面进行扩充和改进:
( 1) IPv6把原来 IPv4地址增大到了 128bit,其地址
空间大于 3.4× 1038,是原来 IPv4地址空间的 296倍。
( 2)这种下一代的 IP协议并不是完全抛弃了原来
的 IPv4,且允许与 IPv4在若干年内共存。它使用一系列固
定格式的扩展首部取代了 IPv4中可变长度的选项字段。
( 3) IPv6对 IP数据报协议单元的头部与原来的
IPv4相比进行了相应的简化,仅包含 7个字段( IPv4有 13
个),这样,数据报文经过中间的各个路由器时,各个路
由器对其处理的速度加快,提高了网络吞吐率。
4) IPv6另一个主要的改善方面是在它的安全方面 。
在许多报纸和文章都看见过某某军事机构网络被黑客入侵,
某某银行的钱款被人划进某人自己的账户等等, 所以 IPv6
从一开始就致力于提高网络的安全性, 身份验证和隐私权
是新 IP的关键特性 。
一般来讲, 一个 IPv6数据报的目的地址可以是以下三种基
本类型地址之一:单播地址, 多播地址和任播地址 。 单播
地址是传统的点对点通信 。 多播地址是一个站点在发送数
据时, 属于同一个工作组的每一个计算机都能接收 。 在
IPv4中采用的广播一词 IPv6没有采用, 而是将广播地址看
作多播地址的一个特例 。 任意播送的目的地址是一个工作
组地址, 但它并不是将数据报发送给该工作组的每一成员,
而是将数据报在交付时只交付给其中的一个, 通常是距离
最近的一个 。
IPv6将实现 IPv6的主机和路由器均称为结点, 并将 IPv6
地址分配给结点上面的接口 。 一个接口可以有多个单播
地址 。 一个结点接口的单播地址可用来唯一地标识该结
点 。
如同 IPv4一样,IPv6把一个地址与特定的网络连接(而不
是与特定的计算机)相关联,因此一个 IPv6路由器由于和
两个或多个网络相连接因而具有两个或多个地址。为了
地址分配和修改的方便,IPv6允许给一个给定的网络指派
多个前缀,也允许对一个主机的给定接口同时指派多个
地址。 IPv6用“冒号十六进制”记法,它把每个 16比特
的量用十六进制值表示,各量之间用冒号分隔。例如,
如果前面所给的点分十进制数记法的值改为冒号十六进
制记法,就变成了
FFFE:000C:0000:0000:0C00:0000:0000:000C
另外, IPv6还允许对这种冒号十六进制的地址记法进行压
缩:
( 1) 一组中的前导零可以忽略不写 。 例如上面这个 IPv6地
址中的第二组 000C可以直接写成 C,则该地址可压缩为:
FFFE:C:0:0:C00:0:0:C。
( 2)冒号十六进制记法还可以允许零压缩,即一串连续的
零可以为一对冒号所取代,为了保证零压缩有一个不含混
的解释,建议中还规定,在任一地址中,只能使用一次 零
压缩。该技术对已建议的分配策略特别有用,因为会有许
多地址包含连续的零串。例如:上面这个 IPv6地址可压缩

FFFE:C::C00:0:0:C。
其次, 冒号十六进制记法结合有点分十进制记法的后缀,
这种结合在 IPv4向 IPv6的转换阶段特别有用 。 例如, 下面
的串是一个合法的冒号十六进制记法:
0:0:0:0:0:0:192.168.101.5
请注意, 在这种记法中, 虽然为冒号所分隔的每个值是一
个 16比特的量, 但每个点分十进制部分的值则指明一个字
节的值 。 再使用零压缩即可得出:
::192.168.101.5
4.1.4 Internet的域名管理
1,概述
2,DNS域名结构
DNS数据库的结构如同一棵倒过来的树, 它的根位于最顶
部, 紧接着在根的下面是一些主域, 每个主域又进一步划
分为不同的子域 。 由于 InterNIC负责管理世界范围的 IP地
址分配, 顺理成章, 它也就管理着整个域结构, 整个
Internet的域名服务都是由 DNS来实现的, 与文件系统的
结构类似, 每个域都可以用相对的或绝对的名称来标识,
相对于父域来表示一个域可以用相对域名, 绝对域名指完
整的域名, 主机名指为每台主机指定的主机名称, 带有域
名的主机名叫全称域名 。
如图 4-14所示, 这是整个 Internet的域结构图 。 最高层次是
顶级域又叫主域, 它的下面是子域, 子域下面可以有主机,
也可以再分子域, 直到最后是主机 。 要在整个 Internet来识
别特定的主机, 必须用全称域名, 例如,
www.microsoft.com。
顶级域名常见的有两类:
( 1) 国家级顶级域名 。 例如,CN表示中国; UK表示英国;
AU表示澳大利亚等等 。
( 2) 通用的顶级域名 。 例如:
l COM:商业机构;
l EDU:美国教育机构;
l NET:网络管理机构;
l ORG:社会团体;
l MIL:美国军队部门;
由于 Internet上用户的急剧增加, 现在又增加了七个通用
的顶级域名, 即:
l FIRM:表示公司企业;
l SHOP:表示销售公司和企业;
l WEB:表示突出万维网络活动的单位;
l ARTS:表示突出文化, 娱乐活动的单位;
l REC:表示突出消遣, 娱乐活动的单位;
l INFO:表示提供信息服务的单位;
l NOW:表示个人 。
在国家顶级域名下注册的二级域名均由该国家自行确定 。 我
们国家将二级域名划分为, 类别域名, 和, 行政区域名, 两
大类 。 其中, 类别域名 6个, 分别是,
l AC:表示科研机构;
l COM:表示工, 商, 金融等企业;
l EDU:表示教育机构;
l GOV:表示政府部门;
l NET:表示互联网络, 接入网络的信息中心和运行中
心;
l ORG:表示各种非赢利性组织 。
行政区域名 34个, 适用于我国的省, 自治区, 直辖市 。 例如:
bj为北京市; sh为上海市; hb为湖北省等等 。
4.1.5 Linux的网络配置
在 Red Hat Linux 9中提供了一个图形界面的网络配置工具 。
使用该配置工具, 可以配置各种网络连接 。 下面使用该工
具来对一个 Linux系统进行网络配置, 配置的主要参数如下:
网络 IP地址,211.85.203.22
子网掩码,255.255.255.0
默认网关,211.85.203.254
DNS服务器地址,211.85.192.8
1) 启动 redhat-config-network管理工具, 方法有以下两
种:
? 依次单击面板上的, 主菜单 → 系统设置 → 网络,,
可打开如图 4-3对话框 。
? 在终端的提示符下输入, redhat-config-network‖命
令, 可打开如图 4-3对话框 。
从图 4-3中可看出, Linux系统在安装过程中已经自动识别
出一个网络适配器 ( 或叫网卡 ), 但此网卡由于没有进行
配置, 所以其目前的状态是不活跃状态, 即还没有被激活 。
( 2) 在图 4-3中, 双击需要激活的网卡记录 。 在本例中双
击, eth0‖,打开图 4-4所示的对话框, 在该对话框中进行
常规网络配置 。
从图 4-4中可看出, 在该对话框中可由两种方法对 IP地址
进行设置:一种是通过, 自动获取 IP地址使用, 来获得 IP
地址, 但这种方式的前提是必须在本机所在的局域网中拥
有 DHCP服务器;第二种是手工配置 IP地址 。 在本例中采
用第二种方法, 手工配置 IP地址 。
( 3) 在图 4-4中, 选中, 静态设置 IP地址, 单选按钮, 并
在该单选按钮下面的文本框中输入相应的网络参数值, 如
图 4-5所示 。
( 4) 当网络参数值输入完毕后, 单击, 确定, 按钮,
返回到图 4-3。 在图 4-3所示的对话框中, 选择 DNS选
项卡, 打开如图 4-6所示的对话框 。
( 5 ) 在图 4-6 中, 输 入 本 机 的 主 机 名,
,lbliubing.com‖; DNS( IP地址 ),, 211.85.192.8‖
后, 单击, 设备, 选项卡, 返回到图 4 -3中 。
图 4—6
( 6) 此时, 在图 4-3的对话框中, 单击工具条上的, 激活, 按
钮, 系统会弹出一个问题对话框, 如图 4-7所示 。
4—7
( 7) 在图 4-7的对话框中, 单击, 是, 按钮, 此时会弹
出一个修改信息正确的对话框, 如图 4 -8所示 。
( 8) 单击图 4-8中的, 确定, 按钮, 出现如图 4-9所示 。
此时从图中可看到, eth0的状态已处于激活状态, 如果
想让网卡起作用, 最好重新启动 Linux系统 。
图 4-9 激活网卡
4.2 Linux网络配置的常用命令
4.2.1 hostname
每个系统都应该有一个名字, 这个名字通常在系统安装时
确定, 可以使用 hostname命令来获得当前系统的名字 。
同样设置计算机的名字也可以使用 hostname命令, 但这
需要 root权限:
# hostname lb.whpu.edu.cn
# hostname
lb.whpu.edu.cn
这个配置必须写入启动文件, 以便每一次系统启动都能正
确完成设置 。 因此, 就需要在 rc.conf中改动或添加相关设
置 。
hostname=―lb.whpu.edu.cn‖
一些情况下,这种改动方式会产生一些无伤大雅的小问题
4.2.2 ifconfig
ifconfig命令用到的执行参数可以没有, 也可有一个网络接
口的名字, 一个 IP地址以及其他参数选项 。 ifconfig命令会
把一个 IP地址分配给一个网络接口, 然后, 用户的系统就
会知道存在着这样一个网络接口, 还会知道它对应着某个
特定的 IP地址 。 此外, 用户还可以定义 IP地址到底是一个
主机的地址还是一个网络的地址 。 用户还可以使用此 IP地
址对应的域名, 当然该域名及其 IP地址要出现在 /etc/hosts
文件的清单里 。 ifconfig命令单独使用时显示当前系统中活
动的网卡设置, 其在终端上的响应如图 4-10所示 。
4-10
在图 4-10中, 命令响应的以 eth0为首的第一行是本机的
以太网卡配置参数, 这里显示了网卡的设备名和硬件的
MAC地址 00:00:E8:7D:FB:51( MAC地址是由生产厂家
指定的, 每个网卡拥有的唯一地址, MAC地址是一个 48
位地址, 图中是以 16进制表示的 ) 。
第二行显示本机的 IP地址信息, 分别是本机的 IP地址, 网
络广播地址和子网掩码 。 必须确认这些信息都是正确无
误的, 否则 Linux服务器无法与其它网络设备建立连接 。
第三行显示的是设备的网络状态。 MTU(最大传输单元)
和 Metric(度量值)字段显示的是该接口当前的 MTU和度
量值的值。
后面几行是用来显示接口通信的网络统计值。 RX和 TX分
别表示接收和传送的数据包。如果网卡已经完成配置却
还是无法与其它设备通信,那么从 RX和 TX的显示数据上
可以简单地分析一下故障原因。
在图 4-10中, 还有一个以 lo为首的部分 。 lo是 look-back网
络接口, 从 IP地址 127.0.0.1就可以看出, 它代表, 本机, 。
无论系统是否接入网络, 这个设备总是存在的, 除非你在
内核编译的时候禁止了网络支持, 这是一个称为回送设备
的特殊设备, 它自动由 Linux配置以提供网络的自身连接 。
IP地址 127.0.0.1是一个特殊的回送地址 ( 即默认的本机地
址 ), 可以在系统上用 telnet对 IP地址 127.0.0.1进行测试 。
如果有 inetd进程在运行的话会从机器上获得登录提示符 。
Linux可以利用这个特征在进程与仿真网络之间进行通信 。
如果只是关心某个设备是否正常, 可以在 ifconfig后面加上
接口名字, 如下面命令,( 其在终端上的响应如图 4-11所
示 )
# ifconfig eth0
图 4-11 查看某个网络设备
图 4-12 修改 IP地址
如果要暂停某个网络接口的工作, 使用 down参数将取消
eth0网络接口, 命令如下:
ifconfig eth0 down
如果使用了带有参数的 ifconfig命令, 那就可以手动设置
网卡的配置参数了 。 有效的 ifconfig命令参数及其意义为:
? Interface 网络设备名, 如 eth0就表示本机的第一块网卡 。
? up:标志接口处于, up‖状态, 也就是说, IP层可以对其进行访
问 。 这个选项用于命令行上给出一个地址之时 。 如果这个接口已被
,down‖选项临时性取消的话 ( 与该选项对应的标记是 UP RUNNING),
还可以用于重新启用一个接口 。
? down:标标志接口处于, down‖状态, 也就是说, IP层不能对
其进行访问 。 这个选项有效地禁止了 IP通信流通这个接口 。 注意, 它并
没有自动删除利用该接口的所有路由信息 。 如果永久性地取消了一个接
口, 就应该删除这些路由条目, 并在可能的情况下, 提供备用路由 。
netmask:分配子网掩码, 供接口所用 。 要么给一个前面是 0x的 32
位十六进制号码, 要么采用只适用于两台主机所用的点分四段式号码 。
对 SLIP和 PLIP接口来说, 这个选项是必须配置的 。
? address:设置指定接口设备的 IP地址 。
? broadcast address 广播地址通常源于网络编号, 通过设置主
机部分的所有位得来 。 有的 I P采用的方案有所不同:这个选项可适
用于某些奇怪的环境 ( 如果已经设置了广播地址, ifconfig就会显示
出一个 BROADCAST标记 ) 。
? hw class addr,设置指定接口设备的 MAC地址, 关键字的后
面必须跟硬件名或者与之等价的 ASCII码 。 目前支持的硬件类有 ether,
ax25,ARCnet和 netrom。
? mtu bytes 该选项用于设置最大传输单元, 也就是接口一次能
处理的最大字节数 。 对以太网接口来说, MTU的默认设置是 1500 个
字节;对 SLIP接口来说, 则是 296个字节 。
? arp 标这个选项专用于以太网或包广播之类的广播网络 。 它
启用 ARP( 地址解析协议 ) 来保护网络上各台主机的物理地址 。 对广
播网来说, 默认设置是 " on"( 开 ) 。
4.2.3 ifup和 ifdown
ifup命令用于启动指定的非活动网卡设备, 该命令与
ifconfig up命令相似 。 Ifdown命令用于停止指定的活动网卡
设备, 该命令与 ifconfig down命令功能相似 。 这两个命令
的格式如下:
ifup 网卡设备名
ifdown 网卡设备名
这两个命令在终端上的使用及响应结果如图 4-13所示 。
图 4-13 ifup和 ifdown命令的使用
4.2.4 route
传输过程中的一个数据包会经过一个 ‘ 路由, 到达目的地 。
在一个大型的网络中, 数据包从一个计算机传输到另一个
计算机, 直到它们到达目标计算机为止, 路由决定着这个
过程从哪里开始, 也决定着为了到达目的地, 用户的系统
最先需要向哪台计算机传输数据包 。 在小型网络中, 路由
可能是静态的 ——也就是说从一个系统到另外一个系统的
路由是固定不变的, 一个系统知道如何才能经过固定的路
径到达另外一个 。 而在大型网络或者因特网中, 路由的安
排是动态的 。 用户的系统知道应该把数据包第一个发送给
哪台计算机, 那台计算机收到数据包后, 再把它传递给下
一台计算机, 再由它决定如何继续下去, 直到到达目的地
为止 。 对动态路由来说, 需要用户系统了解的东西是很少
的 。 而静态路由却下一样, 因为用户必须记录所有网络连
接的通断情况, 其路由安排可能会变得很复杂 。 用户的
路由列在 /proc/net/route文件里保存的路由分配表里 。 如果
想看到路由表, 请输入不带任何参数选项的 route命令, 其
在终端上的响应结果如图 4-14所示 。
图 4-14 不带任何参数选项的 route命令
在图 4-14中输出结果中各个字段的含义是:
? Destination:表示路由的目标 IP地址 。
? Gateway:表示网关使用的主机名或者是 IP地址 。 上面输出的, *”
表示没有网关 。
? Genmask:表示路由的网络掩码 。 内核将数据包的 IP地址和
Genmask按位进行, 与, 操作, 得到的地址与路由的目标地址进行比
较, 如果相同则采用相应的 路由 。
? Flags是表示路由的标志 。 可用的标志及其意义是,U表示路由在启
动, H表示 target是一台主机, G表示使用网关, R表示对动态路由进行
复位设置; D表示动态安装路由, M表示修改路由, ! 表示拒绝路由 。
? Metric表示路由的单位开销量 。
? Ref表示依赖本路由现状的其它路由数目 。
? Use表示路由表条目被使用的数目 。
? Iface表示路由所发送的包的目的网络 。
在路由表里至少要有一个为回馈接口准备的设置项 。 如果
没有, 用户就必须使用 route命令为回馈接口安排一个路由 。
一个接口必须在它的 IP地址被添加到路由表之后才能提供
给人们使用 。 添加地址的操作可以用 route命令和它的 add
参数完成, 其命令格式如下所示:
route add –net 网络地址 netmask 子网掩码 dev 网卡设备名
下面的例子把回馈接口的 IP地址添加到路由表里去:
route add 127.0.0.1
通过 route命令还可进行添加或删除系统当前路由表中的默
认网关记录, 添加和删除的命令格式如下:
route add default gw 网关 IP地址 dev 网卡设备名
route del default gw 网关 IP地址
在图 4-16中显示了增加和删除当前路由表中默认网关记录的操作及响
应过程 。
图 4-16 增加和删除当前路由表中默认网关记录
4.2.5 ping
ping命令是最常用的网络测试命令, 该命令通过向被测试
的目的主机地址发送 ICMP报文并收取回应报文, 来测试
当前主机到目的主机的网络连接状态 。 在 Linux系统中,
ping命令默认会不间断地发送 ICMP报文直到用户使用
,Ctr+C‖键来终止该命令, 使用, -c‖参数可指定发送
ICMP报文的数目 。 该命令的格式如下,
ping [-c 发出报文数 ] 目的主机地址
在图 4-17中,是运行 ping命令的使用及响应过程。从图中
可看出,运行 ping命令后会在几秒钟内回显域名所对应的 IP
地址,这是用户察看一域名对应的 IP地址的一种方法。时间
分别为最小、平均值、最大值,通过他们可以了解到网络
不同时间传输的差异。
需要说明的就是关于网络安全问题的所谓 ping flood,洪水
发送 。 Ping命令消耗网络带宽并占用系统资源, 当向一个
网络发 ping flood包, 必然会导致服务器服务拒绝, 采取一
定措施的除外 。 现在很多的服务器都安装防火墙, 可以防
止这样的 ICMP攻击 。
4.2.6 traceroute
traceroute命令就是跟踪本地和远程两台主机间的 UDP路由数
据报。其语法很简单,使用命令格式
traceroute IP地址
traceroute是通过设置待发送分组的存活时间 (time to
live,TTL)来工作的 。 TTL减为零时, 最后的网关就会给源
主机发送一个 ICMP(internet control message protocol)出
错消息 。 所以它的原理就是先发送一个 TTL为 1的数据报,
第一个路由器将 TTL值减 1,发现 TTL变为零, 将该数据报
丢弃, 并发送给源主机一个 ICMP报文 。 这样, 源主机就
得到了从源主机到目的主机的第一个路由器的地址 。 同样
源主机再发送 TTL为 2的数据报 ……, 这样源主机每发送三
个 UDP报文, TTL值增 1。 最后, 对目的主机可选择一个
不可能的值 ( 33434) 作为 UDP端口值, 这样在数据报到
达时, 目标主机会发送一个, ICMP端口不可达, 的消息,
表示到达目标主机, 并终止 traceroute跟踪 。
4.2.5 netstat
netstat命令用来显示各种各样的与网络相关的状态信
息, 它的主要用途有:察看网络的连接状态 ( 仅对
TCP有效, 对 UDP无效 ), 检查接口的配置信息, 检
查路由表, 取得统计信息 。 不带参数时表示显示获得
的 TCP,UDP端口状态, 因为 UDP为无连接的协议,
所 以 状 态 对 其 无 意 义 。 常 见 的 状 态 有,
ESTABLISHED,LISTENING,TIME-WAIT,分别表
示处于连接状态, 等待连接, 关闭连接 。 netstat程序
有几个参数选项, 用户可以用来查看网络上不同方面
的信息, 其参数说明如下:
? -a:选项为显示所有配置的接口
? -i:选项为显示接口统计信息
? -n:选项为以数字形式显示 IP地址
? -r:选项显示内核路由表
? -s,选项表示计数器的值 。
4.2.6 nslookup
nslookup是一条查询 DNS数据库的用户级命令 。 所谓的域
名系统 ( DNS,Domain Name System) 就是一个分布式
的数据库, 用于处理了整个 Internet上的域名与 IP地址的映
射 。 数据信息在网络中, 需要底层的协议根据其 IP地址来
传送 。
nslookup可以向服务器直接查询信息,一般情况下均使用交
互模式。此时会出现提示符, >,, nslookup提供了许多可
用命令。下面列举其中一些常用的详细说明。
? help命令:显示帮助信息,及一些简单的命令的作
用。
? exit 命令:退出 nslookup命令。
? lserver命令:查找指定的域名服务器并将其设置
为 默认的域名服务器。
? server命令:和 lserver相似,解析另一台域名服
务 器并将其设置为默认的服务器,不同在于本命令使
用当前的默认服务器来解析。
? set命令:修改工作参数,它也是 nslookup中最常
用 的命令,其可使用的工作参数如表 4-1所示。
表 4-1 nslookup程序的 set命令中的工作参数
工作参数 说 明
set class 设置查询的类型,一般情况下为 Internet。
set de bug 设置调试模式 /set nodebug:设置为非调试模式
set d2 设置详细调试模式。 /set nod2:设置为非详细
调试模式。
set [no]defname 设置为 defname,会在所有没有加, o―的名字
后 自动加上默认的域名。它是默认的方式。
set domain 设置默认的域名。
set port DNS的默认端口为 53,用本命令可以设置其
他端口,一般用于调试。
set q(querytype) 改变查询的信息的类型。默认的类型为 A纪录
set recurse 设置查询类型为递归;
set retry 设置重试的次数。默认的值为 4。
set root 设置默认的根服务器。
set timeout 设置等待应答的限制时间(单位为秒),超
出即为超时,如果还可以重试,就会将长超
时值加倍,重新查询。默认的超时值为 5秒。
图 4-20 nslookup的使用方法
在图 4-20中显示了使用 nslookup命令的使用方法 。 在该图
中, 首先输入待查询的域名, www.whpu.edu.cn‖,然后输
入待查询的 IP地址, 211.85.192.1‖,最后使用 exit命令退出
nslookup命令环境 。
图 4-21 nslookup命令可直接带域名或 IP地址
4.2.9 tcpdump
tcpdump命令用于监视 TCP/IP连接并直接读取数据链路层的
数据包的头部信息 。 用户可以指定哪些数据包被监视, 哪些
控制要显示格式 。 例如要监视所有 Ethernet上来往的通信,
执行下述命令:
# tcpdump -i eth0
实际上, tcpdump命令的格式为:
tcpdump [ -选项 ] [ -c 数量 ] [ -F 文件名 ][ -i 网络接口 ] [ -r 文件名 ] [ -s
snaplen ]
[ -T 类型 ] [ -w 文件名 ] [表达式 ]
tcpdump命令中的选项参数说明如表 4-2所示。 Tcpdump命令中的表达
式是一个正则表达式,tcpdump利用它作为过滤报文的条件,如果一个
报文满足表达式的条件,则这个报文将会被捕获。如果没有给出任何条
件,则网络上所有的信息包将会被截获。
表 4-2 tcpdump命令的选项介绍
参数选项 说 明
-a 将网络地址和广播地址转变成名字;
-d 将匹配信息包的代码以人们能够理解的汇编格式给出;
-dd 将匹配信息包的代码以 c语言程序段的格式给出;
-ddd 将匹配信息包的代码以十进制的形式给出;
-e 在输出行打印出数据链路层的头部信息;
-f 将外部的 Internet地址以数字的形式打印出来;
-l 使标准输出变为缓冲行形式;
-n 不把网络地址转换成名字;
-t 在输出的每一行不打印时间戳;
-v 输出一个稍微详细的信息,例如在 ip包中可以包括 ttl和服务类型的信息;
-vv 输出详细的报文信息;
-c 在收到指定的包的数目后,tcpdump就会停止;
-F 从指定的文件中读取表达式,忽略其它的表达式;
-I 指定监听的网络接口;
-r 从指定的文件中读取包 (这些包一般通过 -w选项产生 );
- w 直接将包写入文件中,并不分析和打印出来;
-T 将监听到的包直接解释为指定的类型的报文,常见的类型有 rpc (远程过程调
用)和 snmp(简单网络管理协议;)
下面我们介绍几种典型的 tcpdump命令的输出信息
( 1) 数据链路层头信息
# tcpdump --e host ice
ice 是一台装有 linux的主机, 其 MAC地址是 0,90,27:
58,AF,1A,H219是一台装有 SOLARIS的 SUN工作站,
它的 MAC地址是 8,0,20,79,5B,46;上一条命令的
输出结果如下所示:
21:50:12.847509 eth0 < 8:0:20:79:5b:46 0:90:27:58:af:1a
ip 60,h219.33357 > ice.
telnet 0:0(0) ack 22535 win 8760 (DF)
( 2) ARP包的 TCPDUMP输出信息
使用命令
#tcpdump arp
得到的输出结果是:
22:32:42.802509 eth0 > arp who-has route tell ice
(0:90:27:58:af:1a)
22:32:42.802902 eth0 < arp reply route is-at
0:90:27:12:10:66 (0:90:27:58:af:1a)
( 3) TCP包的输出信息
用 TCPDUMP捕获的 TCP包的一般输出信息是:
src > dst,flags data-seqno ack window urgent options
( 4) UDP包的输出信息
用 TCPDUMP捕获的 UDP包的一般输出信息是:
route.port1 > ice.port2,udp lenth
4.3 网络配置文件及程序
4.3.1 网络配置文件
在 Linux系统中, TCP/IP网络是通过若干个文本文件进行配
置的, 可以通过编辑这些文件来完成联网工作 。 系统中重要
的有关网络配置文件有:
? 1,网络设置 /etc/sysconfig/network
该文件用来指定服务器上的网络配置信息, 包含了控制
和网络有关的文件和守护程序的行为的参数 。 下面是一个例子
文件:
NETWORKING=yes
HOSTNAME=machine1
GATEWAY=210.34.6.2
FORWARD_IPV4=yes
GATEWAYDEV=
其中, NETWORK=yes/no 表 示 网 络 是 否 被 配 置 ;
HOSTNAME=hostname hostname 表示服务器的主机名;
GATEWAY=gw-ip gw-ip 表 示 网 络 网 关 的 IP 地址;
FORWARD_IPV4=yes/no 是否开启 IP 转发功能;
GAREWAYDEV=gw-dev gw-dw表示网关的设备名,
2,主机名 /etc/HOSTNAME
该文件包含了系统的主机名称, 包括完全的域名, 如:
192.168.0.1lb.whpu.edu.cn
这个文件是在启动时从文件 /etc/sysconfig/network中的
HOSTNAME行中得到的, 用于在启动时设置系统的主
机名 。
3,IP地址和主机名的映射 /etc/hosts
/etc/hosts文件中包含了 IP地址和主机名之间的映射, 还包
括主机名的别名, IP地址的设计使计算机容易识别, 但
对于人来说却很难记忆, 为了解决这个问题, 就创建了
/etc/hosts这个文件 。 下面是一个例子文件:
127.0.0.1 machine1 localhost.localdomain localhost
192.168.1.100 machine7
192.168.1.101 otherpc otheralias
在这个例子中, 本机名是 machine1,otherpc还有别名
otheralias,它可以指向 otheralias。 一旦配置完机器的
网络配置文件, 应该重新启动网络以使修改生效, 使
用下面的命令来重新启动网络:
/etc/rc.d/init.d/network restart
4,端口号和服务器名之间的映射 /etc/services
/etc/services中包含了服务名和端口号之间的映射, 不少
系统程序要使用这个文件
5,配置名字解析器 /etc/host.conf
/etc/host.conf文件指定如何解析主机名
3中解析方式,/etc/hosts,DNS,NIS
例,order hosts,bind
multi on #是否 /etc/hosts中允许一个主机有多个 IP地址
6,配置 DNS客户 /etc/resolv.conf
文件 /etc/resolv.conf配置 DNS客户, 它包含了主机的域名
搜索顺序和 DNS服务器的地址, 每一行应包含一个关键
字和一个或多个的由空格隔开的参数 。 下面是一个例子
文件:
searchmydom.edu.cn
nameserver 210.34.0.14
nameserver 210.34.0.2
4.3.2 使用 netconfig程序配置网络
1,启动 netconfig程序
当用户登录到 Linux系统后, 在终端上使用
,netconfig”命令启动该程序, 其在终端上的
响 应结果如图 4-22所示 。
图 4-22 确认网络配置
图 4-22 确认网络配置
图 4-23 进行网络配置
单击图中对话框上的, yes‖按钮, 确认要进行网
络配置, 即于如图 4-23所示的配置网络属性界面 。
2,配置网络属性
进入, Configuer TCP/IP‖窗口后, 设置相应的网络属性,
如 IP地址, 子网掩码, 默认网关和 DNS服务器地址, 确认
配置完成后单击, OK‖按钮保存设置 。
3,重新启动网络服务
使用 netconfig程序进行网络配置后只是修改了相应的网络
配置文件, 并没有使用所作的配置在当前系统中生效, 需
要使用, service network restart‖命令重新启动网络服务,
才可以使新的配置在当前系统中生效 。 图 4-24显示在终端
上重新启动网络服务及响应过程 。

4-
24


4.3.3 测试网络
测试网络的第一步是, 确认局域网中的计算机在启动之
后能否与其他主机通讯 。 可以先在每台计算机上输入
reboot 命令 。 在 Linux 重新启动过程中, 要仔细观看
屏幕上滚动的测试信息 。 注意寻找下列信息:
Setting hostname,<hostname you assigned to
thiscomputer>
Bringing up Interface lo:<OK> or <FAILED>
Bringingup interfaceeth0 <OK> or <FAILED>
也可以使用 ping 命令来判断计算机能否与其他计算机
通讯 。 在当前主机上打开一个终端窗口, 并输入命令
ping <IP address> 或 ping <hostname>。 其中, <IP
address> 或 <hostname> 是分配给这个计算机的 IP
地址和主机名 。 需要注意的是, 为了让 ping 命令正确
工作, 就必须输入 IP 地址或者主机名作为参数 。
如果已经正确配置了 DNS nameserver 规范, 那么 ping
<hostname> 命令就会将 hostname 这个主机名映射成相应
的 IP 地址 。 否则, 只好在 ping 命令后面给出确切 IP 地址
来测试, 也就意味着现在要拥有该局域网上所有计算机的
IP 地址列表 。 ping 命令通过局域网将消息发送到目的 IP 地
址所表示的计算机 。 如果这台计算机能够与其他主机通讯,
就可以看到一些消息或包 ( 包括信息的字节数 ) 。 这些包
应该象下面这样:
64 bytes from 192.168.1.x, icmp_seq=0 ttl=255 time=0.8ms
64 bytes from 192.168.1.x, icmp_seq=0 ttl=255 time=0.8ms
64 bytes from 192.168.1.x, icmp_seq=0 ttl=255 time=0.8ms
如果不能够 ping 到局域网中的另外一台主机, 可以按照下
面的方法寻找问题的根源 。 首先, 用 halt 命令关掉局域网
上所有的计算机 。 在所有计算机的命令行上输入 halt。 关掉
所有计算机的目的在于, 可以在再启动这些计算机的时候
观察到启动程序的反馈信息 。
检查所有计算机之间的网线, 确信所有的 RJ45 接口都被
正确连接 。 在确保所有网线安全正确连接之后, 逐个启
动局域网上的计算机, 并观察启动过程中的下列响应信
息:
Setting hostname,hostname.networkname [OK]
下面给出一个实例, 在局域网中有一台 Linux主机, 其通
过网关连接到互联中, 现在该 Linux主机不能通过浏览器
访问到互联网中的某个站点, 通常查找这种故障的步骤
如下:
( 1) 检测是否该站点是否关闭, 即可通过是否能打开其他知
名站点来确认 。 如是否能访问新浪, Yahoo,搜狐等 。
( 2) 查看本机 IP地址及相关网络参数设置是否正确 。
( 3) 检测本机与网关之间的通讯是否正常 。
( 4) 检测与互联网的连接 。 如使用 Ping命令进行测试 。
( 5) 测试域名解析是否正常 。
( 6) 测试与特定站点的连接是否正常 。