5章
Linux 的网络管理及应用 

本章学习目标

. 
了解Linux 网络服务分类和原理。
. 
掌握Linux 常用网络命令的使用。
. 
掌握Linux 各种网络服务器的基本概念。
. 
掌握Linux 常用网络服务器的配置过程。
5.1 Linux 网络管理命令 
5.1.1 ifconfig 
ifconfig 用于查看和更改网络接口的地址和参数。常用选项及参数含义如下。
interface:网络接口名,如eth0 和eth1。
up:激活网卡设备。
down :关闭网卡设备。
broadcast address:设置接口的广播地址。
pointpoint:启动点对点方式。
address:指定设备的IP 地址。
netmask address :设置子网掩码。

示例:

ifconfig eth1 //查看网卡eth1状态
ifconfig eth0 up //激活网卡eth0 
ifconfig eth0 down //关闭网卡eth0 
ifconfig eth0 192.168.1.105 netmask 255.255.255.0 broadcast 192.168.1.255 up 
//设置eth0的IP地址为192.168.1.105子网掩码255.255.255.0 广播地址192.168.1.255 
并且马上激活它
ifconfig eth1 mtu 9000 //修改其MTU 内容
ifconfig eth1 192.168.0.1 //设置网卡IP 
ifconfig eth1 -arp // 禁止arp协议
ifconfig eth1 arp //开启arp协议


126 Linux 系统及编程基础(修订版) 
ifconfig eth1 hw ether00:AA:BB:CC:DD:EE // 修改MAC( 修改硬件地址必须先关闭设备) 
ifconfig eth0:0 192.168.78.25 netmask 255.255.255.0 
ifconfig eth0:1 192.168.0.25 netmask 255.255.255.0 // 为一块网卡绑定多个IP地址

5.1.2 ping 
ping 使用ICMP 协议检测整个网络的连通情况,一般用法如下:

ping本机IP // 查看本机网络接口是否正确配
置
ping本机主机名 // 检查计算机名是否正
确
ping网关 // 检查和局域网的主机是否连
通


示例:

ping -c 3 192.168.1.105 //设置回应3次

ping -c 3 www.163.com 

ping -c 3 127.0.0.1 //查看本机是否安装TCP/IP,网卡是否工作正常

ping -c 3 -s 2000 192.168.1.105 // 找出最大MTU数值

ping -c 3 -R 192.168.1.105 //查看IP记录路由

5.1.3 netstat 
netstat 用于查看网络状态,一般用法如下:

netstat -antpu //常用查看命令
netstat -a //显示已经建立连接的接口
netstat -rn //显示路由表状态,且直接使用IP及端口号

其他选项及参数含义如下。

-s:按照各个协议分别显示其统计数据。

-t:显示TCP 传输协议的连接状态。

-u:显示UDP 传输协议的连接状态。

-w:显示RAW 传输协议的连接状态。

-p:显示正在使用socket 的程序识别码和程序名称。

示例:

netstat -tulnp //目前已经启动的网络服
务
netstat -l //仅列出在监控的端
口
netstat -i //显示本机网络接口信息和ifconfig命令输出接口一
致
netstat -t //显示TCP传输协议的连接状
态
netstat -u //显示UDP传输协议的连接状
态
netstat -g //查看组播成员信
息
netstat -s //显示网络工作协议的统计信
息


5.1.4 其他常用命令 
traceroute 是数据包路由跟踪诊断命令,可以查看数据包在网络上传输的路径情况,常


第5 章 Linux 的网络管理及应用127 

见用法如下:

traceroute 192.168.1.105 
traceroute www.dlpu.edu.cn
traceroute -n www.sohu.com 


dig 域信息搜索器,常见用法如下:

dig sohu.com +nssearch // 查看包含sohu.com 的授权域名服务器,并显示网段中每台域名

// 服务器的SOA记录

dig dlpu.edu.cn +trace // 从根服务器开始追踪域名dlpu.edu.cn的解析过程

dig -x 210.30.49.180 //对210.30.49.180 进行逆向查询

dig www.163.com // 根据域名来查询IP地址

地址解析协议(Address Resolution Protocol,ARP )表也称ARP 缓存,包含一个本地
网络上所有MAC 地址到IP 地址的完整映射。常用选项及参数含义如下。

-a:显示所有接口当前缓存。

-d:删除指定的IP 地址项。

-v:使用冗长形式显示。

-n:使用数值形式的地址代替主机名。

-s:增加指定IP 缓存。

示例:

arp -a //显示本地网络的所有入口
arp -varp -a -n 192.168.1.105arp -s 192.168.1.105 00:0C:29:75:B9:BD // 将IP和物理地址绑定
arp -H ether //查看ether类型的网卡
arp -a 10.10.1.24 //显示主机10.10.1.24的所有入口

