CentOS 配置 DNS

参考: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 }}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

isea533

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值