当前位置:   article > 正文

Linux云计算 |【第一阶段】SERVICES-DAY3

Linux云计算 |【第一阶段】SERVICES-DAY3

主要内容:

分离解析介绍、NTP时间服务、基础邮件服务(MX记录)、部署postfix邮件服务器、自定义YUM仓库

实操提前准备:

① 设置SELinux、关闭防火墙服务(两台主机)

  1. [root@svr7 ~]# getenforce
  2. Permissive
  3. [root@svr7 ~]# systemctl stop firewalld
  4. [root@svr7 ~]# systemctl disable firewalld

 ② 主机1:安装软件包,配置主配置文件及地址库文件,重启服务并验证服务

  1. [root@svr7 ~]# yum -y install bind bind-chroot.x86_64   //安装软件包
  2. [root@svr7 ~]# cp /etc/named.conf /root/     //备份主配置文件
  3. [root@svr7 ~]# vim /etc/named.conf      //修改主配置文件
  4. options {                        //全局配置
  5. directory "/var/named";
  6. };
  7. zone "lol.com" IN {               //区域配置
  8. type master;
  9. file "lol.com.zone";
  10. };
  11. [root@svr7 ~]# cd /var/named/
  12. [root@svr7 named]# cp -p named.localhost lol.com.zone   //复制模板建立地址库
  13. [root@svr7 named]# vim lol.com.zone
  14. ...
  15. lol.com. NS svr7
  16. svr7 A 192.168.4.7
  17. www A 1.1.1.1
  18. vip A 2.2.2.2
  19. [root@svr7 named]# named-checkconf /etc/named.conf
  20. [root@svr7 named]# named-checkzone lol.com /var/named/lol.com.zone
  21. zone lol.com/IN: loaded serial 0
  22. OK
  23. [root@svr7 named]# systemctl restart named     //重启服务
  24. [root@svr7 named]# nslookup www.lol.com
  25. ;; connection timed out; no servers could be reached
  26. [root@svr7 named]# vim /etc/resolv.conf       //指定解析主机
  27. nameserver 192.168.4.7
  28. [root@svr7 named]# nslookup www.lol.com
  29. Server: 192.168.4.7
  30. Address: 192.168.4.7#53
  31. Name: www.lol.com
  32. Address: 1.1.1.1

③ 主机2:安装软件包,指定解析主机,验证服务

  1. [root@pc207 ~]# yum -y install bind bind-chroot.x86_64
  2. [root@pc207 ~]# vim /etc/resolv.conf        //指定解析主机
  3. nameserver 192.168.4.7
  4. [root@pc207 ~]# nslookup www.lol.com     //验证服务
  5. Server: 192.168.4.7
  6. Address: 192.168.4.7#53
  7. Name: www.lol.com
  8. Address: 1.1.1.1

一、分离解析概述(了解)

1)分离解析

当收到客户端的DNS查询请求的时候

  1. 能够区分客户端的来源地址;
  2. 为不同类别的客户端提供不同的解析结果(IP地址)

结论:不同客户的DNS查询请求,提供不同的解析结果,例如12306的访问,根据服务器就近原则,提供相应的解析结果。

2)典型适用场景

访问压力大的网站、购买CDN阿里云提供的内容分发服务

  • 在全国各地/不同网络内部署大量镜像服务节点;
  • 针对不同的客户端就近提供服务器;

二、NTP网络时间协议(Network Time Protocol)

作用:网络时间协议(NTP)用来同步网络上不同主机的系统时钟。所有受管理的主机可以与一台名为NTP服务器的指定时间服务器同步时间。

由于制造方面的差异,有些时钟走块走慢导致“时钟漂移”或“时间漂移”。为了尽量减小时钟漂移影响,使用NTP的主机定期可以与指定的NTP服务器进行联系,保持时钟同步。

国家授时中心服务器IP地址:210.72.145.39

NTP时钟以分层层次结构来加以组织。该层次结构中的每一层被称为层(stratum)。层这个概念描述了某机器距离权威时间源有多少个NTP跳,Stratum 0含有几乎没有时间漂移的时钟,比如原子钟。这些时钟无法通过网络直接使用。Stratum N服务器对照Stratum N-1服务器同步其时间。Stratum N时钟可以通过网络彼此连接。

