在 Ubuntu 系统中配置静态 DNS 是优化网络连接、提升访问稳定性与安全性的重要操作,相较于动态 DNS 自动获取的方式,静态 DNS 可让系统固定使用指定的域名解析服务器,避免因运营商 DNS 故障或劫持导致网页打不开、应用加载缓慢等问题,本文将从配置原理、具体步骤、验证方法及常见场景展开说明,帮助用户高效完成静态 DNS 设置。

Ubuntu 静态 DNS 配置的核心逻辑
DNS(Domain Name System)的作用是将人类易记的域名(如 www.example.com)转换为计算机可识别的 IP 地址,Ubuntu 默认通过 DHCP 协议自动获取 DNS 服务器地址,但这种方式存在不确定性——若 DHCP 服务器分配的 DNS 不稳定,或遭遇“DNS 污染”“域名劫持”,会导致网络体验下降。
静态 DNS 配置的本质是手动指定 DNS 服务器地址,使系统绕过 DHCP 分配流程,直接使用预设的 DNS 解析服务,Ubuntu 支持两种主流配置方式:临时命令行修改(重启后失效)和永久文件编辑(重启后保留)。
Ubuntu 静态 DNS 配置的具体步骤
(一)临时修改:适用于快速测试
若仅需临时调整 DNS(如排查网络问题时切换 DNS),可通过 nmcli 或 resolvectl 命令实现,无需重启网络服务。
-
查看当前 DNS 配置
打开终端,输入以下命令查看当前网络接口的 DNS 设置:nmcli dev show | grep 'IP4.DNS'
输出示例:
IP4.DNS[1]: 8.8.8.8,表示当前使用 Google 公共 DNS。 -
修改 DNS 服务器
以修改 eth0 接口为例,设置 DNS 为阿里云公共 DNS(5.5.5):sudo nmcli con mod eth0 ipv4.dns "223.5.5.5" sudo nmcli con up eth0 # 重启网络接口使配置生效
若需添加多个 DNS,用空格分隔,
sudo nmcli con mod eth0 ipv4.dns "223.5.5.5 114.114.114.114"。
(二)永久修改:适配不同网络管理工具
Ubuntu 的网络管理工具随版本迭代有所变化,需根据系统版本选择对应方案:

| 系统 版本 | 主要网络工具 | 配置文件路径 | 操作步骤 |
|---|---|---|---|
| Ubuntu 18.04 及之前 | NetworkManager | /etc/NetworkManager/NetworkManager.conf |
编辑该文件,在 [main] 区块下添加 dns=none;再编辑 /etc/resolv.conf 手动写入 DNS。 |
| Ubuntu 20.04 及之后 | Netplan | /etc/netplan/01-netcfg.yaml(或其他 .yaml 文件) |
在 YAML 配置文件的 network: -> ethernets: -> 网卡名称 -> nameservers: 下添加 addresses: [223.5.5.5, 114.114.114.114]。 |
示例:Netplan 配置(以 Ubuntu 22.04 为例)
假设网卡名为 enp0s3,原配置文件内容如下:
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: true
修改为静态 DNS 后:
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: true
nameservers:
addresses: [223.5.5.5, 114.114.114.114]
保存文件后,执行 sudo netplan apply 使配置生效。
验证静态 DNS 是否生效
配置完成后,需确认 DNS 服务器是否正确应用,可通过以下命令检测:
-
查看当前 DNS 列表
cat /etc/resolv.conf
若输出包含设置的 DNS 地址(如
nameserver 223.5.5.5),则配置成功。 -
测试域名解析
使用dig或nslookup工具查询域名,观察返回的 DNS 服务器是否为目标地址。dig www.baidu.com +short
若解析结果正常且
SERVER字段显示自定义 DNS(如5.5.5#53),则证明静态 DNS 生效。
常见场景与注意事项
(一)场景 1:解决“域名无法解析”问题
若遇到“无法找到主机”错误,可能是 DNS 劫持或运营商 DNS 不稳定所致,此时将 DNS 切换为公共 DNS(如阿里云 5.5.5、腾讯云 29.29.29、Google 8.8.8),往往能快速恢复网络。
(二)场景 2:企业内网定制化需求
在企业环境中,可能需要使用内部 DNS 服务器(如 168.1.100)解析内部域名,此时需确保静态 DNS 配置指向内网 DNS,同时注意防火墙规则允许 UDP 53 端口通信。
(三)注意事项
- 权限问题:编辑系统文件需使用
sudo权限,避免因权限不足导致配置失败。 - 备份原始文件:修改前建议备份关键配置文件(如
cp /etc/netplan/01-netcfg.yaml ~/backup/),防止误操作无法恢复。 - 多 DNS 冗余:建议配置 2-3 个 DNS 服务器(如主用阿里云、备用 Google),提升容错性。
相关问答 FAQs
Q1:为什么我修改了 /etc/resolv.conf,重启后又变回原来的 DNS?
A:这是因为 NetworkManager 或 systemd-resolved 服务会自动覆盖该文件,对于 Ubuntu 18.04 及之前版本,需在 NetworkManager.conf 中添加 dns=none 禁用自动管理;对于 Ubuntu 20.04 及之后版本,应通过 Netplan 配置静态 DNS,而非直接编辑 /etc/resolv.conf。
Q2:配置静态 DNS 后,某些网站仍无法访问,怎么办?
A:首先检查 DNS 服务器是否可达(如 ping 223.5.5.5),确认网络连通性;其次使用 dig @223.5.5.5 www.target.com 指定 DNS 服务器查询,判断是 DNS 问题还是目标网站本身故障;最后检查防火墙或安全组是否屏蔽了 DNS 请求(UDP 53 端口)。
通过以上步骤,用户可在 Ubuntu 系统中稳定配置静态 DNS,提升网络访问的可靠性与效率,无论是日常使用还是企业环境,掌握这一技能都能有效减少网络相关的困扰。