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 服务器能够提供可靠