CentOS FetchLinux 设置 DNS 的实用方法
一 方法总览与适用场景
| 方式 | 适用场景 | 关键配置 | 使配置持久 |
|---|---|---|---|
| 网卡配置文件 ifcfg-<接口> | 使用传统 network-scripts 管理网络 | 在接口配置中写入 DNS1/2,必要时设 PEERDNS=no | 重启网络服务 |
| nmcli 命令行 | 使用 NetworkManager 管理网络 | 执行 nmcli 修改连接的 ipv4.dns 与 ipv4.ignore-auto-dns | 重新激活连接 |
| 直接编辑 resolv.conf | 临时测试或非 NM 环境 | 写入 nameserver 行 | 可能被 NM 覆盖,需配合 dns=none 或改用上两种方式 |
以上路径与做法适用于 CentOS 7/8 等常见版本;FetchLinux 的网络配置思路与 CentOS 一致。
二 方法一 通过网卡配置文件设置 DNS(推荐)
ip addr 或 nmcli con show,确认要配置的接口名(如 eth0、ens33、enp0s3)。/etc/sysconfig/network-scripts/ifcfg-<接口名>DNS1=114.114.114.114
DNS2=8.8.8.8
PEERDNS=no(防止被 DHCP 下发的 DNS 覆盖)。systemctl restart network(或 service network restart)。cat /etc/resolv.conf 应包含你设置的 nameserver。ping -c 4 www.google.com 或 nslookup example.com。三 方法二 使用 nmcli 设置 DNS(NetworkManager 场景)
nmcli con show,复制要修改的连接名称或 UUID。nmcli con mod "YourConnectionName" ipv4.dns "114.114.114.114 8.8.8.8"
nmcli con mod "YourConnectionName" ipv4.ignore-auto-dns yes
nmcli con up "YourConnectionName"(或 nmcli con reload 后重连)。nmcli dev show | grep DNS 查看生效的 DNS;cat /etc/resolv.conf 与 nslookup example.com 验证解析。四 方法三 直接编辑 resolv.conf(临时或特殊场景)
vi /etc/resolv.confnameserver 114.114.114.114
nameserver 8.8.8.8
echo -e "[main]\ndns=none" | sudo tee /etc/NetworkManager/NetworkManager.conf
systemctl restart NetworkManager
五 常见问题与验证
nslookup example.com、dig example.com、host example.comnmcli dev show | grep DNS、cat /etc/resolv.conffirewall-cmd --permanent --add-service=dns && firewall-cmd --reload,客户端将 nameserver 指向服务器 IP 测试。