Linux网络技术pdf/doc/txt格式电子书下载
本站仅展示书籍部分内容
如有任何咨询
请加微信10090337咨询
书名:Linux网络技术pdf/doc/txt格式电子书下载
推荐语:
作者:王波编
出版社:机械工业出版社
出版时间:2015-06-01
书籍编号:30476939
ISBN:9787111503040
正文语种:中文
字数:164815
版次:1
所属分类:教材教辅-大学
版权信息
书名:Linux网络技术
编者:王波
出版社:机械工业出版社
出版时间:2015-06-01
ISBN:9787111503040
免责声明:本站所有资源收集整理于网络,版权归原作者所有。
本站所有内容不得用于商业用途。本站发布的内容若侵犯到您的权益,请联系站长删除,我们将及时处理!
内容简介
本书是普通高等教育“十一五”国家级规划教材。本书从Linux操作系统基础入手,以丰富的示例为依托,循序渐进地讲述了Linux系统中典型的网络技术与应用。全书共12章,内容包括:概述与安装、命令与示例、shell编程基础、DNS服务、DHCP服务、Apache服务、VSFTPD服务、Samba服务、iptables、Postfix、SSH和OpenStack。
本书采用以应用为主的编写风格,符合任务驱动的教学模式,且案例丰富、具有一定的实用性。
本书既可作为计算机科学与技术专业的本科教材,又可作为系统学习Linux网络应用技术的工程技术人员的参考书。
出版说明
当前,我国正处在加快转变经济发展方式、推动产业转型升级的关键时期。为经济转型升级提供高层次人才,是高等院校最重要的历史使命和战略任务之一。高等教育要培养基础性、学术型人才,但更重要的是加大力度培养多规格、多样化的应用型、复合型人才。
为顺应高等教育迅猛发展的趋势,配合高等院校的教学改革,满足高质量高校教材的迫切需求,机械工业出版社邀请了全国多所高等院校的专家、一线教师及教务部门,通过充分的调研和讨论,针对相关课程的特点,总结教学中的实践经验,组织出版了这套“高等教育规划教材”。
本套教材具有以下特点:
1)符合高等院校各专业人才的培养目标及课程体系的设置,注重培养学生的应用能力,加大案例篇幅或实训内容,强调知识、能力与素质的综合训练。
2)针对多数学生的学习特点,采用通俗易懂的方法讲解知识,逻辑性强、层次分明、叙述准确而精炼、图文并茂,使学生可以快速掌握,学以致用。
3)凝结一线骨干教师的课程改革和教学研究成果,融合先进的教学理念,在教学内容和方法上做出创新。
4)为了体现建设“立体化”精品教材的宗旨,本套教材为主干课程配备了电子教案、学习与上机指导、习题解答、源代码或源程序、教学大纲、课程设计和毕业设计指导等资源。
5)注重教材的实用性、通用性,适合各类高等院校、高等职业学校及相关院校的教学,也可作为各类培训班教材和自学用书。
欢迎教育界的专家和老师提出宝贵的意见和建议。衷心感谢广大教育工作者和读者的支持与帮助!
机械工业出版社
前言
当前Linux网络技术的应用已经非常普及,运行在Linux系统上的典型网络服务,稳定地占据着Internet上各种排名榜的榜首。随着新技术、新应用的不断出现,各种Linux发行版也在不断推陈出新,本书第1版基于RedHat Enterprise Linux 4.0并于2007年7月发行,时至今日改版需求日益显著。
本次修订的第2版采用了2014年6月RedHat公司最新发行的RedHat Enterprise Linux7.0(RHEL 7.0)为平台,全书仍分为12章,包括:概述与安装、命令与示例、shell编程基础、DNS服务、DHCP服务、Apache服务、VSFTPD服务、Samba服务、iptables、Postfix、SSH及OpenStack。本次修订涉及所有章节,所有网络服务示例均在RHEL 7.0上测试通过,总体修订比例在70%以上。在继承上一版特点的基础上,本书引入了近来非常流行的基于OpenStack云计算的新内容,邮件服务也用Postfix代替了原来的Sendmail,新版中唯一去除掉的一章就是Squid服务。
从策划开始,历经近一年的修订工作,中间还经历了一次重大的版本升级,原计划采用RHEL 6.5作为新平台,在修订进度过半时,RHEL7.0发行了。经作者商议,决定采用RHEL7.0作为新平台,因此新版修订拖延了一段时间。
从结构上说,本书前三章为基础知识,后九章分别讲述了各种典型的网络服务。在教学过程中建议前四章按顺序学习,其余章节可以有选择地进行教学,最后一章OpenStack可作为综合性实践教学题。需要说明的是:虽然本书以RHEL 7.0为主来讲述,但是绝大部分内容也适合于其他的Linux发行版本。另外,为方便教学,本书配备了电子教案。
本书是集体智慧的结晶,除主编外参与本书编写工作的还有魏绍谦、翟红英、李湛、张银霞等。本书的出版也得到了作者单位北京联合大学师范学院的支持与帮助,在此一并感谢。
限于作者的水平和经验,书中难免存在缺点和错误,欢迎广大Linux专家、读者给予批评指正,联系方式:wangbo@buu.edu.cn。
编者
第1章 概述与安装
本章要点
●交换分区。
●挂载点。
●RHEL7.0安装。
1.1 概述
当前Linux操作系统的应用十分广泛,Linux系统在IT领域以及其他相关行业中的应用都占据了十分重要的地位。
1.1.1 Linux的历史与应用前景
Linux操作系统诞生于1991年,是由芬兰赫尔辛基大学的一名研究生——Linus Torvalds开发的。当时,Linus正在研究MINIX操作系统,发现MINIX系统存在许多缺点,其中最主要的缺点是不能在PC机上直接安装运行,而且对硬件的支持也十分有限。于是,Linus决定借鉴UNIX操作系统的设计思想和风格,自己开发一个较实用的操作系统。经过他的不懈努力,终于开发出了Linux操作系统。Linus的技术天分与执着精神值得学习,更令人钦佩的是他没有让Linux操作系统成为独自欣赏的个人作品,而是把Linux系统的源代码公开放到Internet上。正是因为这个看似平凡的举动,却引起了一场声势浩大的改革与创新,使得全世界的爱好者都有机会参与到Linux操作系统的开发与改进中来,使得Linux操作系统不断地发展完善。。
Linux操作系统从诞生之日起,就以其先进的设计思想、稳定安全的系统核心吸引了众多的IT厂商和研发人员。统计显示,超过26%的Internet网上商业公司的服务器是基于Linux平台的,并且这个比例还在不断扩大。著名的Yahoo、Sina、Sohu等公司的服务器大多采用Linux作为服务器操作系统,而Google公司更是采用了数以千计的Linux服务器构成的庞大集群,来满足每天超过1.5亿次的查询量。越来越多的公司采用Linux作为服务器平台,可以充分地说明其功能强大、性能卓越。不仅如此,在移动通信、智能家电等领域也都出现了Linux系统的身影,进而在全球迅速展开了一场由Linux引发的技术革命,极大地推动了IT行业及其相关行业的发展。当前有超过70%的智能手机运行的是基于Linux内核的Android系统;随着可穿戴设备的兴起,Linux系统的应用也将进一步高速发展。
1.1.2 Linux主要的发行版本
Linux系统的版本有两种分法:第一种是内核版本,以内核(kernel)版本号来划分;第二种是发行版本,这是各发行厂商根据自己的包装,按照自己的版本编号发行的。这两种版本编号是相互独立的。例如,Slackware Linux 9.0指的是发行版本9.0,而其内核版本是2.4.20(这可以通过执行相关命令查询)。再如Red Hat Enterprise Linux 7.0(RHEL 7.0),其中7.0是发行版本编号,而其内核版本是3.10.0。其他著名的发行版本还有Ubuntu、Debian、openSUSE、Mandriva、CentOS、红旗等。
1.1.3 RedHat Linux简介
RedHat Linux是当前用户数量最多的Linux发行版本。它以相对简单多样的系统安装、较容易的软件包管理功能、丰富的驱动程序、卓越的性能,成为最容易使用的Linux发行版本,是习惯了Windows操作系统的用户首选的Linux发行版,这也是其用户数量众多的原因之一。
RedHat Linux从9.0版之后,衍化为两个分支:一个是面向个人用户的Fedora系列,这是RedHat公司支持并交由Fedora社区的爱好者维护的版本,主要致力于桌面化的应用与开发,同时又与RedHat公司官方发行版有着较密切的联系;另一个是RHEL系列,是RedHat公司重点开发的产品,该系列主要面向企业用户,为企业用户定制功能强大的、稳定的服务器平台,利用RedHat公司的“订阅”模式向企业用户提供后续服务。
本书以RHEL 7.0版为平台进行讲解。
1.2 RHEL 7.0的安装
RHEL(RedHat Enterprise Linux)7.0的安装提供给用户极大的灵活性,用户可以利用安装光盘进行安装,也可以通过网络进行安装。下面分别介绍这两种安装方法。
1.2.1 光盘安装
光盘作为Linux厂商的主要发行介质,使得安装过程更加直接和简单。下面将介绍如何用光盘来安装。
本书为了抓图方便,采用了在VMWARE虚拟机中安装RHEL 7.0,此处列出虚拟机配置的重点内容,如图1-1所示。
图1-1 虚拟机关键设置
图1-1中虚拟机的内存设置为8GB,这是为大系统准备的,如果物理内存不是很充裕,采用2GB内存即可。另外在此配置中没有采用物理光盘,而是直接采用了RHEL7.0的ISO镜像文件。虚拟机配置完毕后,即可开始安装,详细步骤如下。
1)启动虚拟机之后,出现如图1-2所示界面。
为节省时间可跳过检测光盘介质,直接选择第1个选项进行安装。
2)出现选择语言对话框,选择简体中文,如图1-3所示,单击“继续”按钮。
图1-2 安装起始界面
图1-3 选择安装RHEL7语言
3)接下来,出现“安装信息摘要”界面,如图1-4所示。
这是一个总体安装界面,类似主菜单一样,需要配置哪个选项,单击该选项即可。
4)单击“软件选择”,可挑选安装感兴趣的软件包,本例选择“带GUI的服务器”,如图1-5所示,选择相应软件包后,单击窗口上方的“完成”按钮。
图1-4 “安装信息摘要”界面
图1-5 选择带GUI的服务器
5)接下来设置RHEL7.0的“安装目标位置”,如图1-6所示,图中只有一块大小为40.96GB的硬盘,在Linux系统中该硬盘的设备文件名为sda,在Linux系统中所有的外围设备包括硬盘在内都用文件来标识。此步很关键,要了解Linux系统的安装细节,就不要采用自动分区,所以此处选择“其他存储选项”中的“我要配置分区”选项,对硬盘进行手动分区。
6)为了让Linux操作系统良好地运行,一般情况下必须有一个根(/)分区、至少有一个交换(Swap)分区。所谓交换分区就是虚拟内存,用硬盘中的一部分空间,模拟物理内存的存储方式,以便扩大内存的使用空间,一般情况下是物理内存的2倍。单击图1-7左下方的“+”来添加分区,本例中先创建Swap分区,因本例中虚拟机的内存为8GB,所以Swap分区的大小设置为16GB。
图1-6 “安装目标位置”界面
图1-7 硬盘分区设置
图1-7中的“挂载点(Mount Point)”对于习惯使用Windows系统的用户来说这是一个新名词,因为Windows是多根的文件系统,即每个分区、光盘、U盘等都有独立的盘符,有各自独立的根;而Linux采用单根的文件系统,没有盘符的概念,所有的分区、光盘、U盘等都需要挂载到某一个“空目录”上,这些“空目录”就是挂载点,当访问这些“空目录”时,就相当于访问相应的“盘”。
7)添加完Swap分区后,接着添加根分区(/),如图1-8所示,为满足系统日志等需求,一般建议根分区为20GB。设备类型设置为“标准分区”,文件系统类型设置为“ext4”,单击“完成”按钮。
其实,在实际应用中还经常创建其他独立的分区对应不同的挂载点,如/home、/usr、/var等,这些挂载点的应用为扩大系统容量提供了可操作的条件。
8)在随后出现的“更改摘要”对话框中,单击“接受更改”按钮,如图1-9所示。
图1-8 添加根分区
图1-9 更改摘要
9)“网络和主机名”对话框,如图1-10所示,将主机名设置为RHEL7-01,连接名称设置为“eth0”。
在RHEL7.0之前,网卡的名称都是eth0、eth1等顺序编号,短且好记,分别代表第1块、第2块等以太网卡。但在RHEL7.0中为了提高系统内部识别度和效率采用了udev方式来命名网卡,如eno16777736等,但这对习惯了老网卡名称的用户来说确实不方便,因此此处先将连接名改为老名称。
说明:仅此处修改名称是不够的,等系统安装完毕后还需要修改相应的网卡配置文件:在/etc/sysconfig/network-scripts/ifcfg-eth0文件中开头添加1行配置:DEVICE=eth0,然后再重新启动系统。
10)接下来,在出现的“安装信息摘要”界面中,单击“开始安装”按钮。在安装软件包的同时,可以设置root用户的密码及创建第1个普通用户账号,如图1-11所示。
图1-10 “网络和主机名”对话框
图1-11 设置root密码
root用户是系统管理员账号,具有最高的权限,当前流行的Linux发行版都不建议直接采用root账号登录,而是先以普通账号登录,只有在需要root权限时才切换到root账号。显而易见,这样做在一定程度上提供了系统安全性,同时也避免了一些因误操作造成的危害。设置的root密码应该有一定的复杂度,否则系统会有提示且需要两次单击“完成”按钮。图1-12创建普通用户账号。
11)系统安装完毕,需要重启,如图1-13所示。
图1-12 创建普通用户账号
图1-13 系统安装完毕
12)系统启动,GRUB引导界面。GRUB是当前流行的Linux系统引导加载器,由它负责引导Linux系统内核。在图1-14中有两行选项,第1行是正常进入系统,第2行是进入“急救模式”用来修复系统中的一些错误。默认选第1行即可启动系统。
图1-14 GRUB引导界面
13)第1次启动RHEL7.0后,还需要进行一些附加设置,如接受“许可证”等,如图1-15所示。
图1-15 接受“许可证”
14)进入Kdump转储,如图1-16所示,Kdump是Linux内核转储机制,当系统崩溃时需要利用一部分内存来存放系统当前的内核镜像,以便日后分析时使用。系统默认启用Kdump机制。
图1-16 Kdump转储
15)接下来选择是否订阅RedHat服务,注册后可获得RedHat提供的定制服务,如软件包的及时更新及问题解答等,但这些服务不是免费的,故此处选择“不,我想以后注册”,如图1-17所示。
图1-17 订阅注册
16)正式进入登录界面,如图1-18所示,显示的用户名wang1是前面安装过程中创建的普通账号。单击输入密码后,成功登录。
图1-18 登录界面
17)成功登录后的欢迎界面,如图1-19所示,至此RHEL7.0成功安装、设置完毕。
图1-19 欢迎界面
1.2.2 网络安装
除了利用光盘安装以外,RHEL 7.0还支持网络安装。在RHEL 7.0中,支持网络安装的协议主要有3种,分别是HTTP协议、FTP协议和NFS协议。无论选择哪种协议,都要保证正确配置相关的网络服务。
根据专业的测试数据,虽然3种协议都能实现网络安装,但是速度却有差异。一般情况下,在进行网络安装时NFS最快,其次是FTP,最慢的是HTTP。
下面示例将采用FTP完成RHEL7.0的安装。
1)将前面成功安装的一台RHEL7.0配置为安装服务器。
将安装服务器的IP地址配置为192.168.100.1,掩码为255.255.255.0。以root身份创建目录/var/ftp/pub/RHEL7,并把RHEL7.0光盘中的内容全部复制到/var/ftp/pub/RHEL7目录中;执行service vsftpd start启动FTP服务。
经过上述步骤,服务器端已配置完毕,以下是在客户机上执行的主要操作。
2)开始步骤与光盘安装界面相同,只是在图1-4所示安装信息摘要出现后,要设置一下安装源,将原来的“本地介质”改为采用FTP协议进行安装。如图1-20所示,请注意ftp的路径一定要写对。
3)配置网络和主机名,如图1-21所示,关键要把本机的IP地址配置成与安装服务器在同一个网段上,如:192.168.100.2,并保证与服务器能ping通。
图1-20 设置安装源
图1-21 设置IP地址
4)选择手动分区,如图1-22所示,可以看出图中硬盘大小只有20GB,且Swap分区只分配了4GB,剩余的空间分配给了根分区。这种设置对于一般的小系统来说已可满足要求。
5)客户机与存放有RHEL7.0安装目录树的服务器成功建立连接后,接着选择要安装的软件包,之后开始软件包的安装过程,如图1-23所示。同样,在安装过程中设置root密码及创建普通账号。接下来的步骤与普通光盘安装相同。
网络安装如果采用HTTP、NFS进行网络安装,步骤与FTP安装类似,差别只是在服务器端需要进行HTTP、NFS服务器的配置,读者可以自行练习。
图1-22 手动分区
图1-23 开始安装
1.3 小结
本章首先对Linux系统的基本情况进行了简单介绍,然后详细讲述了RHEL 7.0的安装过程,及利用FTP协议进行网络安装的方法。经过本章的学习,成功安装RHEL 7.0之后,即可正式开启Linux之旅了。
1.4 思考与练习
1.请列举出几种常用的Linux发行版本,并解释内核版本与发行版本的区别。
2.一般情况下,安装Linux需要哪两个分区,哪个分区的大小通常是物理内存的2倍。
3.请写出第1块SATA硬盘上第1个分区的设备文件名。
4.请写出Linux系统上3个常用的文件系统类型。
5.请分别采用光盘及网络协议安装RHEL 7.0。
第2章 命令与示例
本章要点
●基本命令。
●i节点。
●管道与重定向。
●正则表达式。
命令对于熟练使用Linux/UNIX系统而言是必不可少的,这对于习惯了使用Windows的用户来讲,确实是一个很困难的问题。事实上,在Linux/UNIX中也有图形界面——Xwin-dow,而且Xwindow的功能也很强大,但是专业Linux/UNIX用户更加青睐于直接使用命令,这是因为命令行的应用具有更好的扩展性和灵活性,更可在脚本编程中使用,这是鼠标操作无法完成和替代的。
本章主要介绍常用的Linux命令及其使用示例。
2.1 常用命令与示例
在这里要着重指出的是Linux命令及其参数是严格区分大小写的,这一点和DOS命令是不一样的,在使用中需要格外注意。另外,Linux的文件名也是严格区分大小写的。
2.1.1 文件基本操作命令
1.ls命令
ls命令的功能是显示指定目录下的文件目录清单。相当于DOS下的dir命令,但其参数更加丰富多样。下面通过以下示例来进一步介绍ls命令的各种典型用法。
(1)ls示例一——不带参数
功能:显示指定目录中的文件清单,如果没有指定任何目录,则默认为当前目录。
(2)ls示例二——显示隐含文件
参数-a的功能:显示隐含文件。在Linux的文件属性中没有“隐含”属性,而是以文件名来判断相应文件是否为隐含的,若文件名以“.”开头,则认为是隐含文件,普通的ls命令不显示以“.”开头的文件,所以要完全显示某目录下的文件清单,必须加上-a参数。
(3)ls示例三——长格式输出
参数-l的功能是:以长格式列表输出指定目录中的文件清单。
以上述输出中的文件abc为例,解释长格式输出的内容如下:
长格式列表输出的第1列表示文件的类型,Linux中文件的类型可分为以下几类:
-:表示普通文件。
d:表示目录文件,在Linux中目录也是文件,不仅如此,在Linux系统中任何设备都可以被当作文件处理。
l:表示符号连接文件。
b:表示块设备文件,如硬盘的设备文件/dev/hda,其中字母a表示第1块,h表示IDE类型的硬盘,SCSI类型的硬盘用s表示;分区也有相对应的设备文件,如/dev/sdb3,表示第2块SCSI硬盘上的第3个分区。需要说明的是U盘也采用SCSI硬盘的设备文件名来表示。
c:表示字符设备文件,如/dev/tty1。
p:表示管道文件。
s:表示套接字文件。
关于文件权限的说明:Linux文件有3种典型的权限,即r读权限、w写权限和x执行权限。在长格式输出中,文件类型的后面有9列权限位,实际上这是针对不同用户而设定的,如下所示:
其中,属主是指文件的所有者,属组一般是指所有者所在组,可认为是同组用户。本例中abc文件的所有者是user1,用户user1对该文件的权限为可读、可写和可执行;而属于组user1的用户对该文件有可读、可写和可执行权;其他用户对该文件有可读和可执行权,但没有写权限。读者可能注意到,本例中属主和属组都是user1,会不会有问题呢?实际上,Linux中的用户和组是可以同名的,而且RedHat Linux的用户管理机制是在创建用户的同时,为该用户创建一个与用户名同名的组。
(4)ls示例四——递归显示
参数-R的功能是:递归显示指定目录下的文件清单,即会显示指定目录分支内各子目录中的文件清单。
以上只是ls的常用的几个参数,实际上ls的参数有很多,而且很多参数可以一起用,功能更强大。例如可以练习以下几种用法:
2.pwd命令
示例:
功能:显示当前工作目录。
3.mkdir命令
(1)mkdir示例一——创建目录
功能:在当前目录下创建子目录abc。
(2)mkdir示例二——创建多级目录
功能:参数-p的作用是如果要创建的目录的父目录不存在,则先创建其父目录,再创建该目录;如果指定的目录存在,则不影响原目录,也不会报错。在本示例中会连续创建a目录、a/b目录、a/b/c目录。
注意:请利用好-p参数,这在shell编程中尤为重要!
4.cd命令
(1)cd示例一——切换工作目录
功能:将当前的工作目录切换为/var。
(2)cd示例二——切换到当前用户的主目录
功能:不带参数的cd命令能直接将当前的工作目录切换为该用户的主目录。主目录又称为家目录,在RHEL中创建用户时,自动在/home下为该用户创建一个与其用户名同名的目录,并将该目录的所有权划归给该用户所有。关于所有权划归问题请参见本章chown命令。
注意:字符“~”代表(当前)用户的主目录。
5.touch命令
(1)touch示例一——创建空文件
功能:如果myfile不存在,则创建一个大小为0B,名为myfile的空文件。
(2)touch示例二——改变文件的最后修改时间再执行一次touch myfile命令:
功能:如果myfile已存在,则将改变myfile的最后修改时间。
6.cp命令
(1)cp示例一——复制文件
功能:将/etc目录下以php.开头的文件复制到目录abc中。
说明:“*”是通配符,可以匹配多个字符;“?”也是通配符,但是只能匹配一个字符。
(2)cp示例二——复制目录
功能:增加了参数-R,就能将目录/etc下面的所有子目录和文件都复制到目录abc中。
7.mv命令
(1)mv示例一——将文件移动到目录中
功能:如果mydir1存在且是个目录,则将文件myfile移动到目录mydir1中。
(2)mv示例二——文件改名
功能:将文件(或目录)myfile改名为myfile2。
8.rmdir命令
示例:
功能:删除指定的空目录。
9.rm命令
(1)rm示例一——删除文件
功能:删除指定的文件php.ini。
(2)rm示例二——删除目录
功能:参数-r是递归的意思,即可以删除非空目录;参数-f是强制的意思。本例中abc为非空目录,读者可以尝试是否可用rmdir直接删除。
10.cat命令
(1)cat示例一——显示文件内容
功能:显示指定文件myfile的内容。
(2)cat示例二——创建文件
按<CTRL+d>组合键结束输入。
功能:利用输出重定向符“>”来创建简短的文本文件myfile2。
11.more和less命令
示例:
功能:分屏显示指定文件httpd.conf的内容,适合显示超过一屏的文本文件。每按一下空格键,向后翻一屏;每按一次<Enter>键,向后滚动一行。
说明:与more功能很相似,只不过less功能更强大,支持<PageUp>键向前翻屏,及<PageDown>键向后翻屏。
12.head命令
(1)head示例一——显示文件头10行内容
功能:默认显示指定文件的头10行的内容。
(2)head示例二——显示文件头n行内容
功能:参数-n可设置要显示的行数,本例会显示文件的头19行的内容。
13.tail命令
(1)tail示例一——显示文件最后10行内容
功能:默认显示指定文件的末尾10行的内容。
(2)tail示例二——显示文件最后n
....
本站仅展示书籍部分内容
如有任何咨询
请加微信10090337咨询