CentOS 配置 DNS
  ZJE9JAGqQBsi 2023年11月02日 75 0


参考:​​How to set DNS in CentOS/RHEL 7 & prevent NetworkManager from overwriting /etc/resolv.conf?​

配置 DNS 时可以直接在网卡上进行配置,例如在 ​​/etc/sysconfig/network-scripts/eth0​​ 中添加:

DNS1=x.x.x.1
DNS2=x.x.x.2
DNS3=x.x.x.3
DOMAIN='xxx.com'

网卡有了配置后,NetworkManager 会自动将 DNS 信息写入到 ​​/etc/resolv.conf​​ 配置文件中。

如果你手动修改 ​​/etc/resolv.conf​​​,你会发现服务器重启后,里面的内容会自动复原,复原的第一行注释为 ​​# Generated by NetworkManager​​,这是因为 NetworkManager 会自动更新这里的配置。

手动配置

想要能够手动更新 ​​/etc/resolv.conf​​,需要关闭 NetworkManager 的自动更新功能。

关闭方法,打开 ​​/etc/NetworkManager/NetworkManager.conf​​​ 在 ​​[main]​​​ 下面添加​​dns=none​​​,然后 ​​sudo systemctl restart NetworkManager.service​​ 重启服务。重启以后就能手工修改了。

自动化脚本

为了方便配置所有服务器,下面是一个 ansible 脚本:

​resolve.conf​​ 配置文件准备好:

search xxx.com
nameserver x.x.x.1
nameserver x.x.x.2

playbook 脚本 ​​dns.yaml​​:

- name: update dns
hosts: 服务器
vars:
dns_file: /etc/resolv.conf
tasks:
- name: disable dns update
blockinfile:
path: /etc/NetworkManager/NetworkManager.conf
insertafter: "\\[main\\]"
block: |
dns=none
- name: restart NetworkManager
service:
name: NetworkManager
state: restarted
- name: copy resolv.conf
copy: src=resolv.conf dest={{ dns_file }}


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
ZJE9JAGqQBsi