ネットワークマネージャー:nmの/etc/resolv.confの更新を停止する方法


26

ネットワークマネージャーがDHCPから受け取ったDNSサーバーをに追加しないようにし/etc/resolv.confます。

GUI / Connections / IPV4から設定し、自動(アドレスのみ)を選択すると、DHCP経由で受信したDNSサーバーが追加されます。

接続ごとに実行できますか(特定のssid?)


「自動(DHCP)アドレスのみ」の方法を選択した場合、NetworkManagerは、その接続をアクティブにするときにresolv.confを変更しません(またはすべきではありません)。NetworkManagerが実際に「アドレスのみ」の設定にもかかわらずresolv.confにアドレスを追加する場合、NetworkManagerにバグがあり、Launchpadを使用してそのバグを報告する必要があります。NetworkManagerがresolv.confを変更しないようにするには、システムでアクティブになるすべての接続構成で「自動(DHCP)アドレスのみ」を選択する必要があります。
jdthood

1
接続のIPv4設定でGUIを使用し、モードで「追加アドレスのみ」を選択するか、/ etc / NetworkManager / system-connections /の対応する接続​​ファイルを編集し、ignore-autoを追加して自分で行うことができます。 -dns = true行を[ipv4]セクションに追加します。
サーシャパチェフ

回答:


32

Network ManagerがDNSサーバーを/etc/resolv.confファイルに追加しないようにする1つの方法は、これを行うことです。

最初にnm confファイルを開きます/etc/NetworkManager/NetworkManager.conf

sudo vim /etc/NetworkManager/NetworkManager.conf

そして、これを[main]セクションに追加します。

dns=none

保存して終了。


主なセクションがある[main]、ない[Main]
AB

/etc/resolv.conf通常はシンボリックリンクです-不変にするとリンクのターゲットも不変になりますか?
ムル

5
これはDebianのジェシーに私のために動作しません
ディミトリKopriwa

5
これはUbuntu 18.04では機能しません
LuizAngioletti

1
sudo service network-manager restart.confファイルへの変更が有効になる前に、私はしなければなりませんでした。
クリスムーア

3

私の個人的なお気に入りはラインを使用することですsupersede domain-name-servers/etc/dhcp/dhclient.conf。dnsアクセスポイントが提供するものに関係なく、ubuntuは常に指定されたdnsを使用しますdhclient.conf

私のファイルからのサンプル

#send host-name "andare.fugue.com";
send host-name = gethostname();
#send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
#send dhcp-lease-time 3600;
#supersede domain-name "fugue.com home.vix.com";
supersede domain-name-servers 208.67.220.220;
#prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
    domain-name, domain-name-servers, domain-search, host-name,
    dhcp6.name-servers, dhcp6.domain-search,
    netbios-name-servers, netbios-scope, interface-mtu,
    rfc3442-classless-static-routes, ntp-servers,
    dhcp6.fqdn, dhcp6.sntp-servers;
#require subnet-mask, domain-name-servers;

説明されているように(サーバー8.8.8.8を使用して)行を作成しても、Ubuntu 18.04では機能しません。
-LuizAngioletti

3
@LuizAngioletti 18.04は、と呼ばれる異なるタイプのネットワークマネージャーアプリケーションを使用していますnetplan。この回答は、18.04より前のリリース用に作成されました。ただし、後で更新する場合があります。
セルギーコロディアズニー

2

/etc/resolv.confにシンボリックリンクされてい/run/resolvconf/resolv.confます。NetworkManagerは/etc/resolv.confを直接更新しません(/run/resolvconf/resolv.confのみを更新します)。そう:

  • シンボリックリンクを削除(rm /etc/resolv.conf
  • あなた自身のバージョンを書きます /etc/resolv.conf

1
私はこれがubuntuフォーラムであることを知っていますが、centosをグーグルで検索している間、これはまだ私の最初のグーグル結果でした。これは、centosに関する私の問題を解決しませんでした。centosネットワークマネージャーは/etc/resolv.confで直接作業しているようです。
トミー

これは、Debian Stretchには間違いなく当てはまります。ファイルを削除し、別のシンボリックリンクに置き換えます。とてもうるさい。
HörmannHH

以下は、(仮想化された)Fedora 25の使用例nmcliです。これ/etc/sysconfig/network-scripts/ifcfg-ens3PEERDNS=yes、DNS情報がDHCPによって取得され(この場合、間違っている)ことを意味することがわかります/etc/resolv.conf。ネームサーバーとして127.0.0.1が必要です。実行nmcli con mod ens3 ipf4.ignore-auto.dns yesするPEERDNS=noと、インターフェース構成ファイルに結果が表示されます。ただし、/etc/resolv.confまだnamseserverエントリが残っているため、接続を再起動する必要がある場合nmcli con down ens3; nmcli con up ens3。参照:certdepot.net/rhel7-configure-ipv4-addresses
デビッドトンホーファー

Ubuntu 18.04では、「service network-manager restart」を再起動すると、NMがシンボリックリンクではなくハードファイルであっても/etc/resolv.confを上書きします。
-LuizAngioletti

0

Debian Stretchで私がしたこと:

  • rm /etc/resolv.conf ###(シンボリックリンク)
  • /etc/resolv.confをタッチします
  • echo "nameserver xxxx" >> /etc/resolv.conf

「xxxx」は、OpenDNS、Google、Cloudflareなどからの優先DNSサーバーIPアドレスです。

Taha Jahangirのアイデアに感謝します!あなたの提案が私のDebian Stretchディストリビューションで機能したことを確認できます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.