还有很多网络应用命令,如nslookup 、telnet、ftp 、mail 、tcpdump 、nmap ,这里不再
一一介绍,有兴趣的读者可以自己查阅相关资料。

5.2 文件服务器配置:NFS和Samba 
本节将要介绍Linux 两种常用文件服务器软件NFS 和Samba 的配置及使用,NFS 服
务主要用于Linux 主机间的共享文件。Linux 系统与Windows 系统间的文件共享可以通过
Samba 服务来实现。

注意:如果配置有问题,请关注防火墙和SELinux 相关设置。

5.2.1 NFS 配置
NFS(Network File System ,网络文件系统)是UNIX 、Linux 支持的文件系统中的一
种。NFS 允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以


128 Linux 系统及编程基础(修订版) 

像访问本地文件一样访问远端系统上的文件。NFS 有以下3 个优点。

(1)本地工作站使用更少的磁盘空间,因为通常的数据可以存放在另一台机器上,而
且可以通过网络访问到。
(2)不必在每个网络上和机器中都有一个home 目录。home 目录可以被放在NFS 服
务器上,并且在网络上处处可用。
(3)诸如CDROM 之类的存储设备,可以在网络上共享,并被别的机器使用。这可以
减少整个网络上可移动存储设备的数量。
NFS 采用的是C/S 体系结构,至少有两个主要部分:一台服务器和一台(或者更多)
客户机。客户机远程访问存放在服务器上的数据。
如图5.1 所示,假设要把计算机B 上的/usr/man 挂载到计算机A 的/usr/man,首先要在
计算机B 上安装NFS 服务器端软件并完成配置,然后只需要在计算机A 的主机上运行
mount -t nfs B_machine_name(or IP):/usr/man /usr/man 命令,就可达到共享目的。


图5.1 NFS 共享两主机目录层次结构

下面将介绍Red Hat Enterprise Linux 中NFS 服务器图形下和终端下两种配置过程。

如果是Red Hat Enterprise Linux 6 以前的版本,服务器配置带有图形界面,所以配置
起来相对容易很多。如Red Hat Enterprise Linux 5.5 就能在gnome 界面下的服务器设置看
到的NFS。单击“系统”菜单下的“管理”→“服务器设置”→“NFS”选项,打开如
图5.2 所示的界面。

按照图5.2 所示很容易就能配置起NFS 共享服务器及共享的目录,用service nfs start 
命令启动nfs 服务,这样客户端就能通过mount 挂载映射到客户端本地目录上。例如,mount 
-t nfs 192.168.0.129:/home/share /mnt 命令将192.168.0.129 主机上的/home/share 目录挂载到
本地的/mnt 上。

Red Hat Enterprise Linux 6 默认安装不带以上图形化操作界面,所以这里介绍在终端下
如何配置NFS 服务器。需要说明的是:无论是图形化操作还是直接去修改配置文件,效果
都是一样的,图形化操作界面最后修改的也是对应配置文件,只是有图形化操作界面相对
来说容易一些。对于Linux 服务器管理员来说,一般都是直接远程登录机器,在终端界面
上直接修改配置文件达到配置服务器的目的。在本章其他服务器的配置中,一般都提供两
种配置方式,只是要注意本章图形化配置界面都是在Red Hat Enterprise Linux 5.5 版本基础


第5 章 Linux 的网络管理及应用129 

之上完成的,Red Hat Enterprise Linux 5.5 默认安装有服务器设置图形操作工具,而Red Hat 
Enterprise Linux 6 默认没有。


图5.2 NFS 服务器配置图形操作界面

首先要明确NFS 服务的配置文件是etc/exports,要注意图形界面上配置服务器的各参
数最终还是以etc/exports 文件形式存在的,只是图形操作对用户而言相对容易些。
exports 文件内容格式:

<输出目录>[客户端1选项(访问权限,用户映射,其他)][客户端2选项(访问权限,用户映射,
其他)] 

1.输出目录 
输出目录是指NFS 系统中需要共享给客户机使用的目录。

2.客户端 
客户端是指网络中可以访问这个NFS 输出目录的计算机。客户端常用的指定方式为:
指定IP 地址的主机192.168.60.20;指定子网中的所有主机192.168.60.0/24;指定域名的主
机pc1.dlpu.edu.cn;指定域中的所有主机*.dlpu.edu.cn;所有主机*。

3.选项 
选项用来设置输出目录的访问权限、用户映射等。NFS 主要有如下3 类选项。
1)访问权限选项

(1)设置输出目录只读ro。
(2)设置输出目录读写rw
。
2)用户映射选
项
(1)all_squash 将远程访问的所有普通用户及所属组都映射为匿名用户或用户组
(nfsnobody)。


