新安装的CentOS 7怎么配置DNS?

HCRM技术_小炮 DNS 2025-08-29 1 0

新安装的CentOS 7系统配置DNS详解:从入门到精通

新安装的centos7怎么配置DNS

刚拿到一台新安装的CentOS 7服务器,那种感觉就像拿到一把还没开刃的宝剑,潜力巨大但需要精心打磨,在将其投入生产环境之前,有一项看似基础却至关重要的配置——DNS设置,DNS(Domain Name System),即域名系统,是互联网的“电话簿”,它负责将我们熟悉的域名(如www.google.com)翻译成计算机能理解的IP地址(如142.251.42.206),如果DNS配置不当,你的服务器可能无法访问外网更新软件、无法连接其他服务,甚至无法被外界正常访问。

本文将手把手地带你完成CentOS 7的DNS配置,不仅告诉你“怎么做”,还会解释“为什么这么做”,并提供一些故障排查的技巧,让你彻底掌握这项核心技能。

一、 理解CentOS 7的网络配置文件

在开始动手之前,我们先来认识一下CentOS 7中与DNS相关的几个核心配置文件,与早期的版本不同,CentOS 7同时存在传统配置和新式配置方法,理解它们的关系是关键。

1、/etc/resolv.conf:这是最核心的DNS配置文件,系统会从这个文件中读取DNS服务器地址(nameserver)和域名搜索域(search)。但请注意:在默认情况下,这个文件是由系统动态生成的,直接修改它可能重启网络后就被覆盖了,我们需要通过其他方式去控制它。

新安装的centos7怎么配置DNS

2、/etc/sysconfig/network-scripts/ifcfg-<interface_name>:这是网络接口的配置文件,其中<interface_name> 是你的网络接口名,通常如ifcfg-ens33ifcfg-eth0 等,在这里面配置的DNS1DNS2 参数,是控制/etc/resolv.conf传统方式之一。

3、/etc/NetworkManager/NetworkManager.conf:NetworkManager是CentOS 7默认的网络管理服务,它的主配置文件可以设置全局的DNS参数。

4、/etc/hosts:本地主机名解析文件,它可以绕过DNS,直接提供IP地址和主机名的映射关系,通常用于本地测试或小型网络。

二、 方法一:通过修改网络接口配置文件(推荐)

这是最常用、最持久的方法,适用于大多数场景,尤其是服务器环境。

新安装的centos7怎么配置DNS

步骤 1:确定你的网络接口名称

打开终端,输入以下命令:

ip addr

或者

ifconfig

你会看到类似以下的输出:

1: lo: ...
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global noprefixroute dynamic ens33
       valid_lft 86384sec preferred_lft 86384sec
    inet6 fe80::20c:29ff:fexx:xx/64 scope link
       valid_lft forever preferred_lft forever

这里ens33 就是我的网络接口名,你的可能是eth0,ens192 等,请记下它。

步骤 2:编辑网络接口配置文件

使用你喜欢的文本编辑器(如vi,vim,nano) 编辑对应的配置文件,这里以ens33nano 为例:

sudo nano /etc/sysconfig/network-scripts/ifcfg-ens33

步骤 3:配置DNS参数

在打开的文件中,找到或添加以下两行:

DNS1=8.8.8.8        # 主DNS服务器,这里以Google的公共DNS为例
DNS2=114.114.114.114 # 备DNS服务器,这里以国内114DNS为例

你也可以添加DNS3

请确保文件中的BOOTPROTO 参数是staticnone,并且已经正确配置了IPADDR,NETMASK,GATEWAY 等静态IP信息,如果是DHCP获取IP,通常也会自动获取DNS,但为了持久化,我们依然可以加上这两行,它们会覆盖DHCP下发的DNS设置。