(NTP最多可支持层次结构中的15层。Stratum 16被认为不同步、无法使用)

1)NTP服务端&客户端

所需软件包:ntp、chrony(提供标准时间服务)

主配置文件:/etc/chrony.conf

字段解析:

  • [server 0.centos.pool.ntp.org iburst]    //server用户客户端指向上层NTP服务器
  • [allow 192.168.4.0/24(all)]       //允许哪个IP或网络访问NTP
  • [Deny 192.168.4.1]     //拒绝哪个IP或网络访问NTP
  • [local stratum 10]     //设置NTP服务器的层数量,第10层
  • [iburst]      //快速同步时间

- 手动同步工具:ntpdata


主机1:

步骤1:检查并安装chrony软件包

  1. [root@svr7 ~]# yum -y install chrony     //安装软件包
  2. [root@svr7 ~]# rpm -q chrony
  3. chrony-3.2-2.el7.x86_64

步骤2:修改配置文件

  1. [root@svr7 ~]# vim /etc/chrony.conf      //修改主配置文件
  2.  3 #server 0.centos.pool.ntp.org iburst    //注释原配置的上层NTP服务器
  3.  4 #server 1.centos.pool.ntp.org iburst
  4.  5 #server 2.centos.pool.ntp.org iburst
  5.  6 #server 3.centos.pool.ntp.org iburst
  6.  26 allow all      //允许所有客户端
  7.  29 local stratum 10    //设置本机为第10层的时间服务器
  8. ...

步骤3:重启服务

[root@svr7 ~]# systemctl restart chronyd.service

主机2:

步骤1:安装软件包

  1. [root@pc207 ~]# yum -y install chrony
  2. [root@pc207 ~]# rpm -q chrony
  3. chrony-3.2-2.el7.x86_64

 步骤2:修改主配置文件

  1. [root@pc207 ~]# vim /etc/chrony.conf      //修改配置文件
  2. server 192.168.4.7 iburst    //设置指定的服务器同步时间(iburst快速同步)
  3. ...

步骤3:重启时间服务

[root@pc207 ~]# systemctl restart chronyd

步骤4:验证时间服务(客户端将时间修改错误)

  1. [root@pc207 ~]# date -s '2001-9-3'     //修改日期
  2. 2001年 09月 03日 星期一 00:00:00 CST
  3. [root@pc207 ~]# date
  4. 2001年 09月 03日 星期一 00:00:02 CST
  5. [root@pc207 ~]# systemctl restart chronyd    //重启服务,再查看是否同步
  6. [root@pc207 ~]# date
  7. 2021年 03月 18日 星期四 15:44:25 CST
  8.  
  9. [root@pc207 ~]# date -s '5:20'     //修改时间
  10. 2021年 03月 18日 星期四 05:20:00 CST
  11. [root@pc207 ~]# date
  12. 2021年 03月 18日 星期四 05:20:03 CST
  13. [root@pc207 ~]# systemctl restart chronyd    //重启服务,再查看是否同步
  14. [root@pc207 ~]# date
  15. 2021年 03月 18日 星期四 15:45:37 CST

三、基础邮件服务

邮件服务(Email Service)是一种用于发送、接收和管理电子邮件的系统。电子邮件是一种通过计算机网络进行信息交换的通信方式,它允许用户发送和接收文本消息、文件、图片和其他类型的数据。

