在 Linux 系统中添加 DNS 地址有多种方法,具体取决于你的网络管理工具和发行版,以下是几种最常用且有效的方法:
方法一:直接修改/etc/resolv.conf(临时生效)
这是最直接的方法,适用于临时修改或没有使用 NetworkManager 等管理工具的系统。
1、 打开文件:
sudo nano /etc/resolv.conf2、 添加或修改nameserver 行(通常可以添加 2-3 个,每个一行):
nameserver 8.8.8.8
nameserver 114.114.114.1148.8.8.8 是 Google 公共 DNS。
114.114.114.114 是国内的公共 DNS(移动、电信、联通通用)。
3、 保存并退出(Ctrl+X,Y,回车)。
注意: 很多现代 Linux 系统(特别是使用 NetworkManager 或 systemd-resolved 的)会自动重写这个文件,重启网络服务或重启系统后,你手动添加的配置可能会丢失,因此这个方法适用于快速测试,不建议作为永久解决方案。
方法二:修改网卡配置文件(永久生效 - 传统 sysconfig 风格)
这个方法适用于RHEL/CentOS 7/8/9、Fedora 以及部分使用ifcfg 配置文件的系统。
1、 找到网卡配置文件,通常在/etc/sysconfig/network-scripts/ 目录下:
# 假设你的网卡是 eth0 或 ens33
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth02、 在文件中添加或修改以下行(DNS1 是主DNS,DNS2 是备用):
DNS1=8.8.8.8
DNS2=114.114.114.1143、 重启网络服务:
# CentOS 7 及之前版本
sudo systemctl restart network
# CentOS 8 及之后版本(或 RHEL 8+)
sudo nmcli connection reload
sudo nmcli connection up eth0方法三:修改 Netplan 配置文件(适用于 Ubuntu 18.04+ 默认系统)
Ubuntu 18.04 及更高版本默认使用 Netplan 管理网络。
1、 找到 Netplan 配置文件:
ls /etc/netplan/
# 通常看到 00-installer-config.yaml 或 01-netcfg.yaml 等2、 编辑该文件(注意缩进,YAML 格式非常严格):
sudo nano /etc/netplan/00-installer-config.yaml3、 在ethernets 下的网卡名称(如ens33)中,设置nameservers:
network:
ethernets:
ens33: # 你的网卡名
dhcp4: true
nameservers:
addresses:
- 8.8.8.8
- 114.114.114.114
version: 24、 应用配置(注意缩进错误会导致报错):
sudo netplan apply方法四:使用nmcli 命令(适用于 NetworkManager)
如果你的系统使用 NetworkManager(大多数桌面环境、Ubuntu Server、Fedora Workstation 等),可以使用命令行工具nmcli。
1、查看当前活跃的连接:
nmcli connection show --active 你会看到类似Wired connection 1 或eth0 的名字。
2、修改指定连接的 DNS(将"Wired connection 1" 替换为你的连接名):
sudo nmcli con mod "Wired connection 1" ipv4.dns "8.8.8.8 114.114.114.114"3、忽略 DHCP 自动获取的 DNS(可选,建议加上):
sudo nmcli con mod "Wired connection 1" ipv4.ignore-auto-dns yes4、重新激活连接:
sudo nmcli con up "Wired connection 1"方法五:配置systemd-resolved(适用于 Ubuntu 16.04+、Debian 9+ 等)
如果你的系统使用了systemd-resolved(通常用systemd-resolve --status 可以查看),建议通过配置文件管理。
1、 编辑/etc/systemd/resolved.conf:
sudo nano /etc/systemd/resolved.conf2、 添加或修改 DNS 行:
[Resolve]
DNS=8.8.8.8 114.114.114.114
FallbackDNS=1.1.1.13、 重启服务:
sudo systemctl restart systemd-resolved小提示: 配置完成后,可以用resolvectl status(或systemd-resolve --status)查看生效情况。
配置完成后,用以下命令检查:
方法1:查看 resolv.conf 内容(注意可能有 symlink) cat /etc/resolv.conf 方法2:测试域名解析 nslookup baidu.com 方法3:使用 dig 命令 dig @8.8.8.8 baidu.com +short
如果你不确定系统正在使用哪种网络管理工具,可以先检查/etc/resolv.conf 文件的头部注释(通常第一行会写是“由谁管理”的),或者运行systemctl status NetworkManager 以及systemctl status systemd-resolved 来查看哪些服务正在运行。
文章摘自:https://idc.huochengrm.cn/dns/25901.html
评论