![文件 /etc/resolv.conf 在每次重新启动时都会被删除,为什么或什么?](https://linux22.com/image/98720/%E6%96%87%E4%BB%B6%20%2Fetc%2Fresolv.conf%20%E5%9C%A8%E6%AF%8F%E6%AC%A1%E9%87%8D%E6%96%B0%E5%90%AF%E5%8A%A8%E6%97%B6%E9%83%BD%E4%BC%9A%E8%A2%AB%E5%88%A0%E9%99%A4%EF%BC%8C%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%96%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我遇到一个问题,DHCP(我在其他类似主题中读到过)自从我发现帖子以来,我不确定如何处理这个问题(1,2和其他一些)适用于基于 Debian 的发行版或其他发行版,但不适用于 Fedora。/etc/resolv.conf
在每次启动时清除文件。
ifcfg-enp0s31f6
这是DHCP的输出:
cat /etc/sysconfig/network-scripts/ifcfg-enp0s31f6
HWADDR=C8:5B:76:1A:8E:55
TYPE=Ethernet
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=no
IPV6_DEFROUTE=no
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s31f6
UUID=0af812a3-ac8e-32a0-887d-10884872d6c7
ONBOOT=yes
IPV6_PEERDNS=no
IPV6_PEERROUTES=no
BOOTPROTO=dhcp
PEERDNS=yes
PEERROUTES=yes
另一方面,我不知道网络管理器是否正在为此做其他事情。
更新:NetworkManager.conf 的内容(我已经删除了评论,因为没有用)
$ cat /etc/NetworkManager/NetworkManager.conf
[main]
#plugins=ifcfg-rh,ibft
dns=none
[logging]
#domains=ALL
我可以得到一些帮助吗?每次重新启动时都要一次又一次地设置该文件,这很烦人。
更新2
一个月后,我仍然遇到同样的问题,文件被“某物”删除。
以下是我为了进行新测试而遵循的步骤:
- 重新启动电脑
电脑重新启动后,打开终端并尝试访问
ping
Google 服务器,当然没有成功:$ ping google.com ping: google.com: Name or service not known
检查网络配置一切似乎都很好:
$ cat /etc/sysconfig/network-scripts/ifcfg-enp0s31f6 NAME=enp0s31f6 ONBOOT=yes HWADDR=C8:5B:76:1A:8E:55 MACADDR=C8:5B:76:1A:8E:55 UUID=0af812a3-ac8e-32a0-887d-10884872d6c7 BOOTPROTO=static PEERDNS=no DNS1=8.8.8.8 DNS2=8.8.4.4 DNS3=192.168.1.10 NM_CONTROLLED=yes IPADDR=192.168.1.66 NETMASK=255.255.255.0 BROADCAST=192.168.1.255 GATEWAY=192.168.1.1 TYPE=Ethernet DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no
重新启动
network
服务:$ sudo service network restart [sudo] password for <current_user>: Restarting network (via systemctl): [ OK ]
再次尝试
ping
谷歌服务器,没有成功:$ ping google.com ping: google.com: Name or service not known
检查文件
/etc/resolv.conf
:$ cat /etc/resolv.conf cat: /etc/resolv.conf: No such file or directory
文件不再存在 - 这就是每次重新启动时都会删除它的问题
创建文件并添加DNS内容:
$ sudo nano /etc/resolv.conf
这次 Ping Google 服务器成功:
$ ping google.com PING google.com (216.58.192.110) 56(84) bytes of data. 64 bytes from mia07s35-in-f110.1e100.net (216.58.192.110): icmp_seq=1 ttl=57 time=3.87 ms
对这里可能发生的事情有什么想法吗?
答案1
根据我的经验,/etc/resolv.conf
它会在启动时重新生成,因此对其进行的任何手动更改都会被重置。
要解决此问题,您可以创建/etc/resolv.conf.head
(或.tail
取决于要添加到文件的哪一端)并在其中插入所需的自定义设置(通常nameserver
会更改)。然后,当/etc/resolv.conf
NetworkManager(或负责系统上该文件的任何服务)生成该文件的内容时,该文件的内容会自动添加。
如果这不起作用,您可以修改/etc/resolvconf/resolv.conf.d/base
- 它存储/etc/resolv.conf
.
答案2
我有同样的问题。通过安装软件包解决了这个问题resolvconf
。由于我使用的是 Debian,所以无法测试,但可能会有所帮助这个提示:
以 sudo 打开(或创建):
/etc/dhcp/dhclient.conf
添加:
prepend domain-name-servers 127.0.0.1;
答案3
我认为你是对的。
它现在对我有用,但我没有这样做:
dns=none
关于:
/etc/sysconfig/network-scripts/ifcfg-enp0s31f6
我重新启动网络管理器后,它自动创建了解析:
sudo service NetworkManager restart
我重新启动,它仍然有效。
答案4
首先你一定要resolvconf service
活跃。
sudo service resolvconf status
Active:活跃(退出)以来
如果服务active
删除resolvconf
:
sudo apt-get purge resolvconf
然后,如果删除后或未激活或未找到服务:
sudo apt-get update
sudo apt-get install resolvconf
然后重启服务:
sudo service resolvconf restart
现在看到/etc/resolv.conf
:
cat /etc/resolv.conf
必须存在:
# 由 resolvconf(8) 生成的 glibc 解析器(3) 的动态 resolv.conf(5) 文件 # 不要手动编辑此文件 -- 您的更改将被覆盖 # 127.0.0.53 是 systemd 解析的存根解析器。 # 运行“systemd-resolve --status”以查看有关实际名称服务器的详细信息。
名称服务器 127.0.0.1