邮件服务通常包括以下几个主要组件:

  1. 邮件用户代理(MUA):也称为电子邮件客户端,是用户用来撰写、发送、接收和管理电子邮件的软件。常见的MUA包括Microsoft Outlook、Mozilla Thunderbird、Apple Mail和基于Web的电子邮件服务如Gmail、Yahoo Mail等。

  2. 邮件传输代理(MTA):负责在邮件服务器之间传输电子邮件。MTA使用简单邮件传输协议(SMTP)来发送邮件。常见的MTA软件包括Postfix、Sendmail和Exim。

  3. 邮件投递代理(MDA):负责将邮件从MTA传递到用户的邮箱中。MDA通常在接收邮件的服务器上运行,并使用本地邮件传输协议(LMTP)或邮局协议(POP)/互联网消息访问协议(IMAP)将邮件投递到用户的邮箱。

  4. 邮件交换记录(MX记录):在域名系统(DNS)中,MX记录指定了一个域名的邮件服务器。当一封邮件发送到某个域名时,发送方的MTA会查询接收方域名的MX记录,以确定邮件应该发送到哪个邮件服务器。

  5. 邮件存储:用户的电子邮件通常存储在邮件服务器上,用户可以通过MUA使用POP或IMAP协议访问这些邮件。

邮件服务的工作流程大致如下:

  • 用户使用MUA撰写邮件,并通过SMTP协议将邮件发送到发送方的邮件服务器。
  • 发送方的邮件服务器(MTA)根据邮件的收件人地址查询接收方域名的MX记录,确定接收方的邮件服务器。
  • 发送方的MTA通过SMTP协议将邮件传输到接收方的邮件服务器。
  • 接收方的邮件服务器(MTA/MDA)将邮件投递到收件人的邮箱中。
  • 收件人使用MUA通过POP或IMAP协议从邮件服务器上获取邮件。

1)基本功能

  • 为用户提供电子邮箱存储空间(用户名@邮件域名)
  • 处理用户发出的邮件,传递给收件服务器
  • 处理用户收到的邮件,投递到邮箱

2)邮件通信的寻址

根据收件人地址找到目标邮件服务器;

  • 邮件相关的DNS设置(本域和外域,例如qq.com、sina.com)
  • 添加相应的MX记录、A记录(MX,Mali eXchange邮件交换)
  • SMTP简单邮件传输协议,默认端口25
  • POP3点对点协议版本3,默认端口110

案例:准备邮件案例环境(为lol.com域提供邮件相关解析)

  1. [root@svr7 ~]# vim /etc/named.conf      //修改主配置文件
  2. options {
  3. directory "/var/named";
  4. };
  5. zone "qq.com" IN {           //定义解析区域qq.com
  6. type master;
  7. file "qq.com.zone";
  8. };
  9. [root@svr7 ~]# cd /var/named/
  10. [root@svr7 named]# cp -p named.localhost qq.com.zone
  11. [root@svr7 named]# vim qq.com.zone      //建立地址库文件
  12. ...
  13. qq.com. NS svr7.qq.com.
  14. qq.com. MX 10 mail.qq.com.      //数字10为优先级,越小越优先
  15. svr7.qq.com. A 192.168.4.7
  16. mail.qq.com. A 192.168.4.7
  17. www.qq.com. A 1.1.1.1
  18. [root@svr7 named]# systemctl restart named   //重启服务
  19. [root@svr7 named]# cat /etc/resolv.conf
  20. nameserver 192.168.4.7
  21. [root@svr7 named]# nslookup mail.qq.com     //解析测试
  22. Server: 192.168.4.7
  23. Address: 192.168.4.7#53
  24. Name: mail.qq.com
  25. Address: 192.168.4.7
  26. [root@svr7 named]# host -t MX qq.com    //测试qq.com区域邮件交换记录
  27. qq.com mail is handled by 10 mail.qq.com.
  28.  
  29. [root@svr7 named]# host mail.qq.com    //测试域名完整解析
  30. www.qq.com has address 192.168.4.7

四、邮件服务基础

1)快速部署postfix邮件服务器

默认的标准配置即可为本机提供收/发邮件服务(若有必要,可扩大服务范围(邮件域))

配置文件:/etc/postfix/main.cf

- 字段解析:

  • [myorigin = $mydomain]    //默认补全的域名后缀
  • [inet_interfaces = localhost]     //只为本机使用邮件服务
  • [mydestination = $myhostname, localhost.$mydomain, localhost]   //判断目标是否为本域邮件

参考: https://blog.csdn.net/mycms5/article/details/78773308


