5154

Good Luck To You!

ubuntu系统dns配置失败如何排查解决?

在Ubuntu系统中,DNS(域名系统)配置是网络连接的重要组成部分,它负责将人类可读的域名(如www.example.com)转换为机器可识别的IP地址,正确的DNS配置不仅能确保网络访问的稳定性,还能提升解析速度,甚至通过安全DNS服务增强安全性,以下是关于Ubuntu系统DNS配置的详细说明。

DNS配置文件位置

Ubuntu系统的DNS配置主要涉及以下几个文件:

  1. /etc/resolv.conf:核心DNS解析配置文件,记录了系统使用的DNS服务器地址,该文件通常由网络管理器自动生成,不建议手动编辑,除非有特殊需求且了解其影响。
  2. /etc/netplan/:Ubuntu 18.04及以后版本使用的网络配置工具,通过YAML文件定义网络接口和DNS设置,配置文件通常命名为01-netcfg.yaml或类似名称。
  3. /etc/systemd/resolved.conf:systemd-resolved服务的配置文件,用于管理本地DNS缓存和解析。
  4. NetworkManager配置:如果使用NetworkManager管理网络(如桌面版Ubuntu),可通过/etc/NetworkManager/NetworkManager.conf或连接特定的配置文件(如/etc/NetworkSystemd resolved服务会自动管理/etc/resolv.conf,创建一个指向/run/systemd/resolve/stub-resolv.conf`的符号链接,后者包含实际的DNS配置。

DNS配置方法

通过Netplan配置(适用于Ubuntu 18.04+)

Netplan通过YAML文件配置网络,以下是示例配置:

ubuntu系统dns

network:
  version: 2
  ethernets:
    enp0s3:  # 网络接口名称
      dhcp4: no
      addresses: [192.168.1.100/24]  # 静态IP地址
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]  # Google DNS
        search: [example.com]  # 可选的域名后缀

配置完成后,运行以下命令生效:

sudo netplan apply

通过NetworkManager配置(适用于桌面版)

  • 图形界面:进入“设置”>“网络”,选择当前连接的网卡,点击“齿轮”图标,在“IPv4”或“IPv6”选项卡中,将“DNS服务器”设置为手动,输入DNS地址(如1.1.1.1、223.5.5.5)。
  • 命令行:使用nm-connection-editor编辑连接,或通过以下命令直接修改:
    sudo nmcli con mod "连接名称" ipv4.dns "8.8.8.8,223.5.5.5"
    sudo nmcli con mod "连接名称" ipv4.ignore-auto-dns yes
    sudo nmcli con up "连接名称"

临时修改DNS(不推荐)

直接编辑/etc/resolv.conf

sudo nano /etc/resolv.conf
```重启后可能失效):

nameserver 8.8.8.8 nameserver 223.5.5.5

ubuntu系统dns


#### 4. 使用systemd-resolved管理DNS
启用systemd-resolved服务并配置:
```bash
sudo systemctl enable --now systemd-resolved

编辑/etc/systemd/resolved.conf,修改以下行:

DNS=8.8.8.8 223.5.5.5
Domains=example.com

重启服务后,可通过systemd-resolve --status查看DNS状态。

DNS配置验证

  1. 检查当前DNS配置
    cat /etc/resolv.conf
  2. 测试域名解析
    nslookup www.baidu.com
    dig example.com
  3. 检查DNS缓存(若使用systemd-resolved):
    systemd-resolve --statistics

常见DNS问题排查

  1. 域名解析失败:检查/etc/resolv.conf中的DNS地址是否正确,或尝试更换公共DNS(如Cloudflare 1.1.1.1)。
  2. DNS缓存问题:清除缓存(sudo systemd-resolve --flush-caches)或重启systemd-resolved服务。
  3. 网络管理器冲突:确保Netplan和NetworkManager不会同时管理同一网络接口。

相关问答FAQs

Q1: Ubuntu系统中如何设置自定义DNS并确保重启后生效?
A1: 对于Ubuntu 18.04及以上版本,推荐使用Netplan或NetworkManager配置,以Netplan为例,在/etc/netplan/目录下的YAML文件中添加nameservers字段(如addresses: [1.1.1.1, 8.8.8.8]),然后运行sudo netplan apply,对于桌面版,可通过NetworkManager图形界面或nmcli命令设置,并确保取消“自动DNS”选项,直接编辑/etc/resolv.conf的方式在重启后可能被覆盖,不推荐使用。

ubuntu系统dns

Q2: 如何在Ubuntu中启用DNS-over-HTTPS(DoH)以提高安全性?
A2: Ubuntu 20.04及以上版本可通过systemd-resolved支持DoH,首先安装必要的工具:sudo apt install network-manager-dnscrypt-proxy,然后编辑/etc/systemd/resolved.conf,添加以下行:DNSOverTLS=opportunistic,接着在NetworkManager中配置DNS,选择“自动DNS”或手动指定支持DoH的DNS服务器(如Cloudflare 1.1.1.3),最后重启服务:sudo systemctl restart systemd-resolved NetworkManager,验证可通过curl https://1.1.1.1测试连接是否正常。

发表评论:

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

Powered By Z-BlogPHP 1.7.3

Copyright Your WebSite.Some Rights Reserved.