第四章 用 Linux 构建服务器
description
Transcript of 第四章 用 Linux 构建服务器
第四章 用 Linux 构建服务器 一 Linux 入门基础(一) . Linux 的安装 本书有关 Linux 章节的内容均是以红帽子 RedHat9.0 为例来讲述的,
其他发行版的 Linux 可能与此有些细微的差别。红帽子 9.0 完全安装有三张光盘,我们可以将它单独安装在一个硬盘上,这样比较简单一点,打开计算机进入 BIOS 设置,设启动为从光盘启动,将红帽子的第一张光盘放入光驱启动计算机,可以进入红帽子的安装程序,当安装语言选择为中文时,在安装的过程中可有中文提示,依提示操作,有一点系统安装经验的人都可以很易地将红帽子装好。
但大部分人可能比较倾向于双系统启动,就是在一个硬盘中安装了windows 又安装 linux ,这需要多系统启动管理软件,可以使用专门的系统启动软件如 BootMagic ,也可以使用红帽子自带的 grub 启动软件,我们在装好 windows 之后,再对硬盘进行处理,空出一段空间不分区,然后再将 linux 安装到硬盘的空闲空间中。这时便可利用 linux 的 grub 启动软件进行多系统启动。
以下是 RedHat9.0 的全部安装过程:
安装前的准备工作(一)
基本的硬件要求: Inter 486 以上的处理器 至少 32M 内存,推荐 64M 以上 至少需要 1G 以上的硬盘空间 VGA 显卡 可启动的 CDROM 其他设备(如声卡、网卡和 Modem 等) 安装 Linux 使用的介质 光驱、软驱(可选)
安装前的准备工作(二)
硬盘的分区考虑: 备份重要的数据 调整硬盘的分区,留出足够的空闲空间 安装 Linux 到主分区或逻辑分区 利用 VM Ware 软件安装 Linux OS 分区工具:
Fdisk /PQMagic(5.0)/DM
硬盘结构的介绍
mbr 主分区 逻辑分区
扩展分区
55AAH
446 字节 1 6 字节 1 6 字节 1 6 字节 1 6 字节
Mbr: 主引导扇区,共512个字节,其中446个字节在 windows 中用于存储错误代码,而在 linux 中用于存储引导程序,16个字节用于存储一个主分区的信息,55 AA 表示跳转2个字节。即(446+16* 4+2=512 )注意:所以在安装多系统时要注意安装顺序
安装方式
安装方式: Linux 有多种安装方式包括:– 硬盘安装– 网络安装( NFS 、 HTTP 、 FTP )– CD-ROM 安装– 用 VM Ware 等虚拟机安装
启动安装程序:– 使用光盘引导,安装时应在 BIOS 设置启动顺序,把 CD-ROM 作
为第一启动搜索选项。光盘安装是最直接、最快捷的方法。– 使用软盘引导,安装时应在 BIOS 设置启动顺序,把软盘作为第
一启动搜索选项。软盘引导应事先制作安装引导软盘。
虚拟控制台的功能
虚拟控制台 功能键组合 说明 1 Ctrl+Alt+F1 安装对话信息 2 Ctrl+Alt+F2 可运行简单命令的 Shell
3 Ctrl+Alt+F3 显示来自安装程序的记录内容 4 Ctrl+Alt+F4 显示来自 Kernel 与系统有关的信息 5 Ctrl+Alt+F5 其他信息 7 Ctrl+Alt+F7 X Window信息
Linux 分区划分方法
• 一般 linux 分区有( / 、 /boot 、 swap )– 交换分区:主要用于数据交换,可以划
内存大小的 1~2倍 (swap)– 根分区:主要用于存储数据 (/)– 引导分区:主要用于系统的引导( /boot )
一般划 100M~200M即可– 其它分区可以根椐不同的情况进行划分
• Linux 分区的划分方法– 先划分引导分区、交换分区– 最后再划分根分区
卸载 Linux :卸载步骤 1 :进入Windows删除 linux 分区重启或直接用 9
8 启动盘 启动,用 DM/PQ删除 linux 分区 卸载步骤 2 :在 dos 命令提示符上输入 fdisk /mbr
卸载步骤 3 :重启,完成
(二) 桌面环境简介 (1)GNOME 桌面环境 GNOME即 G N U 网络对象模块环境,该软件由来自 Red Hat 软件公司
和世界各地的程序员支持和开发。 G N O M E 备受关注,因为该软件基于GNU GPL 发布,不像底层的图形软件库,如 K D E 的 Q t 。除了许可限制协议这一原因外, G N O M E成为 L i n u x图形化的 X桌面特性的重要部分,基于以下几点原因:
• 该软件完全开放源码,任何人可以销售;基于该软件的商业软件无需购买软件许可。
• 允许赠送、改变和修改,无需通过集中资源控制,对于更改和发布更改没有许可的限制。
• 软件支持多操作系统和外部编程语言。 • 该软件可以和任何 G N O M E 可以识别的 X 11窗口管理器一起工作。
( 2 ) KDE桌面环境 Linux 最新的 X 11窗口管理器之一是 K桌面环境 ( K
D E ) 。但是, K D E 不仅仅是窗口管理器—它还是是一个完整的桌面环境,包括 150 多个客户程序和一个统一的界面,和 GNOME 中的非常相似。 K D E支持在现代桌面环境中的用户常要的许多功能 。
( 3 ) 添加/删除应用程序 程序组件的安装,整个 RedHat9.0完全安装大约需要 5G的空间,在初次安装时没有安装的软件包可以在系统安装成功以后通过以下步骤来安装或卸下所选择的软件包。
首先进入 XWindows “ ”,在系统的主菜单上选择 系统设置 ->“添加 / ”删除应用程序 ,因为是特权操作,所以需要在输入 root密码之后才能作进一步的操作,如图 4-1所示。点击后面的细节按钮,选择所需要的软件后再照提示插入相应的安装光盘即可,图 4-1 添加 /删除程序。
(三) 文件系统与管理 Minix:最古老、最可靠 Ext : ext2 的老版本 Ext2 :当前最通用的 Linux 文件系统 Ext3:ext2+log是 linux通用的文件系统 Reiserfs:一种新型文件系统,支持海量磁盘和磁盘阵列,并有很高的
搜索速度和效率 Smb:是一种支持Windows for Workgroups、Windows NT 和 Lan M
anager 的基于 SMB协议的网络文件系统。 Msdos:与 MSDOS 、 OS/2 等 FAT 文件系统兼容 Umsdos: Linux 下的扩展 msdos文件系统 ISO9660 : CD-ROM NFS:网络文件系统 HPFS : OS/2 文件系统 proc:存放在内存的虚拟文件系统
(四) Linux 的常用命令
linux命令列通常由好几个字串组成 , 中间用空白或空格键分开。如下所示:
command options arguments(或 parameters) 命令 选项 参数
例如: rm -rf /home/ols3
1 chmod命令改变文件的权限 使用格式 : chmod [Options] [--help] [--version] mode file... 说明 : Linux/Unix 的文件存取权限分为三级 : 文件拥有者、群组、其 他。
利用 chmod 可以可以控制文件如何被他人所存取。 参数说明: mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...] 其中 u 表示该文件的拥有者, g : 表示与该文件的拥有者属于同一个群体 (group)者, o : 表示其他以外的人, a 表示这三者皆是。 + : 表示增加权限、 - 表示取消权限、 = 表示唯一设定权限。 r : 表示可读取, w 表示可写入, x 表示可执行, X 表示只有当该文件是个
子目录或者该文件已经被设定过为可执行。 -c : 若该文件权限确实已经更改,才显示其更改动作。 -f : 若该文件权限无法被更改也不要显示错误讯息。 -v : 显示权限变更的详细资料。
-R : 对目前目录下的所有文件与子目录进行相同的权限变更 (即以递回的方式逐个变更 )
--help : 显示辅助说明 --version : 显示版本 举例 : 将文件 file1.txt 设为所有人皆可读取 : chmod ugo+r file1.txt
将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
chmod ug+w,o-w file1.txt file2.txt
将 ex1.py 设定为只有该文件拥有者可以执行 : chmod u+x ex1.py
将目前目录下的所有文件与子目录皆设为任何人可读取 : chmod -R a+r * 此外 chmod 也可以用数字来表示权限如 chmod 777 file
2 ls 命令:显示指定工作目录下之内容 使用格式 : ls [Options] [name...] 说明 : 显示指定工作目录下的内容(列出目前工作目录下所有的文件和子目录 )。
-a 显示所有文件及目录 (ls内定将文件名或目录名称开头为 "."的视为隐藏档,不会列出 )
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等信息详细列出 -r 将文件以相反次序显示 (原定依英文字母次序 ) -t 将文件依建立时间之先后次序列出 举例: 列出目前工作目录下所有名称是 s 开头的文件,愈新的排愈后面 : ls -ltr s* 将 /bin 目录以下所有目录及文件详细资料列出 : ls -lR /bin
3 chown命令改变文件的属主 使用格式 : chmod [Options] [--help] [--version] user[:group] file... 参数说明: user : 新的文件拥有者的使用者 IDgroup : 新的文件拥有者的使用者群体 (group) -c : 若该文件拥有者确实已经更改,才显示其更改动作 -f : 若该文件拥有者无法被更改也不要显示错误讯息 -h : 只对于连结 (link) 进行变更,而非该 link 真正指向的文件 -v : 显示拥有者变更的详细资料 -R : 对目前目录下的所有文件与子目录进行相同的拥有者变更 (即以递回的方式逐
个变更 ) --help : 显示辅助说明 --version : 显示版本 举例 : 将文件 file1.txt 的拥有者设为 users 群体的使用者 jessie : chown jessie:users file1.txt 将目前目录下的所有文件与子目录的拥有者皆设为 users 群体的使用者 lamport : chmod -R lamport:users *
4 rm删除命令 使用格式: rm [options] name...
说明:删除文件及目录。 -i 删除前逐一询问确认。 -f 即使原文件属性设为唯读,亦直接删除,无需逐一确认。 -r 将目录及以下之文件亦逐一删除。 举例: ( 1)删除所有 C 语言程式档;删除前逐一询问确认 :
rm -i *.c
( 2 )将 Finished 子目录及子目录中所有文件删除 :
rm -r Finished
5 mv文件移动 /改名命令 mv [options] source dest
mv [options] source... directory
说明:将一个文件移至另一文件,或将数个文件移至另一目录。 参数: -i 若目的地已有同名文件,则先询问是否覆盖旧档。 举例: ( 1 )将文件 aaa 更名为 bbb :
mv aaa bbb
( 2)将所有的 C 语言程式移至 Finished 子目录中 :
mv -i *.c Finished
(五)磁盘与内存管理 磁盘与内存管理是操作系统的一项重要的工作, Linux 提供了众多
的命令帮助我们完成有关的工作。 安装 L i n u x 操作系统的时候,你把它安装到了某个分区上面,而
这个分区是由某个特定的设备名 ( 如 / d e v / h d a 1 、 / d e v / s d b 1 等 ) 来表示的。我希望把分区设置得足够大到可以满足目前和将来的需要。
但是怎样才能检查并知道磁盘上还剩下多大的空间,或者换句话说,你又有多大的硬盘空间呢?这些都需要我们利用磁盘管理命令来完成相应的操作。
1 文件系统挂载命令 mount/umount 要把一个块设备安装到文件系统,可使用 m o u n t命令。使用 m
o u n t命令需要指定包含文件系统的设备、它的类型以及把它安装在目录结构中的位置。
mount命令的格式是: mount [-t type] [-o options] device mount-point
下面是使用 m o u n t命令的一个例子: # mount /dev/fd1 –t vfat /mnt/floppy
mount: block device /dev/fd1 is write-protected, mounting reading only
这一命令将一软盘驱动器加载到目录 /mnt/floppy,查看此目录的内容就可以看到软盘中的内容。当此块设备不需要再使用时可以使用命令 umount /mnt/floppy卸载。
2 目录文件摘要命令 du du能够方便地汇总出磁盘的使用情况,它可以报告出每个子目录或
者某个指定路径的空间占用量。 3 磁盘摘要命令 df
df会收集和整理当前已经挂装的全部各种文件系统的一些重要的统计数据。 d f命令使用起来很简单,如下所示:
# df
4 收回内存命令 kill 使用格式: kill [ -s signal | -p ] [ -a ] pid ... kill -l [ signal ] 说明: kill 送出一个特定的信号 (signal) 给进程 id 为 pid 的进程根据该信号而做特定的动作 , 若没有指定 , 预设是送出终止 (TERM) 的信号。
-s (signal) : 其中可用的讯号有 HUP (1), KILL (9), TERM (15), 分别代表着重启 , 杀死 , 结束 ; 详细的信号可以用 kill -l
-p : 印出 pid , 并不送出信号 -l (signal) : 列出所有可用的信号名称 举例: ( 1 )将 pid 为 323 的进程杀死 (kill) : kill -9 323 ( 2 )将 pid 为 456 的进程重启 (restart) : kill -HUP 456 如果需要迅速收回内存,作为不得已的情况下,可以使用 k i l l 命令来终止程序的运行。如果想 k i l l掉某个特定的程序,应该首先使用 p s命令列出当前正在执行中的进程的清单,然后再使用 k i l l命令把其中的某一个或者全部都终止掉。
(六) 用户与组管理 作为系统管理员,一个主要的任务就是管理系统上的用户。这些工作包括为新用户建立帐号、分配用户子目录、为用户指定一个初始的 s h e l l而且可能还需要对每个人所能够使用的磁盘空间、内存以及进程个数等设置不同的限制值。本小节将介绍如何使用各种命令行程序来管理用户,当然,当运行X窗口系统的时候也可以使用图形化的工具软件来完成任务。
1 adduser命令建立用户 命令格式: adduser 用户名 说明:在安装好 L i n u x操作系统后,必须要做的头几件事之一就是要建立用户帐户。在 L i n u x操作系统有好几种方法可以用来建立新用户,这里我们只介绍命令行操作,注意你必须是根用户才能运行这个程序。如果你作为一个普通的用户想试试执行 a d d u s e r命令,这个命令会报告出错,如下所示:
$ adduser Only root may add users to the system . adduser程序还要求你在它的命令行上指定一个用户名,如下所示: adduser test
2 passwd命令改变口令字 建立了新的用户之后,必须使用 passwd 命令设置一个口令字。这个命令将在子目录 / e t c中的 p a s s w d文本数据库中生成一个缺省的 x数据项。而真正的口令字,会经过加密之后保存到 / e t c / s h a d o w文件中去。 / e t c / s h a d o w文件与 / e t c / p a s s w d文件的读权限是不同的。 (虽然每个人都可以读 / e t c / p a s s w d文件,但是只有根操作员才有查看 / e t c / s h a d o w文件的权限。 )
如果想要增加一个口令字,敲入 p a s s w d命令,后面再跟上那个新用户名:
# passwd guest Changing password for user guest. New password: Retype new password: passwd: all authentication tokens updated successfully. 你会被要求先输入一个口令字,然后再把口令字重新输入一遍进行校验。如果一切顺利,新的口令字就会记录到 / e t c / s h a d o w文件中去。这时此用户就能使用新的口令了。
3 Usermod 命令修改用户信息 命令格式: usermod [选项 ] [用户名 ] 常用选项: -d:更新使用者新的登录目录 -s:指定新登录的 Shell 举例: usermod –d /home/user1 –s /bin/bash user2 将用户 user2的主目录路径设置在 /home/user1,登录的 Shell设置为 /
bin/bash4 groupadd命令新建组群 命令格式: groupadd 组名 说明:新增组账号的 groupadd命令使用很容易,只要直接输入命令以及组名称即可,若要指定组识别码 (GID) “,可以使用 -g”参数,如果没有指定任何参数,系统会自行由编号 500开始依次分派给新增的组使用,而在 500之前的编号则保留给系统服务的组账号使用。
5 userdel命令删除用户 命令格式: userdel [选项 ] 用户名 常用选项有: -r:将用户目录下的文档一并删除6 groupdel命令删除组群 命令格式: groupdel 组名7 su命令用户间切换 命令格式: su [用户名 ] su命令的常见用法是变成根用户,如果发出不带用户名的 su命令,则系统提示输入根口令,输入后则可切换为根用户,如果登录为根用户,则可以用su命令成为系统上任何用户而不需要口令。
8 who查看当前在线用户 命令格式: who [选项 ] 用于查看当前在线上的用户情况,常用的选项: -a:显示所有用户的所有信息 -m:只显示当前用户名 -u:在登录时间后显示该用户最后一次对系统进行操作距今的时间
二、 网络基本管理 (一)与网络相关的配置文件 1. 主机地址设置文件 /etc/hosts 虽然以 IP 地址可以很准确地辨别每一台主机,但是也产生了记
忆地址困难的问题,如果采用一些一般人易记的名称,则就可以降低出错的的机会,于是就产生了利用一种中介机制来进行 IP 地址与字母名称之间的转换(解析)的办法。
进行地址转换的方法有两种,其一是使用 DNS ,其二是使用主机名文件 /etc/hosts 。使用此文件比 DNS更为简单快捷, /etc/hosts文件进行名称解析的步骤如下:
( 1 )客户端在终端窗口或是浏览器等程序中输入目标主机名称后,系统会自动到 /etc/hosts 文件查询是否有目标主机的记录。
( 2 )若是在 /etc/hosts 文件中包含目标主机的记录,则可找出该主机的 IP 地址。
( 3 )工作站利用找出的主机 IP 地址,直接对此主机进行通信。
下面是一个 /etc/hosts文件的举例:# Do not remove the following line, or various programs# that require network functionality will fail.127.0.0.1 localhost.localdomain localhost #缺省安装202.218.22.34 ns1.pyp.edu.cn #用户安装202.218.22.36 ns2.pyp.edu.cn #用户安装
2. 网络服务数据文件 /etc/services /etc/services是专为各种不同网络服务而准备的数据文件,在这个文件中包含 Internet服务名称、使用的连接端口号 (Port)与通信协议等信息。它允许使用连接端口号与通信协议以对应的服务名称,有一些程序必须使用这个文件以执行特定的功能。
例如 xinetd是一个功能强大的程序,它专门管理 Internet上连接的“要求,而当用户要求远程登录以及文件传输通信协议 FTP”时,它会
自动检查 /etc/services文件,并且找出对应的程序。 以下是 /etc/services文件的部分内容举例: ftp-data 20/tcp ftp-data 20/udp # 21 is registered to ftp, but also used by fsp ftp 21/tcp ftp 21/udp fsp fspd ssh 22/tcp # SSH Remote Login Protocol ssh 22/udp # SSH Remote Login Protocol telnet 23/tcp telnet 23/udp
3. xinetd配置文件 /etc/xinetd.config xinetd是 Linux中一个非常重要的看守进程,它负责接受来自 Inte
rnet客户端的请求,并且将客户端的请求传送至正确的服务程序,这样处理的优点在于由 xinetd负责监听来自网络上的要求信息,而服务程序因为有 xinetd帮助监听来自客户端的请求,所以他们不需要在每次启动时就加载大量的程序,这可避免系统资源的浪费。
在每次修改 xinetd或是任何一个看守进程的服务设置后,记得要重新启动 xinetd才可使设置生效。
启动命令如下: /etc/rc.d/init.d/xinetd restart
4. 访问允许 /禁止配置文件 /etc/hosts.allow和 /etc/hosts.deny 除了可以将来自客户端的要求转送至指定的服务程序外, xinetd还具备另一种功能,那就是可以集中式地管理客户端连接。
当 xinetd接受来自客户端的服务要求后,它会先检查 /etc/hosts.allow文件中是否允许此客户端的访问,若是允许则会将此要求转送至指定的服务程序,同时忽略 /etc/hosts.deny的检查。
若在 /etc/hosts.allow文件中没有此客户端可被允许的记录,接着 xinetd会继续检查 /etc/hosts.deny文件的内容,如果该客户端的数据出现在此文件中,则此要求会被拒绝,但若是没有出现,由此客户端的要求仍会被转送至指定的服务程序。
所以通常会将需要提供服务的客户端记录在 /etc/hosts.allow中,而在 /etc/hosts.deny只写入简单的一行:
ALL:ALL 如果要增加额外的记录,可用以下的格式来设置: Daemon:Address[:Option1[:Option2]]
5. 网络状态设置文件 /etc/sysconfig/network /etc/sysconfig/network是 tcp/ip网络的重要设置文件,它可以设置系统默认的网络参数,如下例如示:
NETWORKING=yes # 表示网络功能开启 HOSTNAME=localhost.localdomain # 主机名 GATEWAY=192.168.2.1 # 本机的网关 它还可以包含以下参数: FORWARD_IPV4:设置此项服务器是否允许转送来自客户端的 IPv4
(IP Version 4)封包,若允许转送应加入 FORWARD_IPV4=true
DOMAINNAME : 此服务器所属的域名称 GATEWAYDEV :连接网关的设备,通常设 eth0表示以网卡当作网络连接设备,若是拨号用户则设为 ppp0
6. 主机搜寻设置文件 /etc/host.conf 对主机名的解析是先通过 /etc/hosts文件还是由 DNS,这是由文件 /etc
/host.conf来设置 ,其默认的内容很简单 : order hosts,bind 7. DNS服务器搜寻顺序设置文件 /etc/resolv.conf /etc/resolv.conf 文件主要是用来设置 DNS 的相关选项,其可用的
设置选项有: ( 1 ) nameserver :设置名称服务器的 IP 地址,此处所谓的名称服务
器就是指 DNS ,最多可设置 3 个 nameserver ,而每个 DNS 的记录需自成一行,主机进行名称解析时会先查询记录中的第一台 nameserver ,如果无法成功解析,则会继续询问下一台 nameserver 。理论上可以使用 Internet 中的任何一部 DNS服务器来进行名觥解析,但由于效率的考虑,通常都会以距离最近的 nameserver 为第一顺序优先,如果主机本身就是 DNS服务器,则可以使用 0.0.0.0 或是主机上的其他 IP 地址来表示 。
以下是一个 DNS服务器的举例: nameserver 0.0.0.0 nameserver 202.116.135.235 nameserver 202.116.135.236 ( 2 ) domain:指定主机所在的域名称 ( 3 ) search:在此处可以使用空格键来分隔多个域名称,而它的作用是在进行名称解析工作时,系统会自动将此处设置的域名称,自动加在欲查询的主机名称之后,可以加入最多 6个域名称,但总长度不可超过 256个字符。例如在此设置 3个不同的域名称:
name1.com name2.com name3.com, 当要查询的名称为 host1时,则系统会依次查询 host1.name1.com,
host1.name2.com, host1.name3.com
(二) 设置和调节网络状态 1. 启动网络 network /etc/rc.d/init.d/network是 Linux系统中用来启动网络功能的 Shell Script,在正常的状况下,每次开机都会自动启动,每当修改了系统中的网络状态,应该重新启动网络,而不需要重新开机 reboot。命令格式:
/etc/rc.d/init.d/network restart 2. 设置网卡状态 ifconfig命令 i f c o n f i g的参数非常之多,其调用结构是: ifconfig interface [[-net|-host] address [parameters]] 参数说明: “ i n t e r f a c e” :指接口名 “ a d d r e s s” : 指准备分配给这个接口的 I P地址。它既可以是点分四段式的 I
P地址,又可以是 i f c o n f i g在 / e t c / h o s t s和 / e t c / n e t w o r k s文件内找出的接口名。
- n e t 和 - h o s t 选项强制 i f c o n f i g 将这个地址视作网络编号或主机地址。 如果 i f c o n f i g在调用时只有接口名,它就会显示出该接口的配置信息。如果调用 i f c o n f i g时不带任何参数,它就会显示迄今为止已配置的所有接口;
- a 选项也将强制它显示所有非活动的接口。
3. 显示网络统计信息 netstat命令 netstat是一个非常有用的工具,通常它可以完成以下功能。 ( 1 )显示路由表 命令格式: netstate –nr ( 2)显示接口特性 在随 - i 标记一起调用时, n e t s t a t将显示网络接口的当前配
置特性。除此以外,如果调用时还带上 - a选项,它还将输出内核 中所有接口,并不只是当前配置的接口
( 3)显示链接 netstat 支持用于显示活动或被动套接字的选项集。 选项 - t 、 - u 、 - w 和 - x 分别表示 T C P 、 U D P 、 R AW 和 U
N I X套接字连接。 如果你另外还提供了一个 - a标记,还会显示出等待连接(也就
是说处于监听模式)的套接字。这样就可以得到一份服务器清单,当前所有运行于系统中的所有服务器都会列入其中。
4. 侦测主机连接 ping命令 最基本的查找并排除网络故障的工具是 p i n g程序。 p i n g发出数据包到另一个主机并等待回复。 p i n g使用 I C M P (网际控制报文协议 ),这个协议运行在 I P上并控制用于路由和可到达信息等的消息。
5. 显示封包经过历程 traceroute命令 traceroute是 T C P / I P查找并排除故障的主要工具。它不断用更大的 T T L发送 U D P数据包并探测数据经过的网关的 I C M P回应。最后,它得到数据包从源主机到目标主机的路由信息。
三、与 Windows 的资源共享 (一) Samba协议简介 在 NetBIOS 出现之后, Microsoft 就使用 NetBIOS实现了一个网
络文件 / 打印服务系统,这个系统基于 NetBIOS 设定了一套文件共享协议, Microsoft称之为 SMB ( Server Message Block )协议。这个协议被Microsoft 用于它们 Lan Manager 和 Windows NT服务器系统中,实现不同计算机之间共享打印机、串行口和通讯抽象(如命名管道、邮件插槽等)。
随着 Internet 的流行, Microsoft希望将这个协议扩展到 Internet 上去,成为 Internet 上计算机之间相互共享数据的一种标准。因此它将原有的几乎没有多少技术文档的 SMB协议进行整理,重新命名为 CIFS ( Common Internet File System ),并打算将它与 NetBIOS相脱离,试图使它成为 Internet 上的一个标准协议。
因此,为了让Windows和 Linux计算机相集成,最好的办法即是在 Linux计算机中安装支持 SMB/CIFS协议的软件,这样Windows客户就不需要更改设置,就能如同使用Windows NT服务器一样,使用Linux计算机上的资源了。
Samba是用来实现 SMB的一种软件,它的工作原理是,让 NETBIOS( Windows95 网络邻居的通讯协议)和 SMB( Server Message Block)这两个协议运行于 TCP/IP通信协议之上,并且使用Windows的 NETBEUI协议让 Linux计算机可以在网络邻居上被Windows 计算机看到。它的功能有:
(1) 共享 Linux磁盘给Win95/NT (2) 共享Win95/NT磁盘给 Linux机器 (3) 共享 Linux打印机给 win95/NT (4) 共享 win95/NT打印机给 Linux机器 同时它的文件服务功能比 NT系统还高,而且在Windows2000之前就提供了用户磁盘空间限制的功能。
(二)安装 Samba组件(三) Linux 主机访问Windows 主机 安装好 Samba 之后,就有了与 Windows互相访问的基础。下面首先介绍如何
用字符命令方式访问Windows宿主机的共享资源。 (1) 查询宿主机的共享资源 可以使用“ smbclient -L WindowsHostName”命令 ( 此处的 WindowsHostName
用 Windows 主机名代替 ) 。本例是要查询Windows 主机 Peter 上的共享资源,可以在终端窗口输入“ smbclient -L Peter”命令,然后回车即可看到 Windows 主机的共享资源。
(2) 连接宿主机的共享目录 可以使用“ smbclient //WindowsHostName/ShareName”命令来连接 Windows
主机上的某个共享文件夹,如果该共享文件夹需要用户名和密码,则可以使用“ smbclient //WindowsHostName/ShareName -U UserName”命令。
例如要连接 Windows 主机 Peter 上的共享目录 Share ,我们可以在终端窗口输入“ smbclient //Peter/Share”命令然后回车即可。
如果连接成功,即可出现“ smb:` >” 提示符,在该命令提示符下输入适当的命令,即可对所连接的共享目录进行操作。
Smb支持的命令有大约 40 个命令,可以很方便地对共享目录进行删除、重命名、切换目录等操作。如果要列出共享目录“ Share” 下的具体内容,可以使用 ls命令。要删除其下的 test.txt 文件,可以使用“ del test.txt”命令。
(3) 映射网络驱动器 我们知道,Windows下可以将共享目录映射为网络驱动器,这样就可以把共享目录当成本地文件夹来使用。在 Linux 下可以借助于 smbmount “命令来实现,具体的命令参数是 smbmount //WindowsHostName/ShareName /mnt/smbdir”(此处的 ShareName指代Windows共享资源名称, smbdir指代挂载点名称 )。假设要将Windows 主机 Peter下的共享文件夹 Share映射为 /mnt/WinShare目录,具体步骤是:
a. 首先在 /mnt目录下创建一个目录,假设为 /mnt/WinShare; b. “然后打开终端命令窗口,运行 smbmount //Peter/Share /mnt/WinSha
re”即可; c. 再在文件管理器里打开 /mnt/WinShare目录可以看到共享目录的内容!要卸载该映射目录,可以使用 umount命令。
(4) 用 Nautilus访问Windows主机
借助 Gnome桌面下的文件管理器 Nautilus,我们可以用图形界面来访问Windows主机,这里要注意的是 Nautilus只是提供访问Windows主机的图形界面,具体的底层操作还是借助于 Samba客户端来完成。
在 Gnome “ → ”桌面环境下,单击 主菜单 网络服务器 菜单项,即可用 Nautilus文件管理器查看工作组列表。双击工作组名称,即可看到其下的Windows主机。
双击其中的某台Windows主机图标,即可看到该主机的共享文件夹,可以看到这和Windows下的网络邻居几乎一样。由于 Nautilus本身就是 Red Hat Linux的文件管理器,所以我们可以任意往Windows共享目录里拷贝文件、删除文件、创建目录等等 (对于Windows 2000/XP主机还需要考虑该共享资源的权限设置 )。
(四) Windows 主机访问 Linux 主机 要想让Windows宿主机能够访问 Linux 虚拟机,就必须在 Linux 虚
拟机上启动 Samba服务。在启动之前,还需要对 Samba服务的属性进行配置,例如指定 Linux 虚拟机的共享目录、所在的工作组名称等。
1 配置 Samba服务器 在以前版本的 Red Hat Linux ,我们必须直接修改 Samba配置文件
smb.conf ,或者使用 SWAT 对 Samba 进行全方位的设置。 Red Hat Linux 9.0新引入了一个图形化的 Samba服务器配置工具,可以让我们很方便地对 Samba服务器进行配置。
以 root 用户身份登录系统,单击“主菜单→系统设置→服务器设置→ Samba服务器”菜单项,即可打开 Samba服务器配置对话框。也可以在终端命令窗口输入“ redhat-config- samba” ,来访问 Samba服务器配置对话框。
首先对 Samba服务器的基本设置和安全选项进行配置,单击配“ → ”置对话框上的 首选项 服务器设置 菜单项,即可打开服务器设置
对话框。 基本设置: “ ”在对话框的 基本 标签页,我们可以指定 Linux主
机所在的工作组名称,需要注意的是,此处的工作组名称不一定非得与Windows主机所在的工作组名称一致。
安全设置:然后进行 Samba服务器安全设置,这里一共有 4个选项。
( 1)验证模式:代表如果Windows主机不是位于 NT域里,此处应“ ”该选择 共享 验证模式,这样只有在连接 Samba服务器上的指定共
享时才要求输入用户名、密码; ( 2)验证服务器: “ ”代表对于 共享 验证模式,无需启用此项设置;
“ ” “ ”加密口令 选项应该选择 是 ,这样可以防止黑客用嗅探器截获密码明文;
( 3 )来宾账号: 代表当来宾用户要登录入 Samba 服务器时,他们必须被映射到服务器上的某个有效用户。选择系统上的现存用户名之一作为来宾 Samba 账号。当用户使用来宾账号登录入 Samba 服务器,他们拥有和这个用户相同的特权。
添加共享目录:单击 Samba “ ”配置对话框工具栏上的 增加 按钮。在打开的对“ ”话框中的 基本 标签页上,指定 (共享 )目录为某个存在的目录,例如可以指
定 /tmp,再指定该目录的基本权限是只读还是读 / “ ”写。在 访问 标签页上,可以指定允许所有用户访问、或者只允许某些用户访问。
( 4)启动 Samba服务器 “打开终端命令窗口,输入 /sbin/service smb start” 命令,即可出现以下提示信息,表示 Samba服务已经启动。
# /sbin/service smb start 启动 SMB 服务 [确定 ] 启动 NMB 服务 [确定 ] 接下来在Windows “ ”里打开 网络邻居 ,就可以看到我们刚才设置的 Samba服务器了!
四、 DHCP服务器的构架 (一) DHCP--让网络配置更轻松
DHCP协议提供了在 TCP/IP 网络上自动安全地分配 IP 地址的机制,在网络中架设 DHCP服务器,不但可以解决 IP 地址不够的难题,而且可以简化网络配置 ,实现 IP 地址的集中式管理。为了减轻管理和维护的负担或解决 IP 地址资源不足的问题,网络管理员通常在网络中架设一台 DHCP服务器,以集中管理网络上计算机的 IP 地址和各种 TCP/IP参数(如子网掩码、默认网关和 DNS服务器)。
(二) DHCP 的安装(三) DHCP 的配置 DHCP服务器的运行参数,是通过修改其配置文件 dhcpd.conf 来实现的。该
文件通常存放在 /etc目录下。由于 dhcpd.conf 是一个文本文件,我们可以使用任何文本编辑器如 vi 来编辑它。每次修改配置文件的设置后,需重新启动 DHCP服务后才能使新的配置生效。
DHCP服务安装之后并没有自动生成 dhcpd.conf配置文件,我们需要手动生成。为了简化操作,我们借助配置文件的范本来完成。
(四)测试 DHCP服务 编辑好配置文件 dhcpd.conf 后,执行命令“ /etc/rc.d/init.d/dhcpd start” 启动 D
HCP服务。在 Windows 工作站中设置为自动获取 IP 地址,工作站如果能正确获取服务器分配的 IP 地址和各项 TCP/IP参数,则表明 DHCP服务器配置成功。
(五) DHCP 的管理 (1) DHCP 启动、停止和重新启动操作 DHCP 可以通过以下指令实现作启动、停止和重新启动, /etc/rc.d/init.d/dhcpd start |stop | restart
如果需要让 DHCP服务随系统启动而自动加载,可以执行“ ntsysv”命令启动服 务配置程序,找到“ dhcpd”服务,然后在其前面加上“ *” 星号,确定即可。
(2) 查看 IP 地址租用信息 DHCP服务器将 IP 地址租用信息保存在 /var/lib/dhcp/dhcpd.leases 文件中,我
们通过查看该文件得到 IP 地址的租用情况。
五、 DNS服务器的构架 ( 一 ) DNS服务器的安装与配置 1 建立主配置文件 /etc/named.conf Bind 的主配置文件是 named.conf ,该文件通常存放在 /etc目录下。 named.conf里面并
不包含 DNS 数据,它只包括 Bind 的基本配置, DNS 数据文件一般存放在 /var/named/目录下。 named.conf 文件的内容如下。
options { directory "/var/named"; }; 定义 named 要读写文件的路径,配置文件中后续的语句如果没指定文件的路径,默认为此处定
义的路径。 zone "." { type hint; file "named.ca"; }; 定义根区域“ .” ,其区域类型为“ hint” (只有“ .” 区域才会使用“ hint”类型)。该区域数
据的文件名为 named.ca 。 zone "169boy.com" { type master; file "169boy.com.zone"; };
( 1)定义域 169boy.com: “其类型为 master”(即主区域),主区域中的 DNS数据保存在区域数据中。区域数据文件为 169boy.com.zone。
zone "9.168.192.in-addr.arpa" { type master; file "192.168.9.arpa"; }; ( 2 “)定义反向解析域 9.168.192”:它负责将 IP地址解析成对应的
“域名,要注意的是 .in-addr.arpa”是反向解析域的固定格式,不能改变。“设定反向解析域时,需要将子网号反过来写,如子网 192.168.9.0/24”
“完整的反向解析域名为 9.168.192.in- addr.arpa” “,子网 192.168.9.0/16”“完整的反向解析域名为 168.192.in-addr.arpa”。 type master说明其区域
类型为主区域。 file "192.168.9.arpa"定义保存区域数据的文件名。 zone "dzxx.edu.cn" { type slave; file "dzxx.edu.cn.zone"; masters {192.168.9.111;}; };
( 3 “)定义域 dzxx.edu.cn”:其域类型为 slave(即从区域)。从区域中的 DNS数据是通过复制主区域中的数据生成,设置从区域的目的是为了加快查询速度、提供容错和和均衡负载等。另外,还需要通过 master指令指定主区域服务器的地址。 Bind服务启动时会自动
连接主区域服务器并复制其中的 DNS数据。 zone "1.168.192.in-addr.arpa" { type slave; file "192.168.9.arpa"; masters {192.168.9.111;}; }; 从该例子不难看出 named.conf中语句必须以分号结尾;使用花括号将容器指令(如 options和 zone)中的语句和选项包含起来;可以使用 C “语言中的 /*…*/”、 C++ “的 //”和 Shell “脚本的 #” 注释语句作为注释。
(二 ) 建立区域数据文件 从 DNS服务的主配置文件我们可以看出, 169boy.com的区域配
置文件为 169boy.com.zone。可以参照以下说明进行配置: $ttl 38400 定义允许客户端缓存来自查询的数据的默认时间,单位是秒。 169boy.com. IN SOA redhat.169boy.com. admin.169boy.com. ( “169boy.com.” “代表区域名,也可以使用符号 @” “来代替。 IN”代表类型是属于 Internet “类(固定的格式不可改变)。 SOA ”是 Start of Authority “(起始授权机构)记录的缩写。 redhat.169boy.com.”是指负责该区域的主服务器域名(请注意在地址末尾加上一个英文的句
“号)。末尾没加句点号 .” 的名称都会被视为本区域内的相对域名。 “如 redhat.169boy.com” “会当成 redhat.169boy.com.169boy.com”
“解析。 admin.169boy.com.”是指负责该区域的管理员的 E-mail地址,由于在 DNS “中使用符号 @” 代表本区域的名称,所以在 E-mail地址
“应使用句点号 .” “代替 @”。 (三 ) . 配置反向域名解析
(四) 建立从区域文件 从区域文件是由 Bind执行区域复制自动生成的,但为了 Bind 有
在 “ /var/named”目录建立文件的权限,我们还要执行以下命令: chown named.named /var/named
建立 /var/named/named.ca : “named.ca” 是一个非常重要的文件,该文件包含了 Internet域名解析根服务器的名字和地址。 Bind 接到客户端主机的查询请求时,如果在 Cache 中找不到相应的数据时会通过根服务器进行逐级查询。“ named.ca” 可以到 ftp://ftp.rs.internic.net/domain/named.root 下载,下载后请将其改名并复制到“ /var/named/”目录下。
(五) 测试 DNS服务 DNS服务配置完毕之后,我们还需要进行以下工作来测试其是否正确架设。
(1) 启动 DNS服务 配置好 DNS服务后,执行以下命令启动 DNS服务: /etc/rc.d/init.d/named start
(2) 配置域名 设置 /etc/resolv.conf 文件中内容如下: domain 169boy.com
nameserver 127.0.0.1
(3) 使用 nslookup命令测试
(六) 域名直接解析和泛域名功能 (1) 域名直接解析 在 Internet 中我们可以直接使用域名(不需要输入如 www 的主机名)访问许
多网站的 Web服务器(如 baidu.com 和 china.com ),即 DNS服务器能直接将域名解析成 IP 地址。实现这个功能并不难,只需要在区域数据文件中加入一条记录,如:
169boy.com. IN A 192.168.9.9 或. IN A 192.168.9.9 理解了句点号的作用就能明白这两条语句其实是一样的。 (2) 泛域名 泛域名是指一个域名下的所有主机和子域名都被解析到同一个 IP 地址上。如
使用命令“ nslookup 169boy.china.com”会发现 DNS服务器能解析 169boy.china.com 这个域名,而且在 china.com 前加上任意主机名 DNS服务器都可以解析,这是因为负责解析 china.com 的 DNS服务器使用了泛域名技术。实现这个功能也不难 ,只要在区域数据文件中加入一条记录,如:
*.169boy.com. IN A 192.168.9.201 或 * IN A 192.168.9.201
六、 FTP服务器的构架
FTP,即 File Transfer Protocol,文件传输协议。它是目前 Internet上最流行的数据传送方法之一。利用 FTP协议,我们可以在 FTP服务器和 FTP客户端之间进行双向数据传输,既可以把数据从 FTP服务器上下载到本地客户端,又可以从客户端上传数据到远程 FTP服务器。
(一) 安装 vsftpd服务器(二) 启动 / 重新启动 /停止 vsftpd服务 从 Red Hat Linux 9.0开始, vsftpd默认只采用 standalone方式启动
vsftpd服务,方法是在终端命令窗口运行以下命令: [root@ahpeng root] /etc/rc.d/init.d/vsftpd start 重新启动 vsftpd服务: [root@ahpeng root] /etc/rc.d/init.d/ vsftpd restart 关闭 vsftpd服务: [root@ahpeng root] /etc/rc.d/init.d/ vsftpd stop
(三) vsftpd 的配置 在 Red Hat Linux 9.0里的 vsftpd共有 3 个配置文件,它们分别是: 1 vsftpd.ftpusers :位于 /etc目录下。它指定了哪些用户账户不能访问
FTP服务器,例如 root 等。 2 vsftpd.user_list :位于 /etc目录下。该文件里的用户账户在默认情况
下也不能访问 FTP服务器,仅当 vsftpd.conf配置文件里启用 userlist_enable=NO 选项时才允许访问。
3 vsftpd.conf :位于 /etc/vsftpd目录下。它是一个文本文件,我们可以用 Kate 、 Vi 等文本编辑工具对它进行修改,以此来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等 FTP服务器的配置。
重要的配置文件选项: (1) 用户登录控制 (2) 用户权限控制 (3) 用户连接和超时选项 idle_session_timeout=600 ,可以设定默认的空闲超时时间,用户超
过这段时间不动作将被服务器踢出。 data_connection_timeout=120,设定默认的数据连接超时时间。 (4) 服务器日志和欢迎信息 dirmessage_enable=YES,允许为目录配置显示信息,显示每个目
录下面的 message_file文件的内容。 ftpd_banner=Welcome to blah FTP service,可以自定义 FTP用户登
录到服务器所看到的欢迎信息。 xferlog_enable=YES,启用记录上传 /下载活动日志功能。 xferlog_file=/var/log/vsftpd.log,可以自定义日志文件的保存路径和
文件名,默认是 /var/log/vsftpd.log。
七、 WEB服务器的构架
Apache是使用范围最广的Web服务器工具套件,这里我们将详细介绍如何在 Red Hat Linux 9.0环境里安装、启动和配置 Apache服务器。
(一) 安装 Apache服务器(二)配置 httpd.conf 文件(三)图形化配置界面 图形化配置直观、简单,足够应付 Apache服务器的日常管理维护
“ → → →工作。我们可以通过单击 主菜单 系统设置 服务器设置 HTTP” “ ” “服务器 菜单项,或者直接在 运行命令 对话框里输入 apacheconf”命
“令并回车,来访问 Apache ”配置 对话框。可以看到该配置对话框共有 4个标签页。
(1) 主标签页 (2) “ 虚拟主机”标签页 (3) “服务器”选项卡 (4) “性能调整”选项卡
八、 EMail服务器的构架
邮件服务器是一个网站所必须的服务,在这里我们可以通过 Red Hat Linux 9.0自带的 Sendmail来架设邮局服务器。
(一)安装 Sendmail(二)启动 / 重新启动 /停止 Sendmail服务 安装 Sendmail服务器以后,最简单的启动方式是在终端命令窗口运行如下命令: [root@ahpeng root]/etc/rc.d/init.d/sendmail start 应该会出现以下的结果,表明邮件服务器已经启动成功: 启动 sendmail : [确定 ] 启动 sm-client: [确定 ](三)配置 Sendmail Sendmail的配置十分复杂。它的配置文件是 sendmail.cf,位于 /etc/mail目录下。由于 sendmail.cf的语法深奥难懂,很少有人会直接去修改该文件来对 Sendmail服务器进行配置。我们一般通过 m4 宏处理程序来生成所需的 sendmail.cf文件。创建的过程中还需要一个模板文件,系统默认在 /etc/mail目录下有一个 sendmail.mc模板文件。我们可以根据简单、直观的 sendmail.mc模板来生成 sendmail.cf文件,而无需直接编辑 sendmail.cf文件。可以直接通过修改 sendmail.mc模板来达到定制sendmail.cf文件的目的。这里介绍创建 sendmail.cf文件的步骤:
(1) 备份原有 sendmail.cf文件 在终端命令窗口运行以下命令:cp /etc/mial/sendmail.cf /etc/mail/sendmail.cf.BAK (2) 生成 sendmail.cf文件 根据 sendmail.mc模板文件产生 sendmail.cf配置文件,并导出到 /etc/mail/目录下:
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf (3) 重启 sendmail服务 [root@ahpeng root] /etc/rc.d/init.d/sendmail restart
(四)为新用户开电子邮件账号 在 Linux里为新用户开设电子邮件账户比较简单,只需在 Linux系统里新增一个用户即可。假设我们添加了一个用户 Peter(密码为 peter),这样该用户就有了一个邮件地址 [email protected](此处的 YourDomain.com用你自己域名代替 )。以上过程也可以在终端命令窗口运行以下命令来实现:
[root@ahpeng root]#adduser peter -p peter
(五)为电子邮件账户设置别名 有一些用户想使用多个电子邮件地址,是不是需要创建多个邮件账号呢?我们
可以使用别名 (alias) 来解决这个问题。 比如说,用户 peter想拥有以下 3 个电子邮件地址: [email protected] 、 dearpeter@ YourDomain.com 、 truepeter@ YourDomain.com 。 我们可以通过以下步骤来实现这样的别名设置: 新增一个账号 peter;然后用 vi 、或者 Kate 等文本编辑器打开 /etc/aliases ,在里面加上两行: dearpeter: peter truepeter: peter 保存该 /etc/aliases退出。
不过,就这样还不能让 Sendmail 接受新增的别名,我们必须在终端命令窗口运行 newaliases命令,以要求 Sendmail 重新读取 /etc/aliases 文件。如果一切无误,应该可以看到类似以下的回应消息:
[root@ahpeng root]# newaliases /etc/aliases: 63 aliases, longest 10 bytes, 625 bytes total 这样,发给 peter 的邮件可以使用 3 个邮件地址,而 peter只需要使用一个电子邮件账号 [email protected] 就可以接收所有寄给以上 3 个地址的电子邮件。
(六)指定邮箱容量限制(七)支持 POP 和 IMAP功能
到现在为止,我们已经可以用 Outlook Express 发送邮件,或者登录服务器使用 mail 、 pine命令收取、管理邮件。但是还不能用 Outlook Express 等客户端从服务器下载邮件,这是因为 Sendmail并不具备 POP3(IMAP) 的功能,所以我们必须自己安装。
1 POP 和 IMAP服务器安装 2 启动 POP 和 IMAP服务 3 要成功启动 POP 和 IMAP服务器,首先要确定这些服务 存在于 /etc
/services 文件,确保以下的服务前面没有加上 #注释 ( 如果有,必须去除注释 ) 。
imap 143/tcp imap2 # Interim Mail Access Proto v2imap 143/udp imap2pop2 109/tcp pop-2 postoffice # POP version 2pop2 109/udp pop-2pop3 110/tcp pop-3 # POP version 3pop3 110/udp pop-3 修改好 /etc/services文件,接下来就要对相应服务配置文件进行定制:( 1)启动 POP3服务:必须修改 /etc/xinetd.d/ipop3 “文件,将其中的 di
sable=yes” “改为 disable=no” ,保存该文件。最后必须重新启动 xinetd程序来读取新的配置文件,使得设定内容生效:
[root@ahpeng root]#/etc/rc.d/init.d/xinetd reload( 2)启动 IMAP服务:必须修改 /etc/xinetd.d/imap “文件,将其中的 dis
able = yes” “改为 disable =no”,保存该文件。最后必须重新启动 xinetd程序来读取新的配置文件,使得设定内容生效:
[root@ahpeng root]#/etc/rc.d/init.d/xinetd reload