web-dev-qa-db-ja.com

再起動のたびにファイル/etc/resolv.confが削除されます。なぜですか?

DHCP(他の同様のトピックで読んだようですが)が各ブートで/etc/resolv.confファイルをクリアするという問題があります。 私が見つけた投稿( 12 およびその他のいくつか)は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

1か月が経過した後も、同じ問題が発生し、「何か」によってファイルが削除されます。

新しいテストを行うために実行した手順は次のとおりです。

  • PCを再起動します
  • PCが再起動したら、ターミナルを開いて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 
    
  • 今回は正常にGoogleサーバーにpingします。

    $ 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
    

ここで何が起こっているのかについてのアイデアはありますか?

6
ReynierPM

私の経験では、/etc/resolv.confはブート時に再生成されるため、手動での変更はリセットされます。

これを回避するには、/etc/resolv.conf.head(または.tailを追加するファイルの末尾に応じて)、そこに必要なカスタム設定を挿入します(通常はnameserverの変更)。次に、そのファイルの内容は、/etc/resolv.confはNetworkManager(またはシステム上のファイルを担当するサービス)によって生成されます。

5
Mio Rin

順調だったと思います。

それは今私のために働いています、しかし私はしませんでした:

dns=none

に:

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

ネットワークマネージャーを再起動すると、解決が自動的に作成されました。

Sudo service NetworkManager restart

私は再起動し、それはまだ機能しました。

2
Juan Ramirez

同じ問題がありました。 resolvconfパッケージをインストールすることで解決されました。私はDebianを使用しているので、テストはできませんが、役立つかもしれません このヒント

  1. sudoとして開く(または作成する):/etc/dhcp/dhclient.conf

  2. 追加:prepend domain-name-servers 127.0.0.1;

1
robert

「resolv.confファイルに、必要なコンテンツを入れた後に不変性を持つように設定してみましたか?」

これにより、/ etc/dhcp/dhclient.confがその役割を果たさなくなり、DNSが解決されなくなります。コンピュータが絶えずそのファイルを実行して接続を確立しようとするので、これはせいぜいイライラし、最悪の場合はフリーズします。再起動時にresolv.confに書き込むファイルなので、resolv.confを直接編集するのではなく、「/ etc/dhcp/dhclient.conf」を編集することが重要だと思います。

1
Necrus

まず、あなたはresolvconf serviceアクティブ。

Sudo service resolvconf status   

アクティブ:以降アクティブ(終了)

サービスが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 resolver(3)の動的resolv.conf(5)ファイル#このファイルは手動で編集しないでください-変更は上書きされます#127.0.0.53はsystemdで解決されたスタブリゾルバーです。 #「systemd-resolve --status」を実行して、実際のネームサーバーの詳細を確認します。

ネームサーバー127.0.0.1

0
A1Gard

防止するためにresolv.confをブート時に更新するには、次の変更を行う必要があります。

変化する PEERDNS=yesからPEERDNS=no

PEERDNS=no

これにより、ネットワークサービスがDHCPサーバーから受信したDNSサーバーで/etc/resolv.confを更新できなくなります。

@ Ipor Sircer コメントに言及

0
GAD3R

おそらくNetworkManagerが設定中ですresolve.conf。それが必要ない場合は、rc-manager NetworkManager.confの設定。見る man NetworkManager.conf

0
thaller

今日GUIを備えたDebian 9.5をインストールしたときにも同じ問題が発生しました。 GUIなしでインストールしても、この問題は発生しません。最後に、このリンク https://wiki.debian.org/resolv.conf から解決策を見つけました。 DHCPをインストールしたときに手動でネットワークを設定しても、DHCPは自動的に起動しました。この問題を停止するには、DHCPを無効にする必要があります。

echo 'make_resolv_conf() { :; }' > /etc/dhcp/dhclient-enter-hooks.d/leave_my_resolv_conf_alone
chmod 755 /etc/dhcp/dhclient-enter-hooks.d/leave_my_resolv_conf_alone

それでも問題が解決しない場合は、DHCPクライアントファイルに新しい行を追加しました。

vi /etc/dhcp/dhclient.conf

先頭にdomain-name-servers 127.0.0.1を追加します。

次に、resolvconfおよびnetwork-mangerパッケージを削除します。

apt-get --purge remove resolvconf network-manager

最後に、それでも問題が解決しない場合は、resolv.confファイルをセットアップし、次のコマンドでこのファイルをロックする必要があります。 (resolv.confがシンボリックリンクの場合は機能しません。)

chattr +i /etc/resolv.conf
0
hatted