本文共 19397 字,大约阅读时间需要 64 分钟。
rpm
①RPM:RedHat软件包管理工具,似Windows里面的“添加/删除程序”
②rpm 执行安装是包
二进制包(Binary)以及源代码包(Source)两种。二进制包可以直接安装在计算机中,而源代码包将会由RPM自动编译、安装。源代码包经常以src.rpm作为后缀名。③用命令组合:
-ivh:安装显示安装进度--install--verbose--hash-Uvh:升级软件包--Update;-qpl:列出RPM软件包内的文件信息[Query Package list];-qpi:列出RPM软件包的描述信息[Query Package install package(s)];-qf:查找指定文件属于哪个RPM软件包[Query File];-Va:校验所有的RPM软件包,查找丢失的文件[View Lost];-e:删除包
④复制代码
rpm -q samba //查询程序是否安装rpm -ivh /media/cdrom/RedHat/RPMS/samba-3.0.10-1.4E.i386.rpm //按路径安装并显示进度rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm //指定安装目录rpm -ivh --test gaim-1.3.0-1.fc4.i386.rpm //用来检查依赖关系;并不是真正的安装;rpm -Uvh --oldpackage gaim-1.3.0-1.fc4.i386.rpm //新版本降级为旧版本rpm -qa | grep httpd #[搜索指定rpm包是否安装]--all搜索*httpd*rpm -ql httpd #[搜索rpm包]--list所有文件安装目录rpm -qpi Linux-1.4-6.i368.rpm #[查看rpm包]--query--package--install package信息rpm -qpf Linux-1.4-6.i368.rpm #[查看rpm包]--filerpm -qpR file.rpm #[查看包]依赖关系rpm2cpio file.rpm |cpio -div #[抽出文件]rpm -ivh file.rpm #[安装新的rpm]--install--verbose--hashrpm -ivhrpm -Uvh file.rpm #[升级一个rpm]--upgraderpm -e file.rpm #[删除一个rpm包]--erase
④常用参数:
Install/Upgrade/Erase options:
复制代码-i, --install install package(s)-v, --verbose provide more detailed output-h, --hash print hash marks as package installs (good with -v)-e, --erase erase (uninstall) package-U, --upgrade=+ upgrade package(s)--replacepkge 无论软件包是否已被安装,都强行安装软件包--test 安装测试,并不实际安装--nodeps 忽略软件包的依赖关系强行安装--force 忽略软件包及文件的冲突
Query options (with -q or --query):
-a, --all query/verify all packages-p, --package query/verify a package file-l, --list list files in package-d, --docfiles list all documentation files-f, --file query/verify package(s) owning file
.src.rpm结尾的文件,这些文件是由软件的源代码包装而成的,用户要安装这类RPM软件包,必须使用命令:
rpm --recompile vim-4.6-4.src.rpm #这个命令会把源代码解包并编译、安装它,如果用户使用命令:rpm --rebuild vim-4.6-4.src.rpm #在安装完成后,还会把编译生成的可执行文件 重新包装成i386.rpm的RPM软件包。
1、可以安装、删除、升级和管理软件;当然也支持在线安装和升级软件;
2、通过RPM包管理能知道软件包包含哪些文件,也能知道系统中的某个文件属于哪个软件包
;3、可以在查询系统中的软件包是否安装以及其版本
;4、作为开发者可以把自己的程序打包为RPM 包发布
;5、软件包签名GPG和MD5的导入、验证和签名发布
6、依赖性的检查,查看是否有软件包由于不兼容而扰乱了系统
;
RPM软件的安装、删除、更新只有root权限才能使用;对于查询功能任何用户都可以操作;如果普通用户拥有安装目录的权限,也可以进行安装;
,文件以.rpm 后缀结尾的才行;有时我们在一些网站上找到file.rpm ,都要用 rpm 来安装;
通过rpm 命令查询一个rpm 包是否安装了,也是要通过rpm 数据库来完成的;所以我们要经常用下面的两个命令来初始化rpm 数据库;
[root@localhost beinan]# rpm --initdb[root@localhost beinan]# rpm --rebuilddb long time;有时rpm 系统出了问题,不能安装和查询,大多是这里出了问题
命令格式:rpm {-q|–query} [select-options] [query-options]
对系统中已安装软件的查询
;1)查询系统已安装的软件
; 语法:rpm -q 软件名
举例:
[root@localhost beinan]# rpm -q gaimgaim-1.3.0-1.fc4
-q就是 --query ,中文意思是“问”,此命令表示的是,是不是系统安装了gaim ;如果已安装会有信息输出;如果没有安装,会输出gaim 没有安装的信息;
2)查看系统中所有已经安装的包
,要加 -a 参数 ;
[root@localhost RPMS]# rpm -qa
3)如果分页查看,再加一个管道
|和more命令;
[root@localhost RPMS]# rpm -qa |more
在所有已经安装的软件包中查找某个软件
,比如说 gaim ;可以用 grep 抽取出来;
[root@localhost RPMS]# rpm -qa |grep gaim
上面这条的功能和 rpm -q gaim 输出的结果是一样的;
4)查询一个已经安装的文件属于哪个软件包
; 语法 rpm -qf 文件名
注:文件名所在的绝对路径要指出
举例:
[root@localhost RPMS]# rpm -qf /usr/lib/libacl.lalibacl-devel-2.2.23-8
5)查询已安装软件包都安装到何处
; 语法:rpm -ql 软件名 或 rpm rpmquery -ql 软件名
举例:
[root@localhost RPMS]# rpm -ql lynx[root@localhost RPMS]# rpmquery -ql lynx
6)查询一个已安装软件包的信息
:语法格式: rpm -qi 软件名
举例:
[root@localhost RPMS]# rpm -qi lynx
7)查看一下已安装软件的配置文件
; 语法格式:rpm -qc 软件名
举例:
[root@localhost RPMS]# rpm -qc lynx
8)查看一个已经安装软件的文档安装位置
: 语法格式: rpm -qd 软件名
举例:
[root@localhost RPMS]# rpm -qd lynx
9)查看一下已安装软件所依赖的软件包及文件
; 语法格式: rpm -qR 软件名
举例:
[root@localhost beinan]# rpm -qR rpm-python
查询已安装软件的总结:对于一个软件包已经安装,我们可以把一系列的参数组合起来用;比如 rpm -qil ;比如:
[root@localhost RPMS]# rpm -qil lynx
对于未安装的软件包的查看
:查看的前提是您有一个.rpm 的文件,也就是说对既有软件file.rpm的查看等;
1)查看一个软件包的用途、版本等信息
; 语法: rpm -qpi file.rpm
举例:
[root@localhost RPMS]# rpm -qpi lynx-2.8.5-23.i386.rpm
2)查看一件软件包所包含的文件;
语法: rpm -qpl file.rpm
举例:
[root@localhost RPMS]# rpm -qpl lynx-2.8.5-23.i386.rpm
3)查看软件包的文档所在的位置
; 语法: rpm -qpd file.rpm
举例:
[root@localhost RPMS]# rpm -qpd lynx-2.8.5-23.i386.rpm
4)查看一个软件包的配置文件;
语法: rpm -qpc file.rpm
举例:
[root@localhost RPMS]# rpm -qpc lynx-2.8.5-23.i386.rpm4)查看一个软件包的依赖关系:
语法: rpm -qpR file.rpm
举例:
[root@localhost archives]# rpm -qpR yumex_0.42-3.0.fc4_noarch.rpm/bin/bash/usr/bin/pythonconfig(yumex) = 0.42-3.0.fc4pygtk2pygtk2-libgladerpmlib(CompressedFileNames) <= 3.0.4-1rpmlib(PayloadFilesHavePrefix) <= 4.0-1usermodeyum >= 2.3.2
安装和升级一个rpm 包;
[root@localhost beinan]#rpm -vih file.rpm 注:这个是用来安装一个新的rpm 包;[root@localhost beinan]#rpm -Uvh file.rpm 注:这是用来升级一个rpm 包;
如果有依赖关系的,请解决依赖关系,其实软件包管理器能很好的解决依赖关系,请看前面的软件包管理器的介绍;如果您在软件包管理器中也找不到依赖关系的包;那只能通过编译他所依赖的包来解决依赖关系,或者强制安装;
语法结构:
[root@localhost beinan]# rpm -ivh file.rpm --nodeps --force[root@localhost beinan]# rpm -Uvh file.rpm --nodeps --force
删除一个rpm 包
;首先您要学会查询rpm 包 ;请看前面的说明;
[root@localhost beinan]#rpm -e 软件包名
举例:我想移除lynx 包,完整的操作应该是:
[root@localhost RPMS]# rpm -e lynx
如果有依赖关系,您也可以用–nodeps 忽略依赖的检查来删除。但尽可能不要这么做,最好用软件包管理器 systerm-config-packages 来删除或者添加软件;
[root@localhost beinan]# rpm -e lynx --nodeps
[root@localhost RPMS]# rpm --import 签名文件
举例:
[root@localhost fc40]# rpm --import RPM-GPG-KEY[root@localhost fc40]# rpm --import RPM-GPG-KEY-fedora
[root@localhost RPMS]# updatedb[root@localhost RPMS]# locate 软件名或文件名
通过updatedb,我们可以用 locate 来查询一些软件安装到哪里了;系统初次安装时要执行updatedb ,每隔一段时间也要执行一次;以保持已安装软件库最新;updatedb 是slocate软件包所有;如果您没有这个命令,就得安装slocate ;
举例:
[root@localhost RPMS]# locate gaim
命令格式: rpm2cpio file.rpm |cpio -div
举例:
[root@localhost RPMS]# rpm2cpio gaim-1.3.0-1.fc4.i386.rpm |cpio -div
抽取出来的文件就在当用操作目录中的 usr 和etc中;
其实这样抽到文件不如指定安装目录来安装软件来的方便;也一样可以抽出文件;
为软件包指定安装目录:要加 -relocate 参数;下面的举例是把gaim-1.3.0-1.fc4.i386.rpm指定安装在 /opt/gaim 目录中;
[root@localhost RPMS]# rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm Preparing... ########################################### [100%] 1:gaim ########################################### [100%] [root@localhost RPMS]# ls /opt/ gaim
这样也能一目了然;gaim的所有文件都是安装在 /opt/gaim 中,我们只是把gaim 目录备份一下,然后卸掉gaim;这样其实也算提取文件的一点用法;
RPM包管理,的配置文件是 rpmrc ,我们可以在自己的系统中找到;比如Fedora Core 4.0中的rpmrc 文件位于;
[root@localhost RPMS]# locate rpmrc/usr/lib/rpm/rpmrc/usr/lib/rpm/redhat/rpmrc
我们可以通过 rpm --showrc 查看;具体的还得我们自己来学习。呵。。。不要问我,我也不懂;只要您看了这篇文章,认为对您有用,您的水平就和我差不多;咱们水平是一样的,所以我不能帮助您了;请理解;
yum
#查询所有可用软件包列
[root@localhost yum.repos.d]# yum list
#已经安装的软件包
Installed Packages
查询yum源服务器中是否包含某个软件包
#查询单个软件包[root@localhost yum.repos.d]# yum list 包名
例如:
[root@localhost yum.repos.d]# yum list samba Available Packages samba.i686 3.5.10-125.el6 c6-media #搜索yum源服务器上所有和关键字相关的软件包例如:
[root@localhost yum.repos.d]# yum search 关键字 #搜索yum服务器上所有和关键字相关的软件包例如:
[root@localhost yum.repos.d]# yum search samba #搜索服务器上所有和samba相关的软件包 ========================N/S Matched: samba ============================= samba-client.i686:Samba client programs samba-common.i686:Files used by both Samba servers and clients samba-doc.i686: Documentation for the Samba suite …省略部分输出… Name and summary matches only, use"search all" for everything.[root@localhost yum.repos.d]# yum info samba
#查询samba软件包的信息Available Packages <-没有安装Name : samba <-包名Arch : i686 <-适合的硬件平台Version : 3.5.10 <―版本Release : 125.el6 <—发布版本Size : 4.9M <—大小Repo : c6-media <-在光盘上…省略部分输出…
[root@localhost yum.repos.d]# yum -y install 包名
选项: install:安装;
例如:#使用yum自动安装gcc
[root@localhost yum jepos.d]#yum -y install gcc
在讲 RPM 包安装时提到,gcc 是 C 语言的编译器,其依赖的软件包比较多,手工使用 RPM 包安装太麻烦了,所以使用 yum 安装。
yum 安装可以自动解决依赖性,而且安装速度也比源码包快得多。不过,yum 到底安装的还是 RPMS,所以 rpm 命令还是必须学习和使用的。
[root@localhost yum.repos.d]# yum -y update 包名
#升级指定的软件包
选项:update:升级;
注意,在进行升级操作时,yum 源服务器中软件包的版本要比本机安装的软件包的版本高。
[root@localhost yum.repos.d]# yum -y update #升级本机所有软件包这条命令会升级系统中所有的软件包。不过我们的生产服务器是稳定优先的,所以这种全系统升级的情况并不多见。
再次强调一下,除非你确定卸载的软件的依赖包不会对系统产生影响,否则不要执行 yum 的卸载,因为很有可能在卸载软件包的同时卸载的依赖包也是很重要的系统文件,这就有可能导致系统崩溃
。
卸载命令如下:#卸载指定的软件包
[root@localhost yum.repos.d]# yum remove 包名
例如:#卸载samba软件包
[root@localhost yum.repos.d]# yum remove samba
服务器基础
以下
:服务器英文名称为“Server”,指的是网络环境下为客户机(Client)提供某种服务的专用计算机,服务器安装有网络操作系统(如Windows 2000 Server、Linux、Unix等)和各种服务器应用系统软件(如Web服务、电子邮件服务)的计算机。这里的“客户机”指安装有DOS、Windows 9x等普通用户使用的操作系统的计算机。
服务器的处理速度和系统可靠性都要比普通PC要高得多,因为服务器是在网络中一般是连续不断工作的。普通PC死机了大不了重启,数据的丢失损失也仅限于单台电脑。服务器则完全不同,许多重要的数据都保存在服务器上,许多网络服务都在服务器上运行,一旦服务器发生故障,将会丢失大量的数据,造成的损失是难以估计的,而且服务器提供的功能如代理上网、安全验证、电子邮件服务等都将失效,从而造成网络的瘫痪,对服务器可靠性的要求可见一斑。
工作组级服务器
部门级服务器
企业级服务器
按照服务器的结构,可以分为CISC(复杂指令集)架构的服务器和RISC(精简指令集)架构的服务器:
IA架构服务器
(Intel Architecture Server)-即通常所讲的PC服务器,采用x86(CISC)芯片并且主要采用Windows NT/Windows2000、Linux、FreeBSD等操作系统的服务器,如Intel PentiumIII(P4)和Intel (P4)Xeon(至强)等。RISC架构的服务器
指采用非英特尔架构技术的服务器, 使用RISC芯片并且主要采用UNIX操作系统的服务器,如SUN公司的SPARC、HP公司的PA-RISC、DEC的Alpha芯片、SGI公司的MIPS等; 由于RISC架构服务器的性能和价格比CISC架构的服务器高得多。近几年来,随着PC技术的迅速发展,IA架构服务器与RISC架构的服务器之间的技术差距已经大大缩小,用户基本上倾向于选择IA架构服务器,但是RISC架构服务器在大型、关键的应用领域中仍然居于非常重要的地位。按照使用的用途,服务器又可以分为通用型服务器和专用型(或称“功能型”)服务器,如实达的沧海系列功能服务器。
通用型服务器
是没有为某种特殊服务专门设计的可以提供各种服务功能的服务器,当前大多数服务器是通用型服务器。专用型(或称“功能型”)服务器
是专门为某一种或某几种功能专门设计的服务器,在某些方面具有与通用型服务器有所不同。如光盘镜像服务器是用来存放光盘镜像的,那么需要配备大容量、高速的硬盘以及光盘镜像软件。按照服务器的外观,可以分为台式服务器和机架式服务器以及刀片服务器
台式服务器
有的采用大小与立式PC台式机大致相当的机箱,有的采用大容量的机箱,像一个硕大的柜子一样,主要分为单塔式和双塔式,如下图所示。
机架式服务器
的外形看起来不像计算机,而是像交换机,有1U(1U=1.75英寸)、2U、4U等规格,如下图所示。机架式服务器安装在标准的19英寸机柜里面。
刀片服务器
Web服务器通过copyHTTP协议进行通信,Web服务器有是也叫HTTP服务器或Web容器,HTTP协议采用的是请求/响应模式,即客户端发起HTTP请求,web服务器接收并解析处理HTTP请求,bai然后将HTTP响应发送给客户端。
Web服务器指的是一个软件程序,例如Apache Tomcat、Jboos等,它们的作用就是管理Web应用,当客户端发出一个HTTP请求,相应的Web服务器接收HTTP请求后,调用相应的web应用处理请求,然后Web服务器再将响应结果返回给客户端
web服务器提供的这些数据大部分都是文件,那么我们需要在服务器端先将数据文件写好,并且放置在某个特殊的目录下面,这个目录就是我们整个网站的首页,在redhat中,这个目录默认在/var/www/html。浏览器是通过你在地址栏中输入你所需要的网址来取得这个目录的数据的。
端口:http为80。https为443。
IANA:互联网数字分配机构0-1023:众所周知,永久地分配给固定的应用程序使用,特权端口 (只有管理员有权限启用并让进程监听);1024-41951:亦为注册端口,但要求不是特别严格,分配给程序注册为某应用使用:3306/TCP41952-60000:客户端程序随机使用的端口,动态端口,或私有端口;浏览器与服务器之间传递数据的方法:
1xx:指示信息 —— 表示请求已接收,继续处理。
2xx:成功 —— 表示请求已被成功接收、理解、接受。 3xx:重定向 —— 要完成请求必须进行更进一步的操作。 4xx:客户端错误 —— 请求有语法错误或请求无法实现。 5xx:服务器端错误 —— 服务器未能实现合法的请求。200 OK:客户端请求成功。
400 Bad Request:客户端请求有语法错误,不能被服务器所理解。 401 Unauthorized:请求未经授权,这个状态代码必须和 WWW-Authenticate 报头域一起使用。 403 Forbidden:服务器收到请求,但是拒绝提供服务。 404 Not Found:请求资源不存在,举个例子:输入了错误的URL。 500 Internal Server Error:服务器发生不可预期的错误。 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常。1、
可支持的操作系统:让所有需要的软件都能够进行安装。
2、
可运行的www服务器:例如Apache。
3、
网页程序语言:Perl(Practical Extraction and Report Language,实用报表提取语言)、PHP(Hypertext Preprocessor,超文本预处理器,是一种通用开源脚本语言)、JSP(Java Server Pages,java服务器页面)、CGI(Common Gateway Interface,公共网关接口)、ASP(Active Server Pages,动态服务器页面)。
4、
数据存储的数据库系统 :MySQL、MSSQL、Oracle等。
Apache
主要提供www的服务器平台MySQL
:传统的文件读取是很麻烦的,如果你只要读取该文件当中的一小部分,系统还是会将整个文件读出来,若又有人同时读取同一个文件时,那就会造成效率与系统上的问题,所以才会有数据库系统的推出。数据库其实是一种特殊格式的文件,这种文件要通过特殊接口(数据库软件)来进行读写。由于这个特殊接口已经针对数据的查询、写入做过优化设计,因此很适合多人同时写入与查询工作。PHP
:PHP可以被用来建立动态网页,PHP程序代码可以直接在HTML网页当中嵌入,就像编辑HTML网页一样简单。PHP是一种“程序语言”,这种程序语言可以直接在网页当中编写,不需要经过编译即可执行。dhcp(Dynamic Host configuration Protocol,动态主机配置协议 )是一个局域网的网络协议,它主要是通过客户端发送广播数据包给整个物理网段内的所有主机,若局域网内有DHCP服务器时,才会响应客户端的IP参数要求。
DHCP是一种C/S架构,主要用户互联网主机动态获取IP地址的协议
DHCP有3种工作方式
: (1)客户端:利用广播数据包发送搜索DHCP服务器的数据包
(2)服务器端:提供客户端网络相关的租约以供选择。(dhcp offer)
(3)客户端:决定选择DHCP服务器提供的网络参数租约并向服务器确认。
(4)服务器端
::记录该次租约行为后并向客户端发送响应数据包信息以确认客户端的使用。`
有以下几种情况:
客户端脱机:
关闭网络接口、重新启动、关机等行为,都算是脱机状态,这个时候server端就会将该IP地址收回,并放到server的备用区中,以便日后使用。 客户端租约到期:dhcp server端发放的IP有使用的期限,客户端使用这个IP到达期限规定的时间,而且没有重新提出DHCP的申请时,server端就会将该IP收回,这个时候就会断线。但用户也可以向DHCP服务器再次要求分配IP。 由于目前的DHCP客户端程序大多数会主动依据租约时间去重新申请IP,所以即使有租约期限,也不需要在某个时间点手动去重新申请IP。一般情况下,假设租约时间是T小时,那么客户端程序在0.5T时会主动向DHCP服务器发出重新要求网络参数的数据包。如果这次数据包请求没有成功,那么在0.85T后还会再次发送数据包一次。正因如此,所以服务器端会启动port67监听客户端请求,而客户端会启动port68主动向服务器请求。 ①、在浏览器中输入www . qq .com 域名,操作系统会先检查自己本地的hosts文件是否有这个网址映射关系,如果有,就先调用这个IP地址映射,完成域名解析。
②、如果hosts里没有这个域名的映射,则查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。
③、如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/IP参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。
④、如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。
⑥、如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器。这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理qq.com的DNS服务器地址给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找qq.com域服务器,重复上面的动作,进行查询,直至找到www . qq .com主机。
⑦、如果用的是转发模式,本地DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把请求转至上上级,以此循环。找到最后把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。
注:从客户端到本地DNS服务器是属于递归查询,而DNS服务器之间使用的交互查询就是⑧迭代查询。
114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用,干净无广告,解析成功率相对来说更高,国内用户使用的比较多,而且速度相对快、稳定,是国内用户上网常用的DNS。 8.8.8.8是GOOGLE公司提供的DNS,该地址是全球通用的,相对来说,更适合国外以及访问国外网站的用户使用。NFS(Network File System)网络文件系统的缩写,最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件
NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来查看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当的便利
有权限的客户端
可以将NFS服务器中的共享目录
,挂载到本地的目录中
,这样客户端
就可以查看共享目录中的数据,当然也会受权限限制NFS客户端
与服务端的通讯过程
。 RPC主要用来管理NFS通信端口
NFS通信需要依靠 RPC(Remote Procedure Call) 远程过程调用的帮助,RPC主要是指每个NFS功能所对应的的Port number,并且回报给客户端,让客户端可以连接到正确的port上去
注册端口->达成协议->直接建立联系->达成协议->建立连接优点
节省本地存储空间,将常用的数据存放在一台服务器可以通过网络访问 简单容易上手方便部署非常快速,维护十分简单
缺点
* 局限性容易发生单点故障,及server机宕机了所有客户端都不能访问 * 在高并发下NFS效率/性能有限 * 客户端没有用户认证机制,且数据是通过明文传送, 安全性一般(一般建议在局域网内使用)
* NFS的数据是明文的,对数据完整性不做验证* 多台机器挂载NFS服务器时,连接管理维护麻烦
提供DNS服务的软件叫bind,服务名是named。
[root@localhost ~]# yum install bind -y[root@localhost ~]# rpm -ql bind
/etc/named.conf # bind主配置文件/etc/named.rfc1912.zones # 定义zone的文件/etc/rndc.conf # rndc配置文件/usr/sbin/named-checkconf # 检测/etc/named.conf文件语法/usr/sbin/named-checkzone # 检测zone和对应zone文件的语法/usr/sbin/rndc # 远程dns管理工具/usr/sbin/rndc-confgen # 生成rndc密钥/var/named/named.ca # 根解析库/var/named/named.localhost # 本地主机解析库/var/named/slaves # 从ns服务器文件夹
[root@localhost ~]# vim /etc/named.conf
options { 定义监听端口,如果所有地址都监听,则只写端口 listen-on port 53 { 127.0.0.1; }; listen-on-v6 port 53 { ::1; };
定义数据文件目录
directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt";统计档案、文件 memstatistics-file "/var/named/data/named_mem_stats.txt";分配统计目录 allow-query { localhost; };只允许本地主机进行查询 recursion yes;允许递归 logging {
指定日志记录分类和他们的目标位置
channel default_debug { file "data/named.run"; severity dynamic; };};zone "." IN { 定义区域 type hint; file "named.ca";};包含其他的配置文件include "/etc/named.rfc1912.zones";include "/etc/named.root.key";
FTP的传输使用的是TCP数据包协议。FTP服务器使用了两个连接,分别是命令通道与数据流通道。由于是TCP数据包,这两个连接都需要经过三次握手。
-建立命令通道的过程
port 21
来实现连接,这个过程需要三次握手。实现连接后客户端便可以通过这个连接来对FTP服务器执行命令,查询文件名、下载、上传等命令都是利用这个通道来执行的。 FTP 文件传输协议,应用层文件共享服务,应用于C/S架构端口:TCP 21(命令端口),TCP 20(数据端口)模式:主动模式和被动模式
FTP服务器的端口21号
主要用在命令的执行,但是牵涉到数据流时,就不是使用这个连接了。客户端在需要数据的情况下,会告知服务器端要用什么方式来连接,如果是主动连接,客户端会先随机启用一个端口,且通过命令通道告知FTP服务器这两个信息,并等待FTP服务器的连接。
FTP服务器主动向客户端连接
FTP服务器由命令通道了解客户端的需求后,会主动地由port 20
向客户端的数据端口连接,这个连接也会经过三次握手。此时FTP的客户端与服务器端会建立两条连接,分别用在命令的执行与数据的传递。而默认FTP服务器端使用的主动连接端口就是port 20。
数据传输通道是在有数据传输的行为时才会建立的通道,并不是一开始连接到FTP服务器就立刻建立的通道。
-注意:port 21主要接收来自客户端的主动连接,port 20则为FTP服务器主动连接至客户端。FTP主动模式优缺点分析
1. 优点服务端配置简单,利于服务器安全管理,服务器只需要开放21端口2. 缺点如果客户端开启了防火墙,或者客户端处于内网(NAT网关之后), 那么服务器对客户端端口发起的连接可能会失败
-客户端通过命令通道发出被动式连接要求,并等待服务器的回应。
FTP服务器启动数据端口,并通知客户端连接
如果你所使用的FTP服务器是能够处理被动式连接的,此时FTP服务器会先启动一个监听端口。这个端口号码可以是随机的,也可以自定义某一范围的端口,这要看FTP服务器软件而定。然后FTP服务器会通过命令通道告知客户端这个已经启动的端口port pasv,并等待客户端的连接。客户端随机取用大于1024的端口进行连接
然后客户端会随机取用一个大于1024的端口号来进行对主机的port pasv连接。如果一切都没有问题的话,那么FTP数据就可以通过客户端的随机端口和服务端的port pasv来传送了。 FTP被动模式优缺点分析1. 优点服务器配置管理复杂,不利于安全,服务器需要开放随机的高端口以便客户端可以连接, 因此大多数的FTP服务软件都可以手动配置被动端口的范围2. 缺点对于客户端网络环境没有要求,便于客户端进行管理
为了更安全的使用FTP协议,只介绍较为安全但功能较少的vsftpd这个软件。vsftpd(very secure FTP daemon)。vsftpd是一个设计的较为安全的FTP服务器软件,它的特点如下:
(1)vsftpd服务的启动者身份为一般用户,所以对linux系统的权限较低,对于linux系统的危害就相对降低了。此外,vsftpd也利用chroot这个函数来进行改换根目录的操作,使得系统工具不会被vsftpd这个服务所利用。
(2)任何需要具有较高执行权限的vsftpd命令均以一个特殊的上层程序所控制,该上层程序享有的较高执行权限功能已经被限制的比较低,并以不影响linux系统本身的系统为准。
(3)绝大部分FTP会使用到的额外命令功能(例如ls,cd等)都已经被整合到vsftpd主程序当中了,因此理论上vsftpd不需要使用到额外的系统提供的命令。
(4)所有来自客户端且想要使用这个上层程序所提供的较高执行权限的vsftpd命令的需求,均被视为不可信任的要求来处理,必须要经过相当程度的身份确认后,才可以利用上层程序的功能。
(5)关于上层程序,会使用chroot的功能来限制用户的执行权限。
1、计算机通电
,载入ROM芯片的BIOS程序,BIOS程序读取CMOS(电脑主板上可读写的RAM芯片),进行自检和初始化
2、读取执行第一个开始设备 MBR(主引导记录
,是装有Linux系统的硬盘的第一个扇区) 的boot loader(GRUB2多重操作系统启动管理器,用来引导不同的系统)
3、 载入kernel(实时操作系统)
,kernel会检测硬件和载入驱动程序
4、(呼叫systemd程序)当硬件驱动成功后
,kernel会主动呼叫systemd程序,以default.target流程开机
5、 (初始化,准备作业系统)systemd 执行sysinit.target初始化系统及basic.target准备作业系统
转载地址:http://onxzi.baihongyu.com/