Ub操作基础系统及教程 6_第1页
Ub操作基础系统及教程 6_第2页
Ub操作基础系统及教程 6_第3页
Ub操作基础系统及教程 6_第4页
Ub操作基础系统及教程 6_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第11章

搭建网络服务

Linux操作系统的一个主要应用就是作为服务器,为其他电脑提供各种应用,本章将为读者介绍Linux系统中主要服务器的搭建步骤。本章将介绍:● NFS服务器● Samba服务器● Apache服务器11.1服务器基础知识

在讲解如何搭建服务器之前,读者必须了解服务器的基本知识,本节将为读者介绍Linux的启动过程和服务的相关知识。11.1.1Linux启动的基本步骤

当我们按下PC电源开关的那一刻,PC引导的第一步是执行存储在ROM(只读存储器)中的代码,这种引导代码被称为基本输入输出系统(BasicInput/OuputSystem,BIOS)。BIOS知道和引导有关的硬件设备的信息,包括磁盘、键盘、串行口、并行口等,并根据设置选择从哪一个设备引导。

确定引导设备后,系统首先加载该设备开头的512个字节,包含这些字节的段被称作主引导记录(MasterBootRecord,MBR),它的主要任务是确定从什么地方加载下一个引导程序,下一个引导程序被称为“引导加载器(BootLoader)”。引导加载器负责加载操作系统的内核,Grub和LILO就是Linux上最著名的两个引导加载器。11.1.1Linux启动的基本步骤

接下来发生的事情就随操作系统的不同而不同了。对于Linux而言,基本的引导步骤包括以下6个阶段。(1)加载并初始化Linux内核。(2)设置硬件设备。(3)内核创建自发进程。(4)由用户决定是否进入手工引导模式。(5)执行系统启动脚本(systemd进程)。(6)进入多用户模式。

可见,Linux内核总是第一个被加载的东西。内核执行包括硬件检测在内的一切基础操作,然后创建几个进程。这些内核级别的进程被称作“自发”进程。本章(或许也是整个系统)最重要的systemd进程就是在这个阶段创建的。

事情到这里还没有完。内核创建的进程只能执行最基本的硬件操作和调度,而那些执行用户级操作的进程(如接受登录)还没有创建。这些任务最后都被内核“下放”给systemd进程来完成。因此,systemd进程是系统上除了几个内核自发进程之外所有进程的祖先。11.1.2Systemd和Target

Systemd是目前Linux系统上主要的系统守护进程管理工具,取代了传统的init进程,成为系统的第一个进程,其他进程都是它的子进程。SystemdTarget类似传统的init运行级别(RunLevel)。它通过设置不同的target来定义不同的系统运行状态,并根据需要启动或停止相应的服务。Target和传统的init运行级别(RunLevel)类似。不同的是,RunLevel是互斥的,不可能同时启动多个RunLevel,但可以同时启动多个Target。Linux的Systemd进程总共有7个Target,与init进程的7个级别一一对应。表11.1显示了这些Target和运行级及其对应的系统状态。init运

级Systemd目标系统状态0poweroff.target系统关闭1或Srescue.target单用户模式2multi-user.target功能受限的多用户模式3multi-user.target完整的多用户模式4multi-user.target一般不用,留作用户自己定义5graphical.target多用户模式,运行X窗口系统6reboot.target重新启动11.1.2Systemd和Target

Systemd与init进程的主要区别如下:(1)默认的RunLevel是在/etc/inittab文件设置,现在被Target取代。Target的位置是/usr/lib/systemd/system/default.target,通常符号链接到graphical.target(图形界面)或者multi-user.target(多用户命令行)。(2)启动脚本的位置:以前是/etc/init.d目录,符号链接到不同的RunLevel目录,如/etc/rc3.d、/etc/rc5.d等。现在存放在/usr/lib/systemd/system和/etc/systemd/system目录。(3)配置文件的位置:以前init进程的配置文件是/etc/inittab,各种服务的配置文件存放在/etc/sysconfig目录。现在的配置文件主要存放在/usr/lib/systemd目录,在/etc/systemd/system目录里面的修改可以覆盖原始设置。

