配置resolv.conf
时间: 2025-04-12 10:36:36 浏览: 45
<think>好的,用户之前问过如何在CentOS 9上配置网关,现在他们接着问如何配置resolv.conf。我需要先回顾之前的对话,确保回答的一致性。用户可能是在配置网络设置的过程中,先设置了网关,现在需要设置DNS,所以接下来的步骤应该是相关的。
首先,我得确认CentOS 9中resolv.conf的配置方式。因为从CentOS 7开始,系统使用NetworkManager管理网络,传统的直接编辑/etc/resolv.conf可能会被覆盖,所以需要指出正确的方法。用户可能不太清楚这一点,直接修改resolv.conf会导致配置丢失,应该引导他们使用NetworkManager的配置方法,比如nmcli或者修改配置文件。
然后,我需要分步骤说明,可能包括使用nmcli命令、修改NetworkManager配置文件,以及临时修改resolv.conf的方法。同时要提到注意事项,比如重启服务后配置是否持久,以及如何防止NetworkManager覆盖resolv.conf。用户可能需要持久化的配置,所以重点放在推荐的方法上。
另外,用户可能对DNS配置不太熟悉,需要解释一些关键点,比如多个DNS服务器的添加,搜索域的作用,以及如何测试配置是否生效。提供验证步骤,比如使用nslookup或dig命令,可以帮助用户确认他们的配置是否正确。
还要注意用户可能遇到的问题,比如配置后不生效,这时候需要检查NetworkManager是否管理DNS,或者是否有其他服务干扰。同时,提醒用户备份配置文件,避免出错。
最后,保持回答结构清晰,分步骤说明,使用代码块展示命令,确保用户能够跟随操作。同时使用中文,避免专业术语过于复杂,让新手也能理解。</think>在CentOS 9中配置DNS解析(`/etc/resolv.conf`)的完整指南:
---
### 一、理解关键配置文件
- **主配置文件**:`/etc/resolv.conf`(由NetworkManager自动生成,不建议直接修改)
- **控制文件**:`/etc/NetworkManager/conf.d/dns.conf`(配置DNS管理策略)
- **连接配置文件**:`/etc/NetworkManager/system-connections/*.nmconnection`
---
### 二、推荐配置方法(通过NetworkManager)
#### 方法1:使用`nmcli`命令行工具
1. **查看当前连接名称**
```bash
nmcli connection show
# 输出示例:NAME=ens192, UUID=xxxxxx...
```
2. **添加DNS服务器**
```bash
sudo nmcli connection modify "ens192" ipv4.dns "8.8.8.8 8.8.4.4"
# 支持同时指定多个DNS,空格分隔
```
3. **添加DNS搜索域**
```bash
sudo nmcli connection modify "ens192" ipv4.dns-search "example.com mylab.local"
```
4. **应用配置**
```bash
sudo nmcli connection down "ens192" && sudo nmcli connection up "ens192"
```
---
#### 方法2:手动编辑连接配置文件
1. **打开对应连接的配置文件**
```bash
sudo vim /etc/NetworkManager/system-connections/ens192.nmconnection
```
2. **在`[ipv4]`段添加配置**
```ini
[ipv4]
dns=8.8.8.8,8.8.4.4 # 注意使用英文逗号分隔
dns-search=example.com;
ignore-auto-dns=true # 禁用DHCP提供的DNS
```
3. **重载配置**
```bash
sudo nmcli connection reload
sudo nmcli connection up "ens192"
```
---
### 三、验证配置结果
```bash
cat /etc/resolv.conf
# 应显示类似:
# nameserver 8.8.8.8
# nameserver 8.8.4.4
# search example.com
```
---
### 四、高级配置技巧
#### 1. 禁用DNS覆盖(保留手动修改)
创建配置文件:
```bash
sudo tee /etc/NetworkManager/conf.d/90-dns-none.conf <<EOF
[main]
dns=none
EOF
```
然后手动编辑`/etc/resolv.conf`(不推荐)
#### 2. 测试DNS解析
```bash
nslookup google.com
dig @8.8.8.8 centos.org
```
---
### 五、临时修改(重启失效)
```bash
sudo echo "nameserver 1.1.1.1" >> /etc/resolv.conf
```
---
#### 重要注意事项:
1. 在CentOS 9中,默认由NetworkManager管理`resolv.conf`,直接编辑可能被覆盖
2. 使用`nmcli`修改的配置会持久化,重启后仍然有效
3. 当同时使用DHCP和静态DNS时,需设置`ignore-auto-dns=true`
4. 建议始终通过NetworkManager工具进行配置,避免系统更新导致配置丢失
阅读全文
相关推荐

















