5154

Good Luck To You!

centos8 网络配置dns

编辑 /etc/resolv.conf,添加 nameserver 行(如 8.8.8.8),保存后

CentOS 8 网络配置DNS详解

DNS基础概念

1 什么是DNS?

DNS(Domain Name System)是互联网的电话簿,负责将人类可读的域名(如www.example.com)转换为计算机可识别的IP地址(如0.2.1),在CentOS 8中,DNS配置直接影响网络访问能力。

2 DNS工作流程

  1. 客户端请求:应用程序发起域名解析请求
  2. 递归查询:DNS客户端向配置的DNS服务器发起查询
  3. 迭代查询:DNS服务器逐级查询权威服务器
  4. 返回结果:最终将IP地址返回给客户端

临时DNS配置方法

1 直接修改/etc/resolv.conf

配置项 说明 示例
nameserver 指定DNS服务器IP nameserver 8.8.8.8
search 本地域名后缀 search example.com
options 配置选项(如超时设置) options ndots:1

注意:此方法仅对当前会话有效,重启后会被系统配置覆盖。

2 使用nmtui快速配置

# 进入网络配置界面
sudo nmtui
# 选择对应网络连接 > 配置 > IPv4设置 > 手动DNS服务器

永久DNS配置方案

1 修改NetworkManager配置文件

路径:/etc/sysconfig/networkscripts/ifcfg<接口名>

参数 说明 示例值
DNS1 主DNS服务器 114.114.114
DEFRoute 默认网关 168.1.1
IPADDR_START DHCP分配起始地址 168.1.100
IPADDR_END DHCP分配结束地址 168.1.200

2 使用nmcli命令行配置

# 查看所有连接
nmcli connection show
# 修改指定连接的DNS
nmcli connection modify <连接名称> ipv4.dns "8.8.4.4 114.114.114.114"
# 设置自动获取DNS(通过DHCP)
nmcli connection modify <连接名称> ipv4.ignoreautodns yes/no

3 图形化配置(GNOME桌面)

  1. 打开「设置」>「网络」
  2. 选择对应网络连接 > 点击齿轮图标
  3. 切换到「IPv4」标签页
  4. 选择「自动(DHCP)」或「手动」
  5. 在「DNS服务器」字段输入服务器地址

DNS验证方法

1 使用systemdresolve工具

# 查看当前DNS配置
systemdresolve status
# 输出示例:
# Global
#       DNSSEC NTA: 10.0.0.1
#       DNS Servers: 8.8.8.8
#       DNS Over TLS: disabled

2 使用dig命令测试

# 基本查询
dig www.baidu.com
# +short 只显示IP地址
dig www.baidu.com +short
# @参数指定DNS服务器
dig www.qq.com @114.114.114.114

3 使用nslookup工具

# 交互模式
nslookup
> server 8.8.4.4
> www.google.com
# 单次查询
nslookup www.github.com 114.114.114.114

高级配置技巧

1 配置多个DNS服务器

建议按优先级顺序配置至少2个DNS服务器:

centos8 网络配置dns

nameserver 8.8.8.8      # Google公共DNS
nameserver 8.8.4.4      # Google备用DNS
nameserver 114.114.114.114 # 阿里公共DNS

2 启用DNSSEC验证

/etc/systemd/resolved.conf中设置:

[Resolve]
DNSSEC=true

重启服务:sudo systemctl restart systemdresolved

3 配置本地域名搜索域

/etc/systemd/resolved.conf添加:

[Resolve]
Domain~.= .example.com ~.local

效果:查询host时会自动补全为host.example.com

centos8 网络配置dns

常见问题排查

1 DNS配置不生效的常见原因

现象 可能原因 解决方案
只能访问IP不能访问域名 DNS服务器未配置或网络中断 检查nameserver配置
部分域名无法解析 DNS服务器缓存问题 更换DNS服务器
网络连通性正常但无法解析 Firewalld阻断DNS流量 firewallcmd addservice=dns

2 特殊场景处理

场景1:虚拟机内部DNS配置
需同时配置宿主机和虚拟机的DNS,建议使用与宿主机相同的DNS服务器。

场景2:容器环境DNS配置
在docker中可通过dns参数指定:

docker run dns=8.8.8.8 dns=8.8.4.4 ...

安全最佳实践

  1. 使用加密DNS协议:配置DNS over HTTPS(DoH)或DNS over TLS(DoT)
  2. 限制DNS查询范围:在/etc/systemd/resolved.conf设置DNSStubListener=yes
  3. 定期更新公共DNS服务器:建议使用Google(8.8.8.8)、Cloudflare(1.1.1.1)等可靠服务商

相关问题与解答

Q1:如何测试多个DNS服务器的优先级?

A:可以使用dig命令的参数依次测试不同DNS服务器。

# 测试第一个DNS服务器
dig www.example.com @8.8.8.8
# 测试第二个DNS服务器
dig www.example.com @8.8.4.4

系统会按照/etc/resolv.conf中的顺序依次查询,返回最快的响应即被采用。

centos8 网络配置dns

Q2:如何清除DNS缓存?

A:CentOS 8使用systemdresolved服务管理DNS缓存,可通过以下方式清除:

# 刷新缓存
sudo systemdresolve flushcaches
# 或重启服务(不推荐频繁使用)
sudo systemctl restart system

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年6月    »
1
2345678
9101112131415
16171819202122
23242526272829
30
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.