步骤1:检查并安装postfix软件包

  1. [root@svr7 ~]# yum -y install postfix
  2. [root@svr7 ~]# rpm -q postfix
  3. postfix-2.10.1-6.el7.x86_64

步骤2:修改配置文件

  1. [root@svr7 ~]# vim /etc/postfix/main.cf
  2. ...
  3.  99 myorigin = qq.com      //默认补全的域名后缀(比如anjian@域名后缀)
  4. 116 inet_interfaces = all     //设置允许本机所有接口均提供邮件收发功能
  5. 164 mydestination = qq.com     //判断是否为本域邮件的依据
  6. ...

步骤3:重启postfix服务

  1. [root@svr7 ~]# systemctl restart postfix.service
  2. [root@svr7 ~]# netstat -anptu | grep :25
  3. tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      6098/master         
  4. tcp6       0      0 :::25                   :::*                    LISTEN      6098/master    

2)使用mail命令收发邮件

Mail发信操作

- 格式:mail -s ‘邮件标题’ [-r 发件人] 收件人[@收件域]...

- 选项:[-r] 指定发件人 //默认为root

Mail收信操作

- 格式:mail [-u 用户名]    //不加用户名,则显示root用户的邮件

补充:postfix自带功能,当配置文件误操作或有报错时,服务将发邮件反馈通知root,查看命令:# mail -u root


例如1:

[root@svr7 ~]# useradd yg    //添加用户yg和aj [root@svr7 ~]# useradd aj [root@svr7 ~]# mail -s 'test01' -r aj yg    //mail发信操作 hello world .      //一行只有一个点表示提交 EOT [root@svr7 ~]# mail -u yg     //mail收信操作 Heirloom Mail version 12.5 7/5/10.  Type ? for help. "/var/mail/yg": 1 message 1 new        //存放在目录/var/mail/yg >N  1 aj@qq.com             Thu Mar 18 14:34  18/500   "test01" & 1      //输入邮件编号,读取邮件内容 Message  1: From aj@qq.com  Thu Mar 18 14:34:24 2021 Return-Path: <aj@qq.com> X-Original-To: yg Delivered-To: yg@qq.com Date: Thu, 18 Mar 2021 14:34:24 +0800 From: aj@qq.com To: yg@qq.com Subject: test01      //标题“test01” User-Agent: Heirloom mailx 12.5 7/5/10 Content-Type: text/plain; charset=us-ascii Status: R   hello world          //邮件内容   & quit     //退出mail工具 Held 1 message in /var/mail/yg

例如2:利用管道非交互式发信操作

  1. [root@svr7 ~]# useradd yg    //添加用户yg和aj
  2. [root@svr7 ~]# useradd aj
  3. [root@svr7 ~]# mail -s 'test01' -r aj yg    //mail发信操作
  4. hello world
  5. .      //一行只有一个点表示提交
  6. EOT
  7. [root@svr7 ~]# mail -u yg     //mail收信操作
  8. Heirloom Mail version 12.5 7/5/10.  Type ? for help.
  9. "/var/mail/yg": 1 message 1 new        //存放在目录/var/mail/yg
  10. >N  1 aj@qq.com             Thu Mar 18 14:34  18/500   "test01"
  11. & 1      //输入邮件编号,读取邮件内容
  12. Message  1:
  13. From aj@qq.com  Thu Mar 18 14:34:24 2021
  14. Return-Path: <aj@qq.com>
  15. X-Original-To: yg
  16. Delivered-To: yg@qq.com
  17. Date: Thu, 18 Mar 2021 14:34:24 +0800
  18. From: aj@qq.com
  19. To: yg@qq.com
  20. Subject: test01      //标题“test01”
  21. User-Agent: Heirloom mailx 12.5 7/5/10
  22. Content-Type: text/plain; charset=us-ascii
  23. Status: R
  24.  
  25. hello world          //邮件内容
  26.  
  27. & quit     //退出mail工具
  28. Held 1 message in /var/mail/yg

五、自定义YUM仓库

1.作为Yum源需要准备内容:

  • 大量的RPM(.rpm)软件安装包文件
  • 针对这些软件包的repodata仓库档案(仓库数据文件)

