Kylin V4系统resolv.conf文件重启后被重置

本文介绍了解决因DHCP获取IP过程中导致的/etc/resolv.conf文件被重置的问题。通过对NetworkManager配置调整并禁用dhcpclient端DNS更新,确保自定义的DNS设置不被覆盖。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 问题描述及原因分析

在使用物理机和虚拟机的时候,系统版本为Kylin-4.0.2-server-sp2-2000-19080414.J1-arm64,地址是通过DHCP获取的,每次更改完/etc/resolv.conf,在重启系统后,发现/etc/resolv.conf均被还原为最初的状态,例如通过openstack云创建的虚拟机的resolv.conf文件,如下
在这里插入图片描述
通过ls -hl查看/etc/resolv.conf查看发现是被NetworkManager接管了
在这里插入图片描述发现该问题后,NetworkManager取消对resolv.conf的接管,如下
vim /etc/NetworkManager/NetworkManager.conf

[main]
plugins=ifupdown,keyfile,ofono
dns=none
rc-manager=unmanaged

[ifupdown]
managed=false

删除原先的文件,手动生成配置文件
rm -rf /etc/resolv.conf
touch /etc/resolv.conf
vim /etc/resolv.conf

nameserver 127.0.0.1

系统重启后,发现 /etc/resolv.conf依然被重置。

经过一系列排查,发现resolv.conf文件之所以会被重置,是由于dhcp获取IP时,从dhcp server处获取到的值,通过查看确实发现server处配置了domain-name-servers、domain-name等,在客户端查看cat /var/lib/dhcp/dhclient.eth0.leases文件,也有相应发现,如下

lease {
  interface "eth0";
  fixed-address 172.19.2.209;
  option subnet-mask 255.255.255.0;
  option routers 172.19.2.254;
  option dhcp-lease-time 86400;
  option dhcp-message-type 5;
  option domain-name-servers 172.19.2.201;
  option dhcp-server-identifier 172.19.2.201;
  option interface-mtu 1500;
  option dhcp-renewal-time 43200;
  option rfc3442-classless-static-routes 32,169,254,169,254,172,19,2,201,0,172,19,2,254;
  option broadcast-address 172.19.2.255;
  option dhcp-rebinding-time 75600;
  option host-name "host-172-19-2-209";
  option domain-name "openstacklocal";
  renew 2 2022/11/01 13:03:00;
  rebind 2 2022/11/01 22:14:19;
  expire 3 2022/11/02 01:14:19;
}

找到问题的根,就着手解决这个问题,由于服务器端也服务于其他节点,故仅能对当前主机做配置,我们采用基于客户端禁用dns更新的策略,如下:

删除原先的文件,手动生成配置文件
rm -rf /etc/resolv.conf
touch /etc/resolv.conf

vim /etc/resolv.conf

nameserver 127.0.0.1

dhcp client端禁用dns更新,如下
vim /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate

#!/bin/sh
make_resolv_conf(){
:
}

chmod +x /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate

重新启动系统后,查看文件/etc/resolv.conf,没有被重置更新,问题解决。


2. 解决方案:

删除原先的文件,手动生成配置文件
rm -rf /etc/resolv.conf
touch /etc/resolv.conf
vim /etc/resolv.conf

nameserver 127.0.0.1

dhcp client端禁用dns更新,如下
vim /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate

#!/bin/sh
make_resolv_conf(){
:
}

chmod +x /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate

3.参考文献

https://www.cyberciti.biz/faq/dhclient-etcresolvconf-hooks/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值