Файл /etc/resolv.conf удаляется при каждой перезагрузке, почему или что?

У меня проблема, когда DHCP (хотя я читал в других похожих темах) очищает файл /etc/resolv.conf при каждой загрузке. Я не уверен, как справиться с этим, поскольку сообщение, которое я нашел ( 1 , 2 и некоторые другие), относится к дистрибутивам на базе Debian или другим, но не к Fedora.

Это вывод 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 

С другой стороны, я не знаю, делает ли Network Manager что-то еще вокруг этого.

Обновление: содержимое 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 серверы Google, без каких-либо успехов:

     $ 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 

Любые идеи в том, что здесь может происходить?

По моему опыту, /etc/resolv.conf восстанавливается при загрузке, поэтому любые ручные изменения в нем сбрасываются.

Чтобы обойти это, вы можете создать /etc/resolv.conf.head (или .tail зависимости от того, к какому концу файла, который вы хотите добавить), и вставить .tail вам настройки (как правило, изменения в nameserver ). Затем содержимое этого файла автоматически добавляется, когда /etc/resolv.conf генерируется NetworkManager (или какая бы служба не отвечала за файл в вашей системе).

Возможно, NetworkManager настраивает resolve.conf . если вы этого не хотите, измените настройку rc-manager в NetworkManager.conf. См. man NetworkManager.conf .

Чтобы предотвратить обновление resolv.conf во время загрузки, вы должны внести следующие изменения:

Изменить PEERDNS=yes для PEERDNS=no

PEERDNS=no

Это предотвратит обновление сетевой службы /etc/resolv.conf серверами DNS, полученными от DHCP-сервера.

упомянутый на @Ipor Sircer comment's

Я думаю, вы были на правильном пути.

Теперь он работает для меня, но я не делал:

 dns=none 

на:

 /etc/sysconfig/network-scripts/ifcfg-enp0s31f6 

После того, как я перезапустил диспетчер сети, он автоматически создал resolv:

 sudo service NetworkManager restart 

Я перезагрузился и все еще работал.