zoukankan      html  css  js  c++  java
  • Linux基础服务

    RPMYUM

    RPM就是Red Hat Package Manger(红帽软件包管理工具)的缩写。RPM 是以一种数据库记录的方式来将你所需要的软件安装到你的 Linux 系统的一套管理机制。

    yumYellow dog Updater, Modified的缩写,目的就是为了解决RPM的依赖关系的问题,方便使用者进行软件的安装、升级等等工作。

    1. Linux中软件管理工具对比:

     

    CentOS的软件管理机制也是RPM

    1.1 RPM

    RPM(Red Hat Pakeage Manger)即红帽软件包管理工具。

    先来说一下rpm文件的格式:

    Name(软件包名称)+version(版本)+release(发布版本/修正号)+architectures(适用平台)+.rpm(隐藏扩展名)

    rpm指令:-i 安装 -U 升级 -e 移除 -v 详细处理信息 -h 安装进度显示

    查询已安装的软件包信息的命令:

    rpm qa (query all)查询操作系统上安装的全部软件包

    qf 文件名:(file)显示这个文件是由哪个软件包安装的

    rpm qi 软件包名:(information)显示这个软件包的信息

    rpm ql 软件包名:(list)列出这个软件包中所包含的全部文件

    RPM包的属性依赖性问题:

    所谓的RPM软件包的属性依赖性问题,即这个软件包的安装依赖于其他软件包的安装。

    1.2 YUM

    YUMYellow dog Updater, Modified)目的就是为了解决RPM的依赖关系的问题,方便使用者进行软件的安装、升级等工作。

    yum的配置一般有两种方式,一种是直接配置/etc目录下的yum.conf文件,另外一种是在/etc/yum.repos.d目录下增加.repo文件。

    指令:

    yum y install 软件名:安装软件

    yum y remove 软件名:删除软件

    yum clean all:清除yum缓存

    yum y groupinstall 组件名:安装组件

    yum y groupremove 组件名:删除组件

    yum search:查找软件包

    1.3 安装

    1.mount /dev/sr0 /mnt(挂载)

    2.cd /mnt/Packages/

    3.ls

    4.rpm -ivh dhcp-4.2.5-42.el7.centos.x86_64.rpm(上一步查看可以找到)

    5.rpm -qa dhcp

    6.rpm -ivh vim-*(此时会出现依赖问题)

    7.yum -y install vim

    8.cd /etc/yum.repos.d(上文说过有两种方式这是其中一种)

    9.ll

    10.vim CentOS-Base.repo

    11.mkdir XXXXXX可自定义)

    12.mv ./星号.repo ./XXX(与上面保持一致)将所有以.repo结尾的文件移动到XXX

    13.vim XXX.repo(与上面保持一致)

    14.在文本中写入:[XXX](与上面保持一致)

    name=XXX(与上面保持一致)

    baseurl=file:///mnt

    gpgcheck=0 (0:1:)

    :wq

    注意:yum一次只能运行一个指令,若同时开启第二个yum指令会等待倒计时

    Ctrl+C中断第二个指令

    服务

    系统服务

    系统为了某些功能必须要提供一些服务 (不论是系统本身还是网络方面),这个服务就称为 service

    系统服务:服务一经启动,除非因为关闭系统或管理者手动结束服务,否则都将在后台执行。

    系统服务的特性

    a占用系统资源较多

    b响应速度较快

    一般用service管理系统服务

    临时服务

    临时服务平时并不会启动,而是当客户端请求时才会被启动,使用完毕就会结束。

    了解临时服务的特性:

    a响应速度较慢

    b节省系统资源

    管理临时服务

    临时服务由超级守护进程xinetd管理,通过命令service xinetd start 开启xinetd,以监听临时服务。

    Telnet

    telnet协议以明文的方式传送所有数据(包括账号和口令),数据在传输过程中很容易被入侵者窃听会篡改,所以建议在对安全性不高的环境下使用。

    SSH

    ssh是一个在应用程序中提供安全通信的协议,通过ssh可以安全地访问服务器。

    公钥加密体系结构(重要) 公钥加密,私钥解密

     

    Samba服务

     samba是一个网络服务器,用于LinuxWindows之间共享文件。

    samba端口号

    samba (启动时会预设多个端口)

    数据传输的TCP端口 139、445

    进行NetBIOS名称解析之类工作的UDP端口就 137、138

    Samba的功能:

    ① 分享档案与打印机服务;

    ② 可以提供用户登入 SAMBA 主机时的身份认证,以提供不同身份者的个别数据;

    ③ 可以进行 Windows 网络上的主机名解析 (NetBIOS name)

    ④ 可以进行装置的分享 (例如 Zip, CDROM...)

    Samba工作原理:

    Samba服务功能强大,这与通信是基于SMB协议有大的关系。SMB协议不仅能够提供目录和打印机共享,还支持认证和权限设置等功能。在早期,SMB运行于NBT协议(NetBIOS over TCP/IP)上,使用UDP协议的137138TCP协议的139端口,但随着后期开发,它可以直接运行于TCP/IP协议上,没有额外的NBT层,使用TCP协议的445端口。

    通过Samba服务,Windows用户可以通过【网上邻居】窗口查看到Linux服务器中共享的资源,同时Linux用户也能够查看到服务器上的共享资源。Samba服务的具体工作过程如图

     

    协议协商

    客户端在访问Samba服务器时,首先由客户端发送一个SMB negprot请求数据报,并列出它所支持的所有SMB协议版本。服务器在接收到请求信息后开始响应请求,并列出希望使用的协议版本。如果没有可使用的协议版本则返回oXFFFFH信息,结束通信。

    建立连接

    SMB协议版本确定后,客户端进程向服务器发起一个用户或共享的认证,这个过程是通过发送SesssetupX请求数据报实现的。客户端发送一对用户名和密码或一个简单密码到服务器,然后服务器通过发送一个SesssetupX请应答数据报来允许或拒绝本次连接。

    访问共享资源

    当客户端和服务器完成了协商和认证之后,它会发送一个TconSMB TconX数据报并列出它想访问网络资源的名称,之后服务器会发送一个SMB TconX应答数据报以表示此次连接是否被接受或拒绝。

    断开连接

    连接到相应资源,SMB客户端能够open SMB打开一个文件,通过read SMB读取文件,通过write SMB写入文件,通过close SMB关闭文件。

    配置文件详解参考教案。

    FTP服务

    FTP (File transfer protocol) 是传输协议之一,他最主要的功能是在服务器与客户端之间进行档案的传输。

    vsftpd软件包:“very secure”的FTP服务器软件

    ftp端口号

    主动模式:消息端口21,数据端口20

    被动模式:消息端口21,数据端口随机

    ftp的工作原理

    建立连接:

    客户端发送连接请求,同时打开一个大于 1024 的端口,比如 1031 端口,若 FTP 服务器侦听到该请求,则会在 1031 端口和 FTP 的 21 端口之间建立起一个 FTP 会话连接。

    传输数据:

    当需要传输数据时,客户端再动态的打开一个大于 1024 的端口连接到 FTP 得 20 端口,并在这个两个端口之间进行数据传输。

    FTP 协议中,控制连接均有客户端发起,而数据连接有两种工作方式:

    PORT 主动方式和PASV 被动方式

    主动

    client              server

    1024+ ---------------> 21

    1024+N <-------------- 20

    客户端使用1024 以上的端口连接服务器的21 号端口,并且会事先开启一个1024+N 的端口准备让服务器来连接,服务器得知客户端准备的端口后,用20 号端口与客户端连接,创建数据链路时server 端处于主动去连接客户端的状态固称为主动传输模式

    被动

    client               server

    1024+ ---------------> 21 1024+M

    1024+ <--------------

    1024+N --------------->1024+M

    客户端使用1024 以上的端口连接服务器的21 号端口,服务器接到连接请求后,开启一个1024+M 的端口等待客户端来连接,再通知客户端这个等待连接的端口号是1024+M,客户端接到服务器端的信息后,开启新的一个1024+N 的端口与1024+M 进行连接,创建数据连接时,server 端处于被客户端连接的状态,固称为被动传输模式.

    vsftp 默认是根据客户端不同而使用不同模式,windows 客户端则使用主动,linux 客户端则使用被动

    可以用 pasv_enable=NO 来强制使用主动

    NFS服务

    NFS即网络文件系统(NetWork File System),是使不同的计算机之间能通过网络进行文件和目录共享的一种网络协议,多用于类UNIX系统中的网络中。

    windows网络共享服务或samba服务用于办公居于网共享,而护粮网中小型网站集群架构后端常用NFS进行数据共享,如果是大型网站,那么有可能还会用到更复杂的分布式文件系统(mfsGlusterFS,FastDFS)。

    RPC服务(使用的是固定端口111最主要的功能就是记录每个NFS功能所对应的端口号,并且在NFS客户端请求时将该端口和功能对应的信息传递给请求数据的NFS客户端,从而确保客户端可以链接到正确的NFS端口上去,达到实现数据传输交互数据目的。

    NFS端口号

    NFS的功能所对应的端口无法固定,它会随机取用一些未被使用的端口来作为传输只用。

    一般nfsudp 2049和其他挂载端口等,rpc111端口。

    NFS 服务配置过程中,其中 mountd, statd lockd 进程可以使用固定端口号。

    修改 /etc/sysconfig/nfs 文件  

    MOUNTD_PORT="4002"

    STATD_PORT="4003"

    LOCKD_TCPPORT="4004"

    LOCKD_UDPPORT="4004"

    NFS的工作原理

     

    当访问程序通过NFS客户端向NFS服务器端存取文件时,其请求数据流程大致如下:

    1)首先用户访问网站程序,由程序在NFS客户端上发出存取NFS文件的请求,这时NFS客户端(即执行程序的服务器)的RPC服务(rpcbind 服务)就会通过网络向NFS服务器端的RPC服务(rpcbind 服务)的111端口发出NFS文件存取功能的询问请求。

    2)NFS服务器端的RPC服务(rpcbind服务)找到对应的已注册的NFS端口后,通知NFS客户端的RPC服务(rpcbind 服务)。

    3)此时NFS客户端获取到正确的端口,并与NFS daemon联机存取数据。

    4)NFS客户端把数据存取成功后,返回给前端访问程序,告知用户存取结果,作为网站用户,就完成了一次存取操作。

     因为NFS的各项功能都需要向RPC服务( rpcbind服务)注册,所以只有RPC服务才能获取到NFS服务的各项功能对应的端口号(portnumber)、PID、NFS在主机所监听的IP等信息,而NFS客户端也只能通过向RPC服务询问才能找到正确的端口。也就是说,NFS需要有RPC服务的协助才能成功对外提供服务。从上面的描述,我们不难推断,无论是NFS客户端还是NFS服务器端,当要使用NFS时,都需要首先启动RPC服务,NFS服务必须在RPC服务启动之后启动,客户端无需启动NFS服务,但需要启动RPC服务。

    DNS服务

    阶层式管理主机名对应 IP 的系统(Berkeley Internet Name Domain, BIND)。

    这也是目前全世界使用最广泛的领域名系统 (Domain Name System, DNS) ,透过 DNS ,我们不需要知道主机的 IP ,只要知道该主机的名称,就能够轻易的连上该主机了!

    DNS 是一种因特网的通讯协议名称, 至于 Bind则是提供这个 DNS 服务的软件.

    主机名分层的好处是:

    ① 主机名修改的仅需要自己的DNS更动即可,不需要通知其他人。

    ② 只要主机名经过上层合法的DNS服务器设定,就可以在Internet上面被查询到,这样维护简单,机动性也很高

    ③ DNS服务器对主机名解析结果的快取时间

    ④ 每次查询到的结果都会储存在 DNS 服务器的高速缓存中,以方便若下次有相同需求的解析时,能够快速的响应。通常是10分钟到三天之内。

    ⑤ 可持续向下授权(子领域名授权)

    ⑥ 每层只管当前层的子层地址在哪。

    端口号

    DNS服务端口UDP /TCP 53DNS开始以udp传输,若未查到完整信息,则重新以TCP传输;所以DNSdaemon,会同时启动tcp,udpport 53

    原理

    相信大家可能知道 windows 或者 linux 系统层面的/etc/hosts 文件是:IP 地址与域名的对应关系。

    我们一般访问网站的步骤:

    打开网页-------输入网址 www.sb.com-----查看本地的 DNS 库是否存在该网站域名与对应 ip 地址的对应关系

    接下来分为两种情况:

    本地存在该网站域名相对应的 IP 地址,然后我们直接根据本地缓存的 DNS 进行解析,然后访问该域名对应的 IP 地址,然后进行 TCP 的三次握手,进行与网站的连接,当然我们访问网站完毕之后,我们又进行了四次挥手,然后断开连接。(前面个详细解释 TCP 的三次握手与四次挥手)

    本地不存在该网站域名与 IP 地址的对应关系,然后我们本地的 DNS 系统,也就是 LDNS(简称local DNS);开始从 DNS 系统的根进行请求对 www.sb.com 域名的解析,并且针对 DNS 系统的各个阶层进行查找,进行一级一级的查找,最终会找到 www.sb.com 这个域名,当然 DNS 系统里这个域名的进行授权的 DNS 服务器正是我们企业购买的 DNS 服务器,反之,没有该域名相应的解析授权的 DNS 服务器,也就表明该网站没有搭建成功;

    DNS 服务器进行逐级查找结构图:

     

    以上两种方法均让用户获取网站的域名相对应的 IP 地址

    接下来分为两种情况:

    该域名的授权 DNS 服务器会把该域名对应的 IP 地址发送到请求方(客户端)的本地的 DNS 服务器;

    如果用户本地的 DNS 服务器存在该域名对应的 IP 地址,直接访问;

    最后:

    客户端的浏览器获得了该域名的对应的 IP 地址,该网站的服务器收到客户端的请求进行响应处理,将客户端请求的内容返回给客户端的浏览器,至此 用户访问网站的过程就完成了

    总结:

    进行本地 DNS 查找以及授权 DNS 服务器的查找,获得 IP 地址,并且加载本地 DNS 的缓存进行建立 TCP 连接的过程(三次握手),发送 http 报文以及请求报文的细节,web 服务器的响应并且处理客户端的请求,关闭 TCP 连接(四次挥手);

    区域文件内各种记录类型

    1)掌握SOA记录 :起始授权记录(说明负责解析的DNS服务器中哪一个是主服务器)

    2)掌握NS记录:名称服务器(说明了这个区域里,有多少个服务器来承担解析服务,说明这个区域有哪些DNS服务器负责解析)

    3)灵活运用A记录:主机记录(说明ip地址跟域名的一个对应关系)

    4PTR:就是指向 (PoinTeR) 的缩写,后面记录的数据就是反解到主机名

    5)了解CNAME记录:别名记录

    6)了解MX记录:邮件交换记录,指明区域当中的邮件服务器

    DNS服务器的分类

    1、DNS,辅助DNS和惟缓存DNS(DNS转发)

     主服务器:在特定区域内具有唯一性、负责维护该区域内的域名与IP地址对应关系。

     从服务器:从主服务器中获得域名与IP地址对应关系并维护,以防主服务器宕机等情况。

     缓存服务器:通过向其他域名解析服务器查询获得域名与IP地址对应关系,提高重复查询时的效率.

    2 正向解析:  将主机名称解析为IP地址。

    反向解析: IP地址解析为主机名称。

  • 相关阅读:
    数据结构 C#描述 第七章 第二部分
    ASP.NET自定义控件组件开发 第一章 待续
    数据结构 C#描述 第五章 栈和队列
    新手写自定义分页控件
    为什么要自己写控件页不用网上成熟的控件呢?
    设计模式之间可以相互"功能替换"吗?
    转:说说大型高并发高负载网站的系统架构
    自定义控件开发之自定义视图状态
    为什么要自己写控件而不用网上成熟的控件(续:源代码)
    C#面试题之排序
  • 原文地址:https://www.cnblogs.com/wjy879922714/p/11185753.html
Copyright © 2011-2022 走看看