Download presentation
Presentation is loading. Please wait.
1
第四章 用Linux构建服务器 一 Linux入门基础 (一). Linux的安装
本书有关Linux章节的内容均是以红帽子RedHat9.0为例来讲述的,其他发行版的Linux可能与此有些细微的差别。红帽子9.0完全安装有三张光盘,我们可以将它单独安装在一个硬盘上,这样比较简单一点,打开计算机进入BIOS设置,设启动为从光盘启动,将红帽子的第一张光盘放入光驱启动计算机,可以进入红帽子的安装程序,当安装语言选择为中文时,在安装的过程中可有中文提示,依提示操作,有一点系统安装经验的人都可以很易地将红帽子装好。 但大部分人可能比较倾向于双系统启动,就是在一个硬盘中安装了windows又安装linux,这需要多系统启动管理软件,可以使用专门的系统启动软件如BootMagic,也可以使用红帽子自带的grub启动软件,我们在装好windows之后,再对硬盘进行处理,空出一段空间不分区,然后再将linux安装到硬盘的空闲空间中。这时便可利用linux的grub启动软件进行多系统启动。 以下是RedHat9.0的全部安装过程:
2
安装前的准备工作(一) 基本的硬件要求: Inter 486 以上的处理器 至少32M内存,推荐64M以上 至少需要1G以上的硬盘空间
VGA显卡 可启动的CDROM 其他设备(如声卡、网卡和Modem等) 安装Linux使用的介质 光驱、软驱(可选)
3
安装前的准备工作(二) 硬盘的分区考虑: 备份重要的数据 调整硬盘的分区,留出足够的空闲空间 安装Linux到主分区或逻辑分区
利用VM Ware软件安装Linux OS 分区工具: Fdisk /PQMagic(5.0)/DM
4
硬盘结构的介绍 mbr 主分区 逻辑分区 扩展分区 446字节 16字节 16字节 16字节 16字节 55AAH
Mbr:主引导扇区,共512个字节,其中446个字节在windows中用于存储错误代码,而在linux中用于存储引导程序,16个字节用于存储一个主分区的信息,55AA表示跳转2个字节。即(446+16*4+2=512) 注意:所以在安装多系统时要注意安装顺序
5
安装方式 安装方式: Linux有多种安装方式包括: 启动安装程序: 硬盘安装 网络安装(NFS、HTTP、FTP) CD-ROM安装
用VM Ware等虚拟机安装 启动安装程序: 使用光盘引导,安装时应在BIOS设置启动顺序,把CD-ROM作为第一启动搜索选项。光盘安装是最直接、最快捷的方法。 使用软盘引导,安装时应在BIOS设置启动顺序,把软盘作为第一启动搜索选项。软盘引导应事先制作安装引导软盘。
6
开始安装 linux安装程序正在启动……
7
安装步骤(一) (1)安装语言选择
8
虚拟控制台的功能 虚拟控制台 功能键组合 说明 1 Ctrl+Alt+F1 安装对话信息
虚拟控制台 功能键组合 说明 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信息
9
安装步骤(二) (2)键盘配置
10
安装步骤(三) (3)鼠标配置
11
安装步骤(四) (4)选择全新安装还是升级安装
12
安装步骤(五) (5) 安装类型
13
安装步骤(六) (6)磁盘分区设置
14
安装步骤(七) (7)为系统分区
15
Linux分区划分方法 一般linux分区有(/、/boot、swap) 交换分区:主要用于数据交换,可以划 内存大小的1~2倍(swap)
根分区:主要用于存储数据(/) 引导分区:主要用于系统的引导(/boot) 一般划100M~200M即可 其它分区可以根椐不同的情况进行划分 Linux分区的划分方法 先划分引导分区、交换分区 最后再划分根分区
16
安装步骤(八) (8)添加分区
17
安装步骤(九) (9)引导装载程序配置
18
安装步骤(十) (10)网络配置
19
安装步骤(十一) (11)防火墙配置
20
安装步骤(十二) (12)语言支持的选择
21
安装步骤(十三) (13)时区配置
22
安装步骤(十四) (14)设置根口令
23
安装步骤(十五) (15)选择软件包组
24
安装步骤(十六) (16)安装软件包
25
安装步骤(十七) (17)创建引导盘
26
安装步骤(十八) (18)视频卡配置
27
安装步骤(十九) (19)配置显示器
28
安装步骤(二十) (20)定制配置
29
安装步骤(二十一) (21) Red Hat Linux9.0的登录
30
卸载步骤1:进入Windows删除linux分区重启或直接用98启动盘 启动,用DM/PQ删除linux分区
卸载步骤2:在dos命令提示符上输入 fdisk /mbr 卸载步骤3:重启,完成
31
(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窗口管理器一起工作。
32
(2)KDE桌面环境 Linux最新的X 11窗口管理器之一是K桌面环境( K D E )。但是,K D E不仅仅是窗口管理器—它还是是一个完整的桌面环境,包括150多个客户程序和一个统一的界面,和GNOME中的非常相似。K D E支持在现代桌面环境中的用户常要的许多功能 。
33
(3) 添加/删除应用程序 程序组件的安装,整个RedHat9.0完全安装大约需要5G的空间,在初次安装时没有安装的软件包可以在系统安装成功以后通过以下步骤来安装或卸下所选择的软件包。 首先进入XWindows,在系统的主菜单上选择“系统设置”->“添加/删除应用程序”,因为是特权操作,所以需要在输入root密码之后才能作进一步的操作,如图4-1所示。点击后面的细节按钮,选择所需要的软件后再照提示插入相应的安装光盘即可,图4-1 添加/删除程序。
34
图4-1 添加/删除程序
35
(三) 文件系统与管理 Minix:最古老、最可靠 Ext:ext2的老版本 Ext2:当前最通用的Linux文件系统
Ext3:ext2+log是linux通用的文件系统 Reiserfs:一种新型文件系统,支持海量磁盘和磁盘阵列,并有很高的搜索速度和效率 Smb:是一种支持Windows for Workgroups、Windows NT和Lan Manager的基于SMB协议的网络文件系统。 Msdos:与MSDOS、OS/2等FAT文件系统兼容 Umsdos:Linux下的扩展msdos文件系统 ISO9660:CD-ROM NFS:网络文件系统 HPFS:OS/2文件系统 proc:存放在内存的虚拟文件系统
36
linux命令列通常由好几个字串组成, 中间用空白或空格键分开。如下所示:
command options arguments(或parameters) 命令 选项 参数 例如: rm -rf /home/ols3
37
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 : 显示权限变更的详细资料。
38
-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
39
2 ls命令:显示指定工作目录下之内容 使用格式 : ls [Options] [name...]
说明 : 显示指定工作目录下的内容(列出目前工作目录下所有的文件和子目录)。 -a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出) -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等信息详细列出 -r 将文件以相反次序显示(原定依英文字母次序) -t 将文件依建立时间之先后次序列出 举例: 列出目前工作目录下所有名称是 s 开头的文件,愈新的排愈后面 : ls -ltr s* 将 /bin 目录以下所有目录及文件详细资料列出 : ls -lR /bin
40
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 *
41
4 rm删除命令 使用格式:rm [options] name... 说明:删除文件及目录。 -i 删除前逐一询问确认。
-f 即使原文件属性设为唯读,亦直接删除,无需逐一确认。 -r 将目录及以下之文件亦逐一删除。 举例: (1)删除所有C语言程式档;删除前逐一询问确认 : rm -i *.c (2)将 Finished 子目录及子目录中所有文件删除 : rm -r Finished
42
5 mv文件移动/改名命令 mv [options] source dest
mv [options] source... directory 说明:将一个文件移至另一文件,或将数个文件移至另一目录。 参数:-i 若目的地已有同名文件,则先询问是否覆盖旧档。 举例: (1)将文件 aaa 更名为 bbb : mv aaa bbb (2)将所有的C语言程式移至 Finished 子目录中 : mv -i *.c Finished
43
(五)磁盘与内存管理 磁盘与内存管理是操作系统的一项重要的工作,Linux提供了众多的命令帮助我们完成有关的工作。
安装L i n u x操作系统的时候,你把它安装到了某个分区上面,而这个分区是由某个特定的设备名(如/ d e v / h d a 1、/ d e v / s d b 1等)来表示的。我希望把分区设置得足够大到可以满足目前和将来的需要。 但是怎样才能检查并知道磁盘上还剩下多大的空间,或者换句话说,你又有多大的硬盘空间呢?这些都需要我们利用磁盘管理命令来完成相应的操作。
44
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卸载。
45
df会收集和整理当前已经挂装的全部各种文件系统的一些重要的统计数据。d f命令使用起来很简单,如下所示:
2 目录文件摘要命令du du能够方便地汇总出磁盘的使用情况,它可以报告出每个子目录或者某个指定路径的空间占用量。 3 磁盘摘要命令df df会收集和整理当前已经挂装的全部各种文件系统的一些重要的统计数据。d f命令使用起来很简单,如下所示: # df
46
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 (2)将 pid 为 456 的进程重启 (restart) : kill -HUP 456 如果需要迅速收回内存,作为不得已的情况下,可以使用k i l l命令来终止程序 的运行。如果想k i l l掉某个特定的程序,应该首先使用p s命令列出当前正在执行中的进程的清单,然后再使用k i l l命令把其中的某一个或者全部都终止掉。
47
(六) 用户与组管理 作为系统管理员,一个主要的任务就是管理系统上的用户。这些工作包括为新用户建立帐号、分配用户子目录、为用户指定一个初始的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
48
2 passwd命令改变口令字 如果想要增加一个口令字,敲入p a s s w d命令,后面再跟上那个新用户名:
建立了新的用户之后,必须使用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文件中去。这时此用户就能使用新的口令了。
49
3 Usermod 命令修改用户信息 命令格式:usermod [选项] [用户名] 常用选项: -d:更新使用者新的登录目录 -s:指定新登录的Shell 举例: usermod –d /home/user1 –s /bin/bash user2 将用户user2的主目录路径设置在/home/user1,登录的Shell设置为/bin/bash 4 groupadd命令新建组群 命令格式:groupadd 组名 说明:新增组账号的groupadd命令使用很容易,只要直接输入命令以及组名称即可,若要指定组识别码(GID),可以使用“-g”参数,如果没有指定任何参数,系统会自行由编号500开始依次分派给新增的组使用,而在500之前的编号则保留给系统服务的组账号使用。
50
5 userdel命令删除用户 命令格式:userdel [选项] 用户名 常用选项有: -r:将用户目录下的文档一并删除 6 groupdel命令删除组群 命令格式:groupdel 组名 7 su命令用户间切换 命令格式:su [用户名] su命令的常见用法是变成根用户,如果发出不带用户名的su命令,则系统提示输入根口令,输入后则可切换为根用户,如果登录为根用户,则可以用su命令成为系统上任何用户而不需要口令。 8 who查看当前在线用户 命令格式:who [选项] 用于查看当前在线上的用户情况,常用的选项: -a:显示所有用户的所有信息 -m:只显示当前用户名 -u:在登录时间后显示该用户最后一次对系统进行操作距今的时间
51
二、 网络基本管理 (一)与网络相关的配置文件 1. 主机地址设置文件/etc/hosts
虽然以IP地址可以很准确地辨别每一台主机,但是也产生了记忆地址困难的问题,如果采用一些一般人易记的名称,则就可以降低出错的的机会,于是就产生了利用一种中介机制来进行IP地址与字母名称之间的转换(解析)的办法。 进行地址转换的方法有两种,其一是使用DNS,其二是使用主机名文件/etc/hosts。使用此文件比DNS更为简单快捷,/etc/hosts文件进行名称解析的步骤如下: (1)客户端在终端窗口或是浏览器等程序中输入目标主机名称后,系统会自动到/etc/hosts文件查询是否有目标主机的记录。 (2)若是在/etc/hosts文件中包含目标主机的记录,则可找出该主机的IP地址。 (3)工作站利用找出的主机IP地址,直接对此主机进行通信。
52
下面是一个/etc/hosts文件的举例:
# Do not remove the following line, or various programs # that require network functionality will fail. localhost.localdomain localhost #缺省安装 ns1.pyp.edu.cn #用户安装 ns2.pyp.edu.cn #用户安装
53
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
54
3. xinetd配置文件/etc/xinetd.config
xinetd是Linux中一个非常重要的看守进程,它负责接受来自Internet客户端的请求,并且将客户端的请求传送至正确的服务程序,这样处理的优点在于由xinetd负责监听来自网络上的要求信息,而服务程序因为有xinetd帮助监听来自客户端的请求,所以他们不需要在每次启动时就加载大量的程序,这可避免系统资源的浪费。 在每次修改xinetd或是任何一个看守进程的服务设置后,记得要重新启动xinetd才可使设置生效。 启动命令如下: /etc/rc.d/init.d/xinetd restart
55
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]]
56
5. 网络状态设置文件/etc/sysconfig/network
/etc/sysconfig/network是tcp/ip网络的重要设置文件,它可以设置系统默认的网络参数,如下例如示: NETWORKING=yes # 表示网络功能开启 HOSTNAME=localhost.localdomain # 主机名 GATEWAY= # 本机的网关 它还可以包含以下参数: FORWARD_IPV4:设置此项服务器是否允许转送来自客户端的IPv4(IP Version 4)封包,若允许转送应加入FORWARD_IPV4=true DOMAINNAME: 此服务器所属的域名称 GATEWAYDEV: 连接网关的设备,通常设eth0表示以网卡当作网络连接设备,若是拨号用户则设为ppp0
57
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服务器,则可以使用 或是主机上的其他IP地址来表示 。
58
以下是一个DNS服务器的举例: nameserver 0.0.0.0 nameserver 202.116.135.235
(2) domain:指定主机所在的域名称 (3) search:在此处可以使用空格键来分隔多个域名称,而它的作用是在进行名称解析工作时,系统会自动将此处设置的域名称,自动加在欲查询的主机名称之后,可以加入最多6个域名称,但总长度不可超过256个字符。例如在此设置3个不同的域名称: name1.com name2.com name3.com, 当要查询的名称为host1时,则系统会依次查询host1.name1.com,host1.name2.com,host1.name3.com
59
(二) 设置和调节网络状态 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 选项也将强制它显示所有非活动的接口。
60
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标记,还会显示出等待连接(也就是说处于监听模式)的套接字。这样就可以得到一份服务器清单,当前所有运行于系统中的所有服务器都会列入其中。
61
5. 显示封包经过历程traceroute命令
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回应。最后,它得到数据包从源主机到目标主机的路由信息。
62
三、与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上的一个标准协议。
63
因此,为了让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之前就提供了用户磁盘空间限制的功能。
64
(二)安装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”命令。
65
(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/WinShare”即可; c. 再在文件管理器里打开/mnt/WinShare目录可以看到共享目录的内容!要卸载该映射目录,可以使用umount命令。
66
(4) 用Nautilus访问Windows主机
借助Gnome桌面下的文件管理器Nautilus,我们可以用图形界面来访问Windows主机,这里要注意的是Nautilus只是提供访问Windows主机的图形界面,具体的底层操作还是借助于Samba客户端来完成。 在Gnome桌面环境下,单击“主菜单→网络服务器”菜单项,即可用Nautilus文件管理器查看工作组列表。双击工作组名称,即可看到其下的Windows主机。 双击其中的某台Windows主机图标,即可看到该主机的共享文件夹,可以看到这和Windows下的网络邻居几乎一样。由于Nautilus本身就是Red Hat Linux的文件管理器,所以我们可以任意往Windows共享目录里拷贝文件、删除文件、创建目录等等(对于Windows 2000/XP主机还需要考虑该共享资源的权限设置)。
67
(四) 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服务器配置对话框。
68
首先对Samba服务器的基本设置和安全选项进行配置,单击配置对话框上的“首选项→服务器设置”菜单项,即可打开服务器设置对话框。
基本设置:在对话框的“基本”标签页,我们可以指定Linux主机所在的工作组名称,需要注意的是,此处的工作组名称不一定非得与Windows主机所在的工作组名称一致。 安全设置:然后进行Samba服务器安全设置,这里一共有4个选项。 (1)验证模式:代表如果Windows主机不是位于NT域里,此处应该选择“共享”验证模式,这样只有在连接Samba服务器上的指定共享时才要求输入用户名、密码; (2)验证服务器:代表对于“共享”验证模式,无需启用此项设置;“加密口令”选项应该选择“是”,这样可以防止黑客用嗅探器截获密码明文;
69
(3) 来宾账号: 代表当来宾用户要登录入 Samba 服务器时,他们必须被映射到服务器上的某个有效用户。选择系统上的现存用户名之一作为来宾Samba账号。当用户使用来宾账号登录入 Samba 服务器,他们拥有和这个用户相同的特权。 添加共享目录:单击Samba配置对话框工具栏上的“增加”按钮。在打开的对话框中的“基本”标签页上,指定(共享)目录为某个存在的目录,例如可以指定/tmp,再指定该目录的基本权限是只读还是读/写。在“访问”标签页上,可以指定允许所有用户访问、或者只允许某些用户访问。 (4)启动Samba服务器 打开终端命令窗口,输入“/sbin/service smb start”命令, 即可出现以下提示信息,表示Samba服务已经启动。 # /sbin/service smb start 启动SMB 服务 [确定] 启动NMB 服务 [确定] 接下来在Windows里打开“网络邻居”,就可以看到我们刚才设置的Samba服务器了!
70
四、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配置文件,我们需要手动生成。为了简化操作,我们借助配置文件的范本来完成。
71
(四)测试DHCP服务 (五) DHCP的管理
编辑好配置文件dhcpd.conf后,执行命令“/etc/rc.d/init.d/dhcpd start”启动DHCP服务。在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地址的租用情况。
72
五、DNS服务器的构架 1 建立主配置文件/etc/named.conf (一) DNS服务器的安装与配置
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";
73
(1)定义域169boy. com:其类型为“master”(即主区域),主区域中的DNS数据保存在区域数据中。区域数据文件为169boy
(1)定义域169boy.com:其类型为“master”(即主区域),主区域中的DNS数据保存在区域数据中。区域数据文件为169boy.com.zone。 zone " in-addr.arpa" { type master; file " arpa"; }; (2)定义反向解析域“ ”:它负责将IP地址解析成对应的域名,要注意的是“.in-addr.arpa”是反向解析域的固定格式,不能改变。设定反向解析域时,需要将子网号反过来写,如子网“ /24”完整的反向解析域名为“ in- addr.arpa”,子网“ /16”完整的反向解析域名为“ in-addr.arpa”。type master说明其区域类型为主区域。file " arpa"定义保存区域数据的文件名。 zone "dzxx.edu.cn" { type slave; file "dzxx.edu.cn.zone"; masters { ;};
74
(3)定义域“dzxx.edu.cn”:其域类型为slave(即从区域)。从区域中的DNS数据是通过复制主区域中的数据生成,设置从区域的目的是为了加快查询速度、提供容错和和均衡负载等。另外,还需要通过master指令指定主区域服务器的地址。Bind服务启动时会自动连接主区域服务器并复制其中的 DNS数据。 zone " in-addr.arpa" { type slave; file " arpa"; masters { ;}; }; 从该例子不难看出named.conf中语句必须以分号结尾;使用花括号将容器指令(如options和zone)中的语句和选项包含起来;可以使用C语言中的“/*…*/”、C++的“//”和Shell脚本的“#” 注释语句作为注释。
75
(二) 建立区域数据文件 (三) . 配置反向域名解析
(二) 建立区域数据文件 从DNS服务的主配置文件我们可以看出,169boy.com的区域配置 文件为169boy.com.zone。可以参照以下说明进行配置:$ttl 38400 定义允许客户端缓存来自查询的数据的默认时间,单位是秒。 169boy.com. IN SOA redhat.169boy.com. admin.169boy.com. ( “169boy.com.” ”是Start of Authority(起始授权机构)记录的缩写。“redhat.169boy.com.”是指负责该区域的主服务器域名(请注意在地址末尾加上一个英文的句号)。末尾没加句点号“.”的名称都会被视为本区域内的相对域名。 如“redhat.169boy.com”会当成 “redhat.169boy.com.169boy.com”解析。 (三) . 配置反向域名解析
76
从区域文件是由Bind执行区域复制自动生成的,但为了Bind有在 “/var/named”目录建立文件的权限,我们还要执行以下命令:
(四) 建立从区域文件 从区域文件是由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/”目录下。
77
DNS服务配置完毕之后,我们还需要进行以下工作来测试其是否正确架设。
配置好DNS服务后,执行以下命令启动DNS服务: /etc/rc.d/init.d/named start (2) 配置域名 设置/etc/resolv.conf文件中内容如下: domain 169boy.com nameserver (3) 使用nslookup命令测试
78
(六) 域名直接解析和泛域名功能 (1) 域名直接解析
在Internet中我们可以直接使用域名(不需要输入如www的主机名)访问许多网站的Web服务器(如baidu.com和china.com),即DNS服务器能直接将域名解析成IP地址。实现这个功能并不难,只需要在区域数据文件中加入一条记录,如: 169boy.com. IN A 或 IN A 理解了句点号的作用就能明白这两条语句其实是一样的。 (2) 泛域名 泛域名是指一个域名下的所有主机和子域名都被解析到同一个IP地址上。如使用命令“nslookup 169boy.china.com”会发现DNS服务器能解析169boy.china.com这个域名,而且在china.com前加上任意主机名 DNS服务器都可以解析,这是因为负责解析china.com的DNS服务器使用了泛域名技术。实现这个功能也不难,只要在区域数据文件中加入一条记录,如: *.169boy.com. IN A * IN A
79
六、FTP服务器的构架 FTP,即File Transfer Protocol,文件传输协议。它是目前Internet上最流行的数据传送方法之一。利用FTP协议,我们可以在FTP服务器和FTP客户端之间进行双向数据传输,既可以把数据从FTP服务器上下载到本地客户端,又可以从客户端上传数据到远程FTP服务器。 (一) 安装vsftpd服务器 (二) 启动/重新启动/停止vsftpd服务 从Red Hat Linux 9.0开始,vsftpd默认只采用standalone方式启动vsftpd服务,方法是在终端命令窗口运行以下命令: root] /etc/rc.d/init.d/vsftpd start 重新启动vsftpd服务: root] /etc/rc.d/init.d/ vsftpd restart 关闭vsftpd服务: root] /etc/rc.d/init.d/ vsftpd stop
80
在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服务器的配置。
81
重要的配置文件选项: (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。
82
七、 WEB服务器的构架 Apache是使用范围最广的Web服务器工具套件,这里我们将详细介绍如何在Red Hat Linux 9.0环境里安装、启动和配置Apache服务器。 (一) 安装Apache服务器 (二)配置httpd.conf文件 (三)图形化配置界面 图形化配置直观、简单,足够应付Apache服务器的日常管理维护工作。我们可以通过单击“主菜单→系统设置 →服务器设置→HTTP服务器”菜单项,或者直接在“运行命令”对话框里输入“apacheconf”命令并回车,来访问“Apache配置”对话框。可以看到该配置对话框共有4个标签页。 (1) 主标签页 (2) “虚拟主机”标签页 (3) “服务器”选项卡 (4) “性能调整”选项卡
83
八、 服务器的构架 邮件服务器是一个网站所必须的服务,在这里我们可以通过Red Hat Linux 9.0自带的Sendmail来架设邮局服务器。 (一)安装Sendmail (二)启动/重新启动/停止Sendmail服务 安装Sendmail服务器以后,最简单的启动方式是在终端命令窗口运行如下命令: 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文件的步骤:
84
(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] /etc/rc.d/init.d/sendmail restart (四)为新用户开电子邮件账号 root]#adduser peter -p peter
85
(五)为电子邮件账户设置别名 有一些用户想使用多个电子邮件地址,是不是需要创建多个邮件账号呢?我们可以使用别名(alias)来解决这个问题。 比如说,用户peter想拥有以下3个电子邮件地址: YourDomain.com、 YourDomain.com。 我们可以通过以下步骤来实现这样的别名设置: 新增一个账号peter;然后用vi、或者Kate等文本编辑器打开/etc/aliases,在里面加上两行:dearpeter: peter truepeter: peter 保存该/etc/aliases退出。 不过,就这样还不能让Sendmail接受新增的别名,我们必须在终端命令窗口运行newaliases命令,以要求Sendmail重新读取/etc/aliases文件。如果一切无误,应该可以看到类似以下的回应消息: root]# newaliases /etc/aliases: 63 aliases, longest 10 bytes, 625 bytes total
86
(六)指定邮箱容量限制 (七)支持POP和IMAP功能 到现在为止,我们已经可以用Outlook Express发送邮件,或者登录服务器使用mail、pine命令收取、管理邮件。但是还不能用Outlook Express等客户端从服务器下载邮件,这是因为Sendmail并不具备POP3(IMAP)的功能,所以我们必须自己安装。 1 POP和IMAP服务器安装 2 启动POP和IMAP服务 3 要成功启动POP和IMAP服务器,首先要确定这些服务 存在于/etc/services文件,确保以下的服务前面没有加上#注释(如果有,必须去除注释)。
87
imap 143/tcp imap2 # Interim Mail Access Proto v2
imap 143/udp imap2 pop2 109/tcp pop-2 postoffice # POP version 2 pop2 109/udp pop-2 pop3 110/tcp pop-3 # POP version 3 pop3 110/udp pop-3 修改好/etc/services文件,接下来就要对相应服务配置文件进行定制: (1)启动POP3服务:必须修改/etc/xinetd.d/ipop3文件,将其中的“disable=yes”改为“disable=no”,保存该文件。最后必须重新启动 xinetd程序来读取新的配置文件,使得设定内容生效: root]#/etc/rc.d/init.d/xinetd reload (2)启动IMAP服务:必须修改/etc/xinetd.d/imap文件,将其中的“disable = yes”改为“disable =no”,保存该文件。最后必须重新启动xinetd程序来读取新的配置文件,使得设定内容生效:
88
练习题 1. 简述建立一个用户并加上密码分配到合适的组群中的过程? 2. traceroute的工作过程与用途?
3. 当一个程序运行出错而被挂起后,如何将它从内存中清除? 4. 什么是samba协议,它的作用是什么? 5. 列举一些常用的windows软件的linux替代软件? 6. 当某个站点不能被访问时如何使用traceroute命令查找问题所在? 7. 什么是DNS,简要介绍域名解析的顺序与过程? 8. 简述DHCP的配置过程? 9. 简述FTP服务器的构架? 10. 简述WEB服务器的构架?
Similar presentations