Linux教程:Linux 服务器安装、配置和维护的方法

今天马哥教育要跟大家分享的文章一篇Linux教程,关于Linux服务器装置、配置和维护的方法。熟悉Linux运维系统小伙伴们都知道。每个 IP地址都可以有一个主机名。 今天我将讨论 DNS服务器,特别是Linux DNS服务器,及其如何装置、配置和维护它下面我一起来看一看吧。

一、/etc/host文件

没有 DNS服务器的情况下,每个系统在外地网络上保管其主机名和相应 IP地址列表的副本是合理的特别是没有互联网连接的小型站点上。

Linux系统中,这个列表就是/etc/host文件。即使你没有 DNS服务器或 DNS服务器不可用,该文件也可以使用 /etc/host文件将 IP地址转换为名称。

也许你已经有 DNS服务器了但你也会因为其它原因而想保管这个文件。例如,系统可能需要在向外部查询之前在外地查找 DNS服务器的IP地址;这意味着系统在查询 DNS服务器之前先检索该文件,如果查找到对应的域则无须查询任何 DNS服务器直接将其转换为 IP地址。

试试编辑下 /etc/host文件,并添加以下信息:127.0.0.1google.com.

然后,返回你浏览器,输入 google.com看看结果如何。如果你系统上安装了Apach并且外地主机正在运行,浏览器会显示 localhost索引页,而不是Googl页面。

作为确认,可以将 google.com映射到任何网站的任何其他IP地址并查看结果。

因此这个文件所做的将 IP地址转换成名字,但这仅仅是同一互相连接的网络下。那么外部网络和众多系统的所有记录是如何维护的呢?

每个人都需要维护自己的/etc/host文件并自己更新吗?

更为稳健的域名服务是DNS服务器。

二、域名

当你访问网站时,可以输入 FQDNFulliQualifiDomainName完全限定域名)或类似 likegeeks.com或 www.google.com域名。域名中从右到左的两个点之间的每个文本依次是顶级域组件、二级域组件和三级域组件。

所以,com顶级域名组件;googl二级域组件;而 www三级域名组件。

实际上,当你访问任何网站时,浏览器会默认在域的末尾添加一个不可见的点,因此该域将像 www.google.com.一样。该点被称为根域。

该点是由一大堆称为根域名服务器的特殊服务器管理的截止这篇文章发表前,世界上有 13个根域名服务器。可以把他当成互联网的大脑 – 如果他失效了世界上就没有互联网了

为什么是13呢?因为如果世界的某处地震可能会破坏一个根服务器,所以其他服务器可以继续提供服务直到受影响的服务器重新上线。

这些根名称服务器按字母顺序命名,名称如 a.root-server.netb.root-server.net等。

三、顶级域名 或称作一级域名 TLD

已经见过顶级域名的组成局部,如 com可以认为,顶级域名为 DNS命名空间提供分类组织。

顶级域名(TLD根据地理或功能方面分为几类。

截止本文撰写时,网上有 800多个顶级域名。

顶级域名类别有:

通用的顶级域名如:org,.com,.net,.gov,.edu等等

国家代码顶级域名如:us,.ca等,分别对应美国和加拿大的国家代码

新的品牌顶级域名,允许组织创建最多 64个字符的TLD如:.Linux,.microsoft,.companynam等

基础架构顶级域名如:.arpa

四、子域名

当你访问一个类似 mail.google.com这样的网站,这里的mail就是google.com子域名.

只有 mail.google.com名称服务器知道他下面存在所有主机,所以 Googl会回复是否有一个叫 mail子域名。根名称服务器对此并不知情。

五、DNS服务器的类型

一共有三种 DNS服务器。

主 DNS服务器

这些服务器上存放了特定域名的配置文件,并且基于此权威地规定了特定域名的地址。主 DNS服务器知道全部在管辖范围的主机和子域名的地址。

辅助 DNS服务器

这些服务器作为主 DNS服务器的备份,也承担一定负载。主服务器知道辅助 DNS服务器的存在并且会向他推送更新。

缓存 DNS服务器

这些服务器上不存放特定域名的配置文件。当客户端请求缓存服务器来解析域名时,该服务器将首先检查其本地缓存。如果找不到匹配项便会询问主服务器。接着这条响应将被缓存起来。您也可以轻松地将自己的系统用作缓存服务器。

六、搭建 LinuxDNS服务器

Linux下有很多实现了DNS功能的包,不过我只关注 BINDDNS服务器。用于世界上大多数 DNS服务器。

如果你使用基于 RedHat发行版的Linux比方 CentOS可以像这样安装:$dnf-yinstalbind

如果你使用基于 Debian操作系统,比方 Ubuntu$apt-getinstalbind9

装置完成之后就可以启动它并让它计算机启动的时候一并启动起来。

$systemctlstartnamed

$systemctlenablnamed

七、配置 BIND

这个服务使用 /etc/named.conf作为配置文件。

BIND那个文件中使用像下面这样的一些语句:

options:用于全局 BIND配置。

logging:配置哪些需要记录,哪些需要忽略。推荐你看看 Linuxsyslogserver

zone:定义 DNS区域。

include:named.conf中包括另一个文件。

option语句中可以看到BIND工作目录在/var/nam

zon语句可用于定义 DNS区域,比如域名 google.com包括子域名 mail.google.com和 analytics.google.com

上述三个域名 主域名和子域名)都有一个由 zone语句定义的区域。