130 Linux 系统及编程基础(修订版) 
(2)no_all_squash 与all_squash 取反(默认设置)。
(3)root_squash 将root 用户及所属组都映射为匿名用户或用户组(默认设置)。
(4)no_root_squash 与rootsquash 取反。
(5)anonuid=xxx 将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用

户(UID=xxx)。
(6)anongid=xxx 将远程访问的所有用户组都映射为匿名用户组账户,并指定该匿名
用户组账户为本地用户组账户(GID=xxx)。

3)其他选项
(1)secure 限制客户端只能从小于1024 的TCP/IP 端口连接NFS 服务器(默认设置)。
(2)nsecure 允许客户端从大于1024 的TCP/IP 端口连接服务器。
(3)sync 将数据同步写入内存缓冲区与磁盘中,虽然效率低,但可以保证数据的一致性。
(4)async 将数据先保存在内存缓冲区中,必要时才写入磁盘。
(5)wdelay 检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提

高效率(默认设置)。
(6)no_wdelay 若有写操作则立即执行,应与sync 配合使用。
(7)subtree 若输出目录是一个子目录,则NFS 服务器将检查其父目录的权限(默认

设置)。
(8)no_subtree 即使输出目录是一个子目录,NFS 服务器也不检查其父目录的权限,

这样可以提高效率。
了解了NFS 配置文档中各选项的基本含义,现在来看一个NFS 服务器配置实例。
在终端下建立以下目录,注意本章中的操作都是用root 用户直接操作的,目录拥有者

是root,注意目录访问权限。

[root@localhost~]#mkdir –p /nfs/public
[root@localhost~]#mkdir /nfs/test
[root@localhost~]#mkdir /nfs/root
[root@localhost~]#mkdir /nfs/users 


要共享的目录建完后,打开配置文档/etc/exports。

[root@localhost~]#vi /etc/exports 

并对文件内容作出以下修改:

/nfs/public 192.168.1.0/24(rw,async)*(ro) 

/nfs/test 192.168.1.253(rw,sync)
/nfs/root *.dlpu.edu.cn(ro,no_root_squash)
/nfs/users *.dlpu.edu.cn(rw,insecure,all_squash,sync,no_wdelay) 


vi 保存退出,并重启NFS 服务,至此服务已经配置完成。

[root@localhost~]#service nfs restart 

5.2.2 Samba 配置
SMB(Server Message Block)通信协议是微软和英特尔在1987 年制定的协议,主要


第5 章 Linux 的网络管理及应用131 

是作为微软网络的通信协议。由于SMB 协议通常是被Windows 系列用来实现磁盘和打
印机共享,为了与Windows 共享文件,UNIX 类系统也需要有相关的软件支持。Samba 就是
在Linux 和UNIX 系统上实现SMB 协议的一个免费软件,采用的是C/S 结构,由服务器及
客户端程序构成。Samba 能轻松解决Linux 平台到Windows 平台的文件共享问题,如图5-3 
所示。通过Samba ,可以把Linux 系统变成一台SMB 服务器,使Windows 平台用户能够
使用Linux 的共享文件和打印机。同样地,Linux 用户也可以通过SMB 客户端使用Windows 
上的共享文件和打印机资源。


图5.3 Linux 与Windows 文件共享示意图

Samba 的主要功能如下。

(1)提供Windows 风格的文件和打印机共享。Windows 操作系统可以利用Samba 共
享Linux 等其他操作系统上的资源,而从外表看起来和共享Windows 的资源没有区别。
(2)在Windows 网络中解析NetBIOS 的名字。为了能够利用局域网上的资源,同时
使自己的资源也能被别人利用,各个主机都定期向局域网广播自己的身份信息。负责收集
这些信息,提供检索的服务器也被称为浏览服务器,而Samba 能够实现这项功能。同时在
跨越网关时,Samba 还可以作为WINS 服务器使用。
(3)提供SMB 客户功能。利用Samba 程序集提供的smbclient 程序可以在Linux 系统
中以类似于FTP 的方式访问Windows 共享资源。
默认情况下,Red Hat Enterprise Linux 6 安装了Samba 服务,只是没有配备图形操作
界面。下面先以Red Hat Enterprise Linux 5.5 为例说明图形化操作界面的具体配置过程。

(1)启动Samba 配置界面,单击“系统”→“管理”→“服务器设置”→“Samba” 
选项,打开如图5.4 所示窗口。
(2)添加Samba 用户,单击“首选项”→“Samba 用户”→“添加用户”选项,这里
添加一个系统已经存在的用户forkp,设置Samba 密码并确定,如图5.5 所示。若用户不存
在,则先通过运行adduser 或useradd 命令自行添加。
(3)添加共享文件夹,单击添加共享按钮,打开如图5.6 所示对话框。浏览目录,这
里以/home/share 目录为例,注意目录所有者及访问权限问题,要确保用户forkp 对此目录
有相应操作权限,可在该目录上右击,然后在弹出的快捷菜单中单击“属性”→“权限”