目前绝大部分的Linux发行版本默认都启动计算机至运行级5,也就是带有X窗口系统的多用户模式。服务器通常不需要运行X,因此常常被设置进入运行级3。运行级4被保留,方便管理员根据实际情况定义特殊的系统状态。

单用户模式用于系统救援的。在这个运行级下,所有的多用户进程都被关闭,系统保留最小软件组合。引导系统进入单用户模式后,系统会要求用户以root身份登录到系统中。11.1.3服务器启动脚本

目前,大部分Linux操作系统都使用Systemd作为默认的系统和服务管理器。Systemd是一个系统和服务管理器,可以自动化和简化Linux系统的管理和维护,包括启动、停止和管理后台服务。SystemdService是一种用于描述和配置服务的文件格式,通常使用.service扩展名。它可以告诉Systemd如何启动、停止、重启和管理服务。Service(系统服务)Unit是Unit组中特殊的一种,用于自定义添加系统服务。如果要添加系统服务,则需要将服务脚本保存为.service扩展名,并将其放置在/etc/systemd/system/目录下。然后,运行systemctldaemon-reload命令加载该服务。如果是Ubuntu系统自带的服务,默认服务脚本保存在/usr/lib/systemd/system目录。11.1.4管理守护进程

守护进程(daemon)是一类在后台运行的特殊进程,用于执行特定的系统任务。很多守护进程在系统引导的时候启动,并且一直运行直到系统关闭。另一些只在需要的时候才启动,完成任务后就自动结束。举例来说,/usr/sbin/sshd(注意,不是/etc/init.d/sshd)就是SSH服务的守护进程。这个进程启动后会一直运行,在后台监听22号端口,等待并响应来自客户机的SSH连接请求。systemd是系统中第一个启动,也是最重要的守护进程。systemd会持续工作,保证启动和登录的顺利进行,并且适时地“杀死”那些没有响应的进程。只要系统在运行,就一定能看到systemd守护进程。11.1.5服务器守护进程的运行方式

运行一个服务的办法是让它的守护进程在引导时启动,然后一直运行、监听并处理来自客户机的请求。这样大量消耗系统资源,因为这个服务一天内可能没被管理员用过几次。inetd和xinetd可以解决这种矛盾。像FTP这类平时常用的服务可以配置为使用inetd,这样可以把监听端口的任务交给inetd。当出现一条FTP连接时,inetd就启动FTP服务的守护进程。同样,当管理员有事找SSH的时候,inetd就把sshd唤醒。inetd是从Unix系统移植到Linux上的。目前绝大多数Linux已经使用了更优秀的xinetd,它具备以下优点。更多的安全特性。针对拒绝服务攻击的更好的解决方案。更强大的日志管理功能。更灵活清晰的配置语法。11.1.5服务器守护进程的运行方式

服务器守护进程的运行方式有两种:一种是随系统启动而启动,并持续在后台监听;另一种是在需要的时候启动,完成任务后把监听任务交给inetd/xinetd。通常,前者被称为standalone模式,后者被称为inetd/xinetd模式。

对大型Web站点而言,不应该使用inetd/xinetd模式运行Apache(当前最流行的Web服务器软件),因为这些服务器访问量巨大。每分每秒都会有新的连接请求,让inetd/xinetd如此频繁地启动和关闭Apache守护进程,效果将会一团糟。

对于桌面版本的Linux而言,inetd和xinetd通常都需要手动安装。但是,目前大部分Linux系统已经不提供inetd的安装包。所以,后面将主要介绍xinetd的配置。11.1.6配置xinetdxinetd守护进程依赖于/etc/xinetd.conf的配置,用户应该为每个服务单独开辟一个文件,存放在/etc/xinetd.d目录下。11.1.7演示:通过xinetd启动SSH服务本节将带领读者配置SSH服务的xinetd实现,主要有下面这几步。(1)修改(增加)配置文件。(2)停用该服务的守护进程。(3)重启xinetd使配置生效。(4)如果需要,从相应的/usr/lib/systemd/system目录中移除该服务的启动脚本。11.2NFS服务器

