当前位置:首页 > 行业动态 > 正文

如何在CentOS系统中配置DNS服务器地址?

CentOS配置DNS服务器地址指南

在CentOS上配置DNS服务器地址是一项重要的任务,它能够确保系统能够正确解析域名,本文将详细介绍如何在CentOS上配置DNS服务器地址,包括通过修改配置文件、使用NetworkManager命令行工具以及安装和配置BIND DNS服务器的方法。

如何在CentOS系统中配置DNS服务器地址?  第1张

一、确认当前DNS配置

在修改DNS配置之前,首先需要确认当前的DNS配置,可以通过以下命令查看当前的DNS服务器地址:

cat /etc/resolv.conf

如果输出的内容中包含了nameserver行,则表示当前已经配置了DNS服务器。

nameserver 8.8.8.8
nameserver 8.8.4.4

这些行表示当前系统使用的是Google的公共DNS服务器(8.8.8.8和8.8.4.4)。

二、修改DNS配置

1. 临时修改/etc/resolv.conf文件

直接编辑/etc/resolv.conf文件可以临时更改DNS服务器地址,使用以下命令打开文件:

sudo vi /etc/resolv.conf

在文件中添加或修改nameserver行,指定需要使用的DNS服务器的IP地址,要使用Google的公共DNS服务器,可以添加以下行:

nameserver 8.8.8.8
nameserver 8.8.4.4

保存并关闭文件后,可以使用以下命令使修改立即生效:

sudo systemctl restart network

需要注意的是,这种修改方法在系统重启后可能会丢失,因为NetworkManager可能会重新生成/etc/resolv.conf文件。

2. 永久修改DNS配置(推荐方式)

为了永久修改DNS配置,建议使用NetworkManager命令行工具或修改网卡配置文件。

(1)使用nmcli命令修改DNS配置

查看当前的网络连接名称:

nmcli connection show

使用以下命令修改指定网络连接的DNS服务器地址(将YourConnectionName替换为实际的网络连接名称,DNS1和DNS2替换为所需的DNS服务器地址):

nmcli connection modify YourConnectionName ipv4.dns "DNS1 DNS2"
nmcli connection modify YourConnectionName ipv4.ignore-auto-dns yes

重新启动网络连接以使修改生效:

nmcli connection up YourConnectionName

(2)修改网卡配置文件

另一种方法是直接修改网卡的配置文件,网卡配置文件通常位于/etc/sysconfig/network-scripts/目录下,并以ifcfg-网卡名称命名(例如ifcfg-eth0),使用文本编辑器打开相应的配置文件:

sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0

在文件中找到以DNS1、DNS2为关键字的行,如果不存在,则添加它们,并将其值设置为所需的DNS服务器地址。

DNS1=8.8.8.8
DNS2=8.8.4.4

如果文件中包含PEERDNS=yes,并且想要使用静态设置的DNS而不是DHCP分配的DNS,需要将其更改为PEERDNS=no。

保存文件并退出编辑器后,重新启动网络服务以使新的DNS设置生效:

sudo systemctl restart network

三、安装和配置BIND DNS服务器

除了修改系统的DNS配置外,还可以在CentOS上安装和配置BIND DNS服务器,以实现更复杂的DNS功能,如正向解析和反向解析,以下是详细的步骤:

1. 安装BIND及其相关工具

需要安装BIND软件包和相关的工具:

sudo yum install bind bind-utils -y

2. 修改主配置文件

编辑BIND的主配置文件/etc/named.conf,设置监听端口和允许查询的地址:

sudo vi /etc/named.conf

在文件中添加或修改以下内容:

options {
    listen-on port 53 { any; };
    directory       "/var/named";
    dump-file       "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";
    allow-query     { any; };
};

3. 配置正向解析区域文件

创建或编辑正向解析的区域文件,假设要配置example.com域的正向解析,可以按照以下步骤操作:

(1)编辑区域配置文件

sudo vi /etc/named.rfc1912.zones

在文件中添加以下内容(注意替换example.com为实际的域名):

zone "example.com" IN {
    type master;
    file "forward.example.com";
    allow-update { none; };
};

(2)创建区域数据文件

在/var/named目录下创建forward.example.com文件,并添加以下内容:

$TTL 86400
@   IN  SOA     ns1.example.com. admin.example.com. (
                 2         ; Serial
             3600        ; Refresh
              1800       ; Retry
            604800      ; Expire
             86400 ) ; Minimum TTL
                 ) NS,ns1.example.com.
@               NS      ns1.example.com.
@               A       192.168.1.1
ns1             A       192.168.1.1
www             CNAME   ns1.example.com.

4. 配置反向解析区域文件

类似地,可以配置反向解析区域文件,假设要配置192.168.1.0/24网段的反向解析,可以按照以下步骤操作:

(1)编辑区域配置文件

sudo vi /etc/named.rfc1912.zones

在文件中添加以下内容:

zone "1.168.192.in-addr.arpa" IN {
    type master;
    file "reverse.example.com";
    allow-update { none; };
};

(2)创建区域数据文件

在/var/named目录下创建reverse.example.com文件,并添加以下内容:

$TTL 86400
@   IN  SOA     ns1.example.com. admin.example.com. (
                 2         ; Serial
             3600        ; Refresh
              1800       ; Retry
            604800      ; Expire
             86400 ) ; Minimum TTL
                 ) NS      ns1.example.com.
@               NS      ns1.example.com.
@               A       192.168.1.1
1                PTR     ns1.example.com.
2                PTR     ns1.example.com.

5. 启动并测试BIND服务

启动BIND服务并设置为开机自启:

sudo systemctl enable named
sudo systemctl start named

使用dig命令测试正向和反向解析是否配置成功:

dig @localhost www.example.com
dig -x @localhost 192.168.1.1

如果配置正确,应该能够看到相应的解析结果。

四、归纳与FAQs

1. CentOS如何更改DNS服务器?

答:CentOS更改DNS服务器的方法有多种,包括临时修改/etc/resolv.conf文件、使用nmcli命令行工具永久修改DNS配置以及直接修改网卡配置文件,具体步骤如下:临时修改/etc/resolv.conf文件,使用vi命令编辑文件并添加或修改nameserver行;永久修改DNS配置,推荐使用nmcli命令行工具或修改网卡配置文件(如ifcfg-eth0),然后重启网络服务以使设置生效。

小伙伴们,上文介绍了“centos配置dns服务器地址”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。

0