八、定义一个主域服务器

知道 DNS服务器类型有主域名服务器、辅助域名服务器和缓存域名服务器。不同于缓存域名服务器,主域名服务器和辅助域名服务器在应答过程中是处于同等地位的

/etc/named.conf配置文件中,可以使用如下语法定义一个主域服务器:

zon"likegeeks.com"{

typmaster;

fillikegeeks.com.db

};

包括主要区域信息的文件存放在/var/nam目录下,从 option可知,这是一个工作目录。

注意:软件服务器或者托管面板会根据你域名自动为你创建主域服务器信息的文件名,因此如果你域名是example.org那么你主域服务器信息的文件就为 /var/named/example.org.db

类型为 master也就是说这是一个主域服务器。

九、定义一个辅助域服务器

同定义一个主域服务器一样,辅助域服务器的定义稍微有些变化:

zon"likegeeks.com"{

typslave;

mastIPAddresslist;;

fillikegeeks.com.db

};

对于辅助域服务器来说,域名和主域服务器是一样的上述语法里的slave类型表示这是一个辅助域服务器,masterIPAddresslist表示辅助域服务器中区域文件内的信息都是通过主域服务器中区域文件内的信息复制过来的

十、定义一个缓存服务器

即使你已经配置了主域或者辅助域服务器,仍有必要(不是必需)定义一个缓存服务器,因为这样你可以减少 DNS服务器的查询次数。

定义缓存服务器之前,需要先定义三个区域选择器,第一个:

zon"."IN{typehint;fil"root.hint";};

zon"."IN{typehint;fil"root.hint";};

zon"."IN{typehint;fil"root.hint";};

zon"localhost"IN{typemaster;fil"localhost.db";};

定义第三个区域是为了反向查找到外地主机。这种反向查找是把本地的IP地址执向本地主机。

zon"0.0.127.in-addr.arpa"IN{

typmaster;

fil"127.0.0.rev";

};

把这三个区域信息放到/etc/named.conf文件里,系统就可以以缓存服务器来工作了但是如何引用类似 likegeeks.com.db,localhost.db,和 127.0.0.rev这些文件中的内容呢?

这些文件包括具有某些选项的每个区域的DNS记录类型。那么,这些 DNS记录类型是什么以及它如何写的?

十一、DNS记录类型

数据库文件包括诸如 SOA NSAPPMXCNA ME和 TXT内的记录类型。

看看每一种类型都是如何记录的吧。

SOA 起始授权机构记录

SOA 记录按如下形式开始描述一个站点的DNS条目:

example.com.86400INSOA ns1.example.com.mail.example.com.

2017012604;serial

86400;refresh,seconds

7200;retry,seconds

3600000;expire,seconds

86400;minimum,seconds

第一行以域名 example.com开始,以句号结束—该语句和 /etc/named.conf文件中的区域定义是一致的要始终记得,DNS配置文件是极其挑剔的

IN告诉域名服务器:这是一条网络记录。

SOA 告诉域名服务器:这是一条起始授权机构记录。

ns1.example.com.该文件所在域的域名服务器的完全合格域名(FQDN:FulliQualifiDomainName

mail.host.com.域管理员的邮箱地址。会发现这个邮箱地址没有 @标志,而是被句号所取代,并且末尾还有一个句号。

第 2行是一个序列码,被用来告诉域名服务器文件是什么时候升级的因此,如果你对区域码做了变卦,必需对这个序列码进行递增。这个序列码的格式是YYYYMMDDxx其中的xx从 00开始的

第 3行是每秒刷新率。这个值被用来告诉第二个域名服务器查询主服务器中的记录是否已经被更新的频率。

第 4行是每秒重试的频率。如果第二个服务器多次尝试连接主域名服务器来进行更新检测,但无法连接上的时候,第二个服务器就会在每秒内重试指定的数值次数。

第 5行是超时指示。其目的为了第二个服务器能将区域数据缓存下来。这个值告诉这些服务器如果它不能连接到主服务器来进行更新,那么它就会在这个指定数值秒数之后抛弃这个值。

第 6行告诉缓存服务器,如果它不能连接到主域名服务器时,应该在超时前等待多久。

NS:NameServerRecord名称服务器记录)

NS记录用于指定哪个名称服务器维护该域的记录。

可以这样编写的NS记录:

INNSns1.example.com.

INNSns2.example.com.

并不需要有 2个 NS记录,但是通常偏好有备份名称服务器。