在Windows中有映射网络驱动器的功能,而在Linux系统中相对应的就是NFS服务,本节向读者介绍搭建NFS服务的方法。11.2.1NFS服务器简介

NFS是网络文件系统(NetworkFileSystem)的简称,用于在计算机间共享文件系统。通过NFS可以让远程主机的文件系统看起来就像是在本地一样。这个由Sun公司于1985年推出的协议产品如今已被广泛采用,几乎(这个词甚至可以舍去)所有的Linux发行版都支持NFS。NFS基于服务器-客户机架构,本章将着重讨论NFS服务器的安装和配置。NFS只能用于Unix类主机间的文件共享。11.2.2NFS服务器动手实践

NFS服务器的基本功能是向外界不加限制的导出一个目录。下面详细介绍和NFS配置相关的完整信息。1.安装NFS服务器2.简易配置3.测试NFS服务器11.2.3配置服务器

本节主要介绍NFS服务器的配置和管理。和其他Linux服务一样,NFS使用一个配置文件来完成配置工作。NFS服务器的配置文件是/etc/exports。当NFS服务器安装完成后,这个文件应该是“空白”,或者包含了一些指导用户设置的注释。11.2.4启动与停止

安装完NFS服务器后,系统会自动把它们设置为随系统启动。如果NFS的确没有启动起来,表11.5给出了不同发行版上NFS服务器的启动脚本。

表11.5不同Linux发行版上的NFS启动脚本Linux发行版启动脚本的路径Debian和Ubuntu/usr/lib/systemd/system/nfs-server.serviceRedHat和Fedora/usr/lib/systemd/system/nfs-server.serviceopenSuSe/usr/lib/systemd/system/nfs-server.service11.3Samba服务器

如果要在Windows和Linux系统之间共享文件,就要使用Samba服务,本节向读者介绍搭建Samba服务的方法。11.3.1Samba服务器动手实践

当前主流Linux发行版已经都包含了Samba服务器的安装包,以UbuntuLinux为例,只要简单地执行下面这条命令。

$sudoapt-getinstallsamba-commonsamba

和其他大部分服务器一样,Samba使用一个文本文件完成服务器的所有配置。这个文件叫作smb.conf,位于/etc或者/etc/samba目录下。11.3.2安装Samba服务器

Samba服务器的完整源代码可以从上下载,下载到的文件类似“samba-latest.tar.gz”。找一个合适的目录,解压该文件。11.3.3配置服务器

Samba的配置文件看上去有点复杂,有很多重叠的关键字,但其实配置并不困难。本节将介绍如何配置一台实用和可靠的Samba服务器。1.关于配置文件2.设置全局域3.设置匿名共享资源4.开启Samba用户5.配合用户权限6.孤立用户的共享目录7.安全性方面的几点建议11.3.4启动与停止Samba服务器的启动和关闭没有什么特殊的地方。但是,Samba服务器的大部分功能是由两个守护进程实现的。smbd负责提供文件和打印服务,以及身份验证功能,nmbd负责进行主机名字解析。所以,这里分别需要启动smbd和nmbd两个进程。默认情况下,Samba的启动脚本分别是/usr/lib/systemd/system/smbd.service和/usr/lib/systemd/system/nmbd.service,通过下面这条命令启动Samba服务器。$sudosystemctlstartsmbd$sudosystemctlstartnmbd

类似的,传递stop参数停止Samba服务器,restart参数是stop和start的组合。11.4Apache服务器

如果要在Linux系统中组建网站,Apache服务器就是最好的选择,本节向读者介绍搭建Apache服务的方法。11.4.1Apache服务器简介