132 Linux 系统及编程基础(修订版) 
查看并修改。


图5.4 Samba 服务器配置


图5.5 添加Samba 用户图5.6 设置要被共享的文件夹

单击“访问”菜单项设置允许访问的用户,这里允许forkp 访问,也可以设置成允许
任何人访问,如图5.7 所示。


图5.7 指定可访问的用户图5.8 设置读写权限

设置读写权限及list 显示并确定,如图5.8 所示
。
现在可以在Windows 下测试配置是否成功。在Windows 下执行“开始”→“运行
”



第5 章 Linux 的网络管理及应用133 

命令,输入\\IP 地址,以Red Hat Enterprise Linux 5.5 主机地址192.168.0.129 为例,输入
\\192.168.0.129 并等待输入forkp 用户名和密码,出现如图5.9 所示界面。如果不成功,则
检查防火墙和SELinux,查看是不是防火墙阻拦或是SELinux 功能没禁用。


图5.9 在Windows 下访问Samba 服务器

接下来介绍Samba 的终端配置法,Samba 的配置文件位于/etc/samba 目录下,主要的
文档是基本配置文件smb.conf 和用户配置文件smbusers 。以实现前面图形操作界面完成的
操作为例,终端的命令行操作步骤如下。

(1)添加Linux 用户。
[root@localhost~]#useradd forkp //添加用户名forkp
[root@localhost~]#passwd forkp //给用户名forkp添加密
码


(2)给Samba 服务器添加用户。注意:登录Samba 的用户必须已经是Linux 中的用户。
[root@localhost~]#smbpasswd -a forkp //添加并给forkp设置Samba密码
(3)建立共享目录。
[root@localhost~]#mkdir /home/share 

因为是root 建立的目录,其他用户只有读的权限,所以需要修改权限。当然也可以简
单地用#chmod 777 /home/share 命令进行修改。还有个问题就是共享里目录的文件,如果有
些能访问有些不能访问,那肯定也是权限的问题,需进入/home/share 目录,直接用#chmod 
777 *命令来解决。

[root@localhost~]#chown -R forkp:forkp /home/share 


134 Linux 系统及编程基础(修订版) 
(4)smb.conf 设置。
[root@localhost~]#cd /etc/samba 
[root@localhost~]#cp smb.conf smb.conf.bak 
[root@localhost~]#vi smb.conf 
//进入设置目录
//做好备份 
//修改smb.conf文件
对以下选项作出相应修改:
[global]

workgroup=MYGROUP //设置局域网中的工作组名
server string=Samba Server //设置Linux主机描述性文字,如Samba Server 
security=user //Samba的安全等级,user代表需要输入用户名和密码,改成share 

// 则不需要输入用户名和密码
path=/home/share //要共享的文件夹名,在共享前还要建立这个文件夹,并设好权限以便访问
valid users=forkp //这个share共享目录只允许forkp用户进入
public=no //no表示除了forkp用户,其他用户在进入Samba服务器后看不见forkp目录,如果

//为yes,虽然能看见forkp目录,但除了forkp用户能进入这个目录,其他人进不了
writable=yes //允许forkp在share目录中进行读和写操作,反之no 

最后vi 存盘退出。

(5)重启Samba 服务使修改生效。
[root@localhost~]#/etc/init.d/samba restart 

或者

service smb restart 

设置Samba 服务要注意以下两点,即两个两次。

(1)添加两次用户:一次添加系统用户#useradd 的用户名;再一次是添加Samba 用户
#smbpasswd -a 用户名。
(2)设置两次权限:一次是在smb.conf 中设置共享文件夹的权限;再一次是在系统中
设置共享文件夹的权限#chmod 777 文件夹名。
5.3 DNS 服务器配置 
DNS(Domain Name System ,域名系统)用于命名组织到域层次结构中的计算机和网
络服务。DNS 命名用于Internet 等TCP/IP 网络中,通过用户名称查找计算机和服务。当在
应用程序中输入DNS 名称时,DNS 服务可以将此名称解析为与之相关的其他信息,如IP 
地址。应用最多的就是浏览器应用,例如,在浏览器中输入一个网址,最终要通过IP 地址
寻址找到主机,而网址到IP 地址的对应关系是由DNS 服务器来解析的。

DNS 服务器又分为主DNS 服务器、辅/从DNS 服务器、缓存DNS 服务器、转发DNS 
服务器等多种类型,每种服务器在域名服务系统中所起的作用都不一样。

(1)主DNS 服务器:承担基本的域名解析服务的是主DNS 服务器。每个网络至少有
一个主DNS 服务器,用来解析网络上的域名或IP。
(2)辅/从DNS 服务器:在一些比较大的网络中,为了保证DNS 服务器能够提供可靠