2.repodata仓库档案数据

  • Filelists.xml.gz   //软件包的文件安装清单
  • Primary.xml.gz   //软件包的基本/主要信息
  • Other.xml.gz    //软件包的其他信息
  • Repomd.xml    //提供.xml.gz下载和检验信息

示例:构建及配置自定义YUM仓库

步骤1:搜集.rpm包文件集中到指定目录

1)将真机准备的tools.tar.gz压缩包传递到虚拟机-主机1(互联网下载软件包)

  1. [root@localhost 桌面]# ls /linux-soft/1     //达内真机每阶段软件包存放目录
  2. cobbler.zip  podman  tools.tar.gz
  3. [root@localhost 桌面]# scp /linux-soft/1/tools.tar.gz root@192.168.4.7:/root
  4. root@192.168.4.7's password:
  5. tools.tar.gz                                  100%  766KB  34.8MB/s   00:00  

2)查看虚拟机-主机1,检查tools.tar.gz压缩包

  1. [root@svr7 ~]# ls /root/
  2. anaconda-ks.cfg       named.conf    公共  视频  文档  音乐
  3. initial-setup-ks.cfg  tools.tar.gz  模板  图片  下载  桌面
  4. [root@svr7 ~]# tar -tf /root/tools.tar.gz    //查看tools.tar.gz压缩包内容
  5. tools/
  6. tools/other/
  7. tools/other/ntfs-3g-2014.2.15-6.el6.x86_64.rpm
  8. tools/other/boxes-1.1.1-4.el7.x86_64.rpm
  9. tools/other/sl-5.02-1.el7.x86_64.rpm
  10. tools/other/oneko-1.2-19.fc24.x86_64.rpm
  11. tools/other/cmatrix-1.2a-1.i386.rpm
  12. tools/inotify-tools-3.13.tar.gz

步骤2:释放压缩包并找到/tools/other目录作为仓库档案目录

  1. [root@svr7 ~]# tar -xf /root/tools.tar.gz -C /     //释放压缩包到根目录(或其他目录)
  2. [root@svr7 ~]# ls /
  3. 1.txt  boot  etc   lib    media  mydvd  proc  run   srv  tmp    usr
  4. bin    dev   home  lib64  mnt    opt    root  sbin  sys  tools  var
  5. [root@svr7 ~]# ls /tools/
  6. inotify-tools-3.13.tar.gz  other
  7. [root@svr7 ~]# ls /tools/other/
  8. boxes-1.1.1-4.el7.x86_64.rpm        oneko-1.2-19.fc24.x86_64.rpm
  9. cmatrix-1.2a-1.i386.rpm             sl-5.02-1.el7.x86_64.rpm
  10. ntfs-3g-2014.2.15-6.el6.x86_64.rpm

步骤3:使用createrepo工具创建仓库档案(仓库数据文件)

  1. [root@svr7 ~]# createrepo /tools/other/     //生成仓库数据文件
  2. Spawning worker 0 with 3 pkgs
  3. Spawning worker 1 with 2 pkgs
  4. Workers Finished
  5. Saving Primary metadata
  6. Saving file lists metadata
  7. Saving other metadata
  8. Generating sqlite DBs
  9. Sqlite DBs complete
  10.  
  11. [root@svr7 ~]# ls /tools/other/
  12. boxes-1.1.1-4.el7.x86_64.rpm        oneko-1.2-19.fc24.x86_64.rpm
  13. cmatrix-1.2a-1.i386.rpm             repodata
  14. ntfs-3g-2014.2.15-6.el6.x86_64.rpm  sl-5.02-1.el7.x86_64.rpm
  15.  
  16. [root@svr7 ~]# ls /tools/other/repodata/
  17. 4510d89472a46087687deedb43b44038238c057d85b0acd4d792dd276752ec31-other.sqlite.bz2
  18. 5c773aae466acfbcb92fc88af147ae313998ef4afe649c1e8f9a4442fe382420-primary.xml.gz
  19. 679b3de7d30fe5d9d49fd83a847234b13e78704cc85d9e3023db5eae6ef4ff90-filelists.xml.gz
  20. c7a3c785ad26f0c2aa64a252f0a16b5c1822fee51d133203c453686eddca898a-filelists.sqlite.bz2
  21. d9ce0aa24483f8411915398b66e2c8000ec3c5e6f11a83f48efb6885cea57329-other.xml.gz
  22. fe925dbab22913101e0c90af0af2a7ed5d10e202322a729cd222e2895753ef87-primary.sqlite.bz2
  23. repomd.xml

步骤4:修改仓库配置文件

  1. [root@svr7 ~]# vim /etc/yum.repos.d/mydvd.repo   //新建repo或修改原repo
  2. [mydvd]
  3. name=mydvd
  4. baseurl=file:///mydvd
  5. enable=1
  6. gpgcheck=0
  7.  
  8. [myrpm]      //修改唯一标识
  9. name=myrpm
  10. baseurl=file:///tools/other      //指定Yum仓库的路径
  11. enable=1
  12. gpgcheck=0
  13. [root@svr7 ~]# yum clean all
  14. [root@svr7 ~]# yum repolist
  15. 已加载插件:fastestmirror, langpacks
  16. Loading mirror speeds from cached hostfile
  17. mydvd                                                    | 3.6 kB     00:00     
  18. myrpm                                                    | 2.9 kB     00:00     
  19. myrpm/primary_db                                           | 4.8 kB   00:00     
  20. 源标识                                源名称                             状态
  21. mydvd                                 mydvd                            9,911
  22. myrpm                                 myrpm                               5
  23. repolist: 9,916

测试YUM仓库:

  1. [root@svr7 ~]# yum -y install sl cmatrix
  2. [root@svr7 ~]# sl     //小火车程序

趣味示例如图:

 [root@svr7 ~]# cmatrix [-C red]  //黑客帝国程序(该程序需要/dev/cdromd的依赖)

趣味示例如图:

扩展:createrepo 命令详解

链接:https://www.jianshu.com/p/59ca879584a1 

createrepo 命令,用于创建yum源(软件仓库),即为存放于本地特定位置的众多rpm包建立索引,描述各包所需依赖信息,并形成元数据;

- 格式:createrepo [option]

参数选项说明:

  • -u --baseurl  指定Base URL的地址
  • -o --outputdir  指定元数据的输出位置
  • -x --excludes  指定在形成元数据时需要排除的包
  • -i --pkglist  指定一个文件,该文件内的包信息将被包含在即将生成的元数据中,格式为每个包信息独占一行,不含通配符、正则,以及范围表达式。
  • -n --includepkg 通过命令行指定要纳入本地库中的包信息,需要提供URL或本地路径。
  • -q --quiet  安静模式执行操作,不输出任何信息。
  • -g --groupfile  指定本地软件仓库的组划分,范例如下:createrepo -g comps.xml /path/to/rpms
  • 注意:组文件需要和rpm包放置于同一路径下。
  • -v --verbose  输出详细信息。
  • -c --cachedir  指定一个目录,用作存放软件仓库中软件包的校验和信息。当createrepo在未发生明显改变的相同仓库文件上持续多次运行时,指定cachedir会明显提高其性能。
  • --update  如果元数据已经存在,且软件仓库中只有部分软件发生了改变或增减,则可用update参数直接对原有元数据进行升级,效率比重新分析rpm包依赖并生成新的元数据要高很多。
  • -p --pretty  以整洁的格式输出xml文件。
  • -d --database  该选项指定使用SQLite来存储生成的元数据,默认项。

 

小结:

本篇章节为 【第一阶段】SERVICES-DAY3 的学习笔记,可以初步了解到 分离解析介绍、NTP时间服务、基础邮件服务(MX记录)、部署postfix邮件服务器、自定义YUM仓库。除此之外推荐参考相关学习网址:


Tip:毕竟两个人的智慧大于一个人的智慧,如果你不理解本章节的内容或需要相关笔记、视频,可私信小安,请不要害羞和回避,可以向他人请教,花点时间直到你真正的理解

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/873204
推荐阅读
相关标签
  

闽ICP备14008679号