一个完整的静态IP配置示例:

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static        # 使用静态IP地址
DEFROUTE=yes
...
IPADDR=192.168.1.100    # 你的静态IP
NETMASK=255.255.255.0   # 子网掩码
GATEWAY=192.168.1.1     # 网关地址
DNS1=8.8.8.8            # 主DNS
DNS2=114.114.114.114    # 备DNS
...
NAME=ens33
DEVICE=ens33
ONBOOT=yes              # 确保开机自启

步骤 4:重启网络服务

保存并退出编辑器后,需要重启网络服务以使更改生效:

sudo systemctl restart network

或者只重启特定的网络接口:

sudo ifdown ens33 && sudo ifup ens33

步骤 5:验证配置

检查/etc/resolv.conf 文件是否已经更新:

cat /etc/resolv.conf

你应该能看到nameserver 行已经变成了你设置的地址:

Generated by NetworkManager
nameserver 8.8.8.8
nameserver 114.114.114.114

使用pingnslookupdig 命令测试DNS解析是否正常工作:

ping -c 4 baidu.com

如果能正常收到回复,说明DNS配置成功!

nslookup google.com
dig github.com

三、 方法二:直接修改/etc/resolv.conf(临时或特殊用途)

正如前面警告所说,直接修改这个文件可能不是永久性的,但在某些特定情况下(比如快速测试、或在容器内),你可以这样做。

sudo nano /etc/resolv.conf

修改为:

nameserver 8.8.8.8
nameserver 1.1.1.1
search localdomain

保存即可立即生效,但一旦系统重启或NetworkManager服务重启,这个文件很可能被重写。

如何防止/etc/resolv.conf 被覆盖?

如果你确实希望直接管理这个文件,可以这样做:

1、 在/etc/NetworkManager/NetworkManager.conf[main] 部分添加:

    [main]
    dns=none

2、 然后运行:

    sudo systemctl restart NetworkManager

3、 现在你就可以自由编辑/etc/resolv.conf 而不会被覆盖了,但这种方法通常不推荐给新手,因为它绕过了NetworkManager的DNS管理功能。

四、 方法三:使用NetworkManager的命令行工具(nmcli)

nmcli 是管理NetworkManager的强大命令行工具,非常适合在远程终端操作。

查看当前连接:

nmcli connection show

修改连接的DNS(以连接名 ‘ens33’ 为例):

sudo nmcli con mod ens33 ipv4.dns "8.8.8.8 114.114.114.114"

让DNS配置立即生效:

sudo nmcli con down ens33 && sudo nmcli con up ens33

**五、 故障排查与技巧

1、DNS解析失败

命令dig www.example.com,如果没反应,说明DNS服务器可能无法访问或网络有问题。

检查ping 8.8.8.8 看是否能通,如果能通IP但不能解析域名,绝对是DNS配置问题。

2、清除DNS缓存

CentOS 7默认没有像Windows那样强大的DNS缓存,但如果你安装了nscd(Name Service Cache Daemon),则需要清理它:

    sudo systemctl restart nscd

3、使用hostdig 命令

这两个工具比ping 能提供更详细的DNS查询信息,是排查问题的利器。

    dig www.baidu.com @8.8.8.8 # 指定使用8.8.8.8来查询www.baidu.com
    host github.com 114.114.114.114

4、多网卡环境

如果服务器有多个网络接口(如内网和外网),确保每个接口的DNS配置是正确的,或者合理配置路由策略,以免解析混乱。

为新安装的CentOS 7配置DNS是一项基础但至关重要的任务,推荐大多数用户使用方法一(修改/etc/sysconfig/network-scripts/ifcfg-ens33 文件),因为它提供了持久、可靠的配置,理解不同配置文件之间的关系,能够让你在遇到问题时快速定位和解决。

一个稳定可靠的DNS配置是你的服务器畅游互联网世界的基石,花几分钟时间正确配置它,将为后续的软件安装、系统更新和服务部署扫清无数障碍,你的CentOS 7宝剑已经开刃,可以去更广阔的世界闯荡了!

文章摘自:https://idc.huochengrm.cn/dns/14368.html

评论