A 和 AA A A :AddressRecord地址记录)

A 记录用于提供从主机名到IP地址的映射 supportINA192.168.1.5

如果你地址为 192.168.1.5上的support.example.com上有一个主机,可以像上面的例子那样输入。

请注意,所写的主机并没有句号。

PP:PointerRecord指针记录)

PP记录用于执行反向名称解析,允许某人指定 IP地址然后找出对应的主机名。

这与 A记录的功能相反:192.168.1.5INPPsupport.example.com.

这里,键入具有点号的完整主机名。

MX:MailExchangRecord邮件交换记录)

MX记录告诉其他站点关于你所在域的邮件服务器地址:example.com.INMX10mail.

当然这个域以句号结束。数字 10邮件服务器的重要性标志,如果你拥有多个邮件服务器,其中较小的数字不太重要。

CNA ME:CanonNameRecord权威名称记录)

CNA ME记录允许你为主机名创建别名。当你想提供一个易于记住的名称时,这很有用。

假设某个站点具有一个主机名为 whatever-bignameis.example.comWeb服务器,并且由于系统是Web服务器,因此可以为主机创建一个名为 wwwCNA ME记录或者别名。

可以创建名为 www.example.com域名创立 CNA ME记录:

whatever-bignameiINA192.168.1.5

wwwINCNA MEwhatever-bignameis

第一行通知 DNS服务器关于别名的位置。第二行创建一个指向 www别名。

TXT记录

您可以将任何信息存储到TXT记录中,例如你联系方式或者你希望人们查询 DNS服务器时可获得的任意其他信息。

可以这样保管 TXT记录:example.com.INTXTYOURINFOGOESHERE.

此外,RP记录被创建为对 host联系信息的显式容器:example.com.INRPmail.example.com.example.com

十二、DNSTTL值

/etc/named.conf文件的顶部,这里有一个 $TTL条目。

该条目告诉 BIND每个单独记录的TTL值(timetolive生存时间值)

以秒为单位的数值,比方 14,400秒(4个小时)因此 DNS服务器最多缓存你域文件 4个小时,之后就会向你DNS服务器重新查询。

可以降低这个值,但是默认值通常是合理的除非你知道你正在做什么。

十三、捕获配置错误

当您写入域文件时,也许您忘记了一个句号或空格或其他任意错误。

可以从日志诊断 LinuxDNS服务器错误。BIND服务通过 /var/log/messag上的错误,可以使用 tail命令来检查实时错误日志,须使用 -f选项:$tail-f/var/log/messag

因此,当你编写域文件或修改 /etc/named.config偏重新启动服务时,显示错误之后,可以从日志中轻松识别错误类型。

十四、Host命令

胜利添加或修改记录后,可以使用 host命令检查主机是否正确解析。

host命令允许你将主机名解析为 IP地址:$hostexample.com

此外,可以执行反向查找:$host192.168.1.5

十五、Whoi命令

whoi命令用于确定域名的所有权及其拥有者的e-mail地址和联系电话:$whoiexample.com.

十六、Rndc命令

rndc工具可用于平安地管理名称服务器,因为与服务器的所有通信均通过数字签名进行身份验证。

此工具用于控制名称服务器和调试问题。可以通过以下方式检查 LinuxDNS服务器的状态:$rndcstatu

此外,如果你更改任何域 zone文件,您可以重新加载服务,而无须重启命名服务:$rndcreloadexample.com

这里,重新加载 example.com域文件。可以重新加载所有域:$rndcreload

或者你可以添加新的域或更改服务的配置。可以重新加载配置,如下所示:$rndcreconfig

十七、LinuxDNS解析器

已经知道 LinuxDNS服务器的工作原理以及如何配置它另一部分当然是与 DNS服务器交互的正在与 DNS服务器通信以将主机名解析为 IP地址的客户端。

Linux上,解析器位于 DNS客户端。要配置解析器,可以检查 /etc/resolv.conf这个配置文件。

基于 Debian发行版上,可以检查 /etc/resolvconf/resolv.conf.d/目录。

/etc/resolv.conf文件中包括客户端用于获取其本地 DNS服务器地址所需的信息。

第一个表示默认搜索域,第二个表示主机名称服务器 nameservIP地址。

名称服务器行告诉解析器哪个名称服务器可使用。只要你BIND服务正在运行,就可以使用自己的DNS服务器。

使用 LinuxDNS服务器非常简单。希望你发现这篇文章很有用,并且很容易理解。

以上就是马哥教育今天为大家分享的关于Linux服务器装置、配置和维护的方法的文章,希望本篇文章能够对小伙伴们有所协助。想要了解更多Linux相关知识记得关注马哥教育官网。最后祝愿小伙伴们工作顺利!

声明:文章来源于网络,侵删!

相关新闻

历经多年发展,已成为国内好评如潮的Linux云计算运维、SRE、Devops、网络安全、云原生、Go、Python开发专业人才培训机构!