万维网(WorldWideWeb,WWW)的出现让互联网真正走进了普通人的生活,上网冲浪只是轻点鼠标这样简单。HTTP(超文本传输协议)是让WWW最终工作起来的协议,虽然有多种不用的HTTP服务器,但Apache或许是其中“最好”的。Apache这个开源软件已经占据了HTTP服务器市场超过60%的份额,并以其灵活性和高性能在业界享有盛誉。11.4.2Apache服务器动手实践

Apache已经包含在几乎所有的Linux发行版的安装镜像文件中了。如果在安装Linux时就选择了这个软件包,那么现在Apache已经安装在系统中了。使用whereis命令可以查看Apache是否存在,这是笔者的系统显示信息:

$whereisapache2apache2:/usr/sbin/apache2/etc/apache2/usr/lib/apache2/usr/lib64/apache2/usr/share/apache2/usr/share/man/man8/apache2.8.gz

如果Apache还没有被安装,那么可以使用发行版自带的软件包管理工具(如Ubuntu的新立得软件包管理器)从安装源安装。完成安装后,Apache服务器会自动运行。打开浏览器访问http://localhost/,应该能看到Apache2的默认页面,11.4.3安装Apache服务器

HTTP协议是一种简单的客户机/服务器协议。在服务器端,有一个守护进程在80端口监听,处理客户机(通常是类似于Firefox、IE这样的浏览器)的请求。客户机向服务器请求位于某个特定URL的内容,服务器则用对应的数据内容回复。如果发生了错误(如请求的内容不存在)那么服务器会返回特定的错误信息(如熟悉的404NotFound)。

浏览器向用户隐藏了其和服务器程序通信的内容。为了搞清楚浏览器和Apache服务器究竟谈了些什么,下面利用telnet工具和本机的Apache服务器进行通信。这里假定读者已经启动了Apache服务器,如果因为某些原因还没有启动,那么可以任选一个网站进行测试。11.4.4配置服务器Apache默认的配置做得很好,对某些高级应用来说,用户仍然需要手动定制。Apache使用文本文件来配置所有的功能选项。1.配置文件2.使用日志文件3.使用cgi4.使用PHP+MySQL11.4.5启动与停止

可以用手工的方式启动和关闭Apache服务器。Apache服务器的控制脚本是apachectl,通过给这个脚本传递参数控制Apache服务器的启动和关闭(需要有root权限)。常用的3个参数是start、stop和restart,分别代表启动、停止和重启。11.5远程登录

很多读者都知道,Linux最主要的应用场景还是网络服务器。支持多个用户同时登录对于服务器而言非常重要。这种远程登录有多种方式,SSH协议应该算是最好的,这种协议提供了安全可靠的远程连接方式。11.5.1登录另一台Linux服务器1.安全的Shell:SSHSSH是secureshell的简写,意为“安全的shell”。作为rlogin、rcp、telnet这些“古老”的远程登录工具的替代品,SSH会对用户的身份进行验证,并加密两台主机之间的通信。SSH在设计时充分考虑到了各种潜在的攻击,给出了有效的保护措施。尽管现在SSH已经转变为一款商业产品SSH2,但开放源代码社区已经发布了OpenSSH软件作为回应。这款免费的开源软件由FreeBSD负责维护,并且实现了SSH协议的完整内容。2.登录X窗口系统:图形化的VNC

读者已经看到,通过启用SSH的X转发功能可以在本地运行远程主机上的X应用程序,但有些时候用户可能希望更进一步,直接从X窗口登录服务器,就像操作本地的桌面一样。VNC(VirtualNetworkComputing,虚拟网络计算)实现了这一需求。11.5.1登录另一台Linux服务器3.我想从Windows登录这台Linux

管理员常常陷入这样的尴尬:公司的一些任务不得不在Windows下完成,而Linux作为一款优秀的服务器操作系统又被部署在机房中。在这种情况下,要么安装双系统,并且为了短暂的应用而不停地重启计算机;要么干脆从Windows登录到Linux服务器。幸运的是,经过开放源代码界的长期努力,这已经不是什么困难的事情了。Windows上有几种不同的SSH客户端

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论