在 Ubuntu 中查看或修改 DNS 配置可以通过多种方式实现,具体取决于你使用的网络管理工具(如 Netplan、NetworkManager 或 systemd-resolved)。以下是详细的步骤:
一、查看当前 DNS 配置
方法 1:通过 resolvectl(systemd-resolved)
resolvectl status
- 输出中会显示当前 DNS 服务器地址(查找
DNS Servers字段)。
方法 2:检查【ubuntu/centos】 /etc/resolv.conf
cat /etc/resolv.conf
- 注意:此文件可能被符号链接到
systemd-resolved或其他工具的配置(如/run/systemd/resolve/stub-resolv.conf)。 - 如果显示
nameserver 127.0.0.53,说明 DNS 由systemd-resolved管理。
方法 3:通过 nmcli(NetworkManager)
nmcli dev show | grep DNS
如果设定了固定IP
# ubuntuls -a /etc/netplan/cat /etc/netplan/00-installer-config.yaml# centos查看是否设置了固定IPls /etc/sysconfig/network-scripts/ 目录下,文件名类似 ifcfg-ens33 或者 ifcfg-enp2s0,存在BOOTPROTO=static,并设置了IPADDR、NETMASK、GATEWAY等参数。在终端中输入 ip addr show命令,查看你的网络接口信息。找到你正在使用的网络接口(如 ens33或 eth0),观察其IP地址行。如果该行显示包含 scope global且通常不包含 dynamic关键字,则表明当前可能使用的是静态IP。# 以下为centos设置固定IP示例:vi /etc/sysconfig/network-scripts/ifcfg-enp2s0TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=no# BOOTPROTO=dhcpDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=enp2s0UUID=3571e9e9-07cd-4de3-ba2d-b359622127a6DEVICE=enp2s0ONBOOT=yes# 指定在启动时使用的协议为DHCP(动态主机配置协议)# 意味着网络接口将从DHCP服务器自动获取IP地址、子网掩码、网关等配置信息# 静态ip为staticBOOTPROTO=static...# 下面分别设置静态IP地址、子网掩码和默认网关IPADDR=192.168.3.29NETMASK=255.255.255.0GATEWAY=192.168.3.1# 被注释掉的行,如果启用,它将设置首选DNS服务器为114.114.114.114#DNS1=114.114.114.114保存以上内容,然后以下命令以重启:systemctl restart network
二、修改 DNS 配置
方式 1:通过 Netplan(推荐,适用于 Ubuntu 18.04+)
编辑 Netplan 配置文件(通常位于
/etc/netplan/,文件名类似01-netcfg.yaml):sudo nano /etc/netplan/01-netcfg.yaml
添加或修改 DNS 设置:
示例配置(静态 IP + DNS):network:version: 2ethernets:eth0:addresses: [192.168.64.156/24]gateway4: 192.168.64.1nameservers:addresses: [8.8.8.8, 1.1.1.1] # Google 和 Cloudflare DNS
应用配置:
sudo netplan apply
方式 2:通过 NetworkManager(适用于图形界面或 nmcli 用户)
通过命令行修改:
nmcli con modify <连接名称> ipv4.dns "8.8.8.8 1.1.1.1"nmcli con up <连接名称>
- 替换
<连接名称>为你的网络连接名称(通过nmcli con show查看)。
通过图形界面修改:
- 打开
Settings→Network→ 选择当前网络 → 点击齿轮图标 →IPv4/IPv6选项卡 → 手动设置 DNS。
- 打开
方式 3:直接修改 /etc/resolv.conf(不推荐,可能被覆盖)
临时修改(重启后失效):
sudo echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
永久修改(需解除符号链接):
- 备份原文件:
sudo mv /etc/resolv.conf /etc/resolv.conf.backup
- 创建新文件:
sudo nano /etc/resolv.conf
- 添加内容:
nameserver 8.8.8.8nameserver 1.1.1.1
- 设置文件不可变(防止覆盖):
sudo chattr +i /etc/resolv.conf
- 备份原文件:
三、验证 DNS 修改
检查 DNS 解析是否生效:
ping google.comnslookup google.com
查看当前 DNS 服务器:
resolvectl status | grep "DNS Servers"
四、常见 DNS 服务器推荐
| 提供商 | IPv4 地址 |
|---|---|
8.8.8.8, 8.8.4.4 |
|
| Cloudflare | 1.1.1.1, 1.0.0.1 |
| OpenDNS | 208.67.222.222, 208.67.220.220 |
注意事项
- 优先级问题:
- 如果同时配置了静态 IP 和 DHCP,确保 DNS 设置不冲突。
systemd-resolved的 DNS 缓存:- 清除缓存:
sudo resolvectl flush-caches
- 清除缓存:
- 网络服务重启:
- 修改配置后,如果遇到问题,重启网络服务:
sudo systemctl restart systemd-networkdsudo systemctl restart NetworkManager
- 修改配置后,如果遇到问题,重启网络服务:
通过以上方法,你可以灵活管理 Ubuntu 的 DNS 配置。如果遇到问题,请检查配置文件语法或网络服务状态。
