web-dev-qa-db-ja.com

resolv.confに、再起動時に失われない行を含めるにはどうすればよいですか?

最終的に7.10から12.04に移行しました。最後の部分がありますが、困惑しています。各サーバーでPuppetを使用していますが、過去にresolv.confにpuppetmasterのネームサーバーアドレスと検索ドメイン名を含めました。

search puppetmaster.com
nameserver 192.168.1.XXX

12.04では、resolv.confは再起動時に上書きされます。これらに静的IPを使用することはできないため、/ etc/network/interfacesを使用して支援することは無意味です。

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.0.1

これをヘッド、テール、またはベースで処理するためにresolvconfを取得する方法はありますか?ある場合、私のサーバーで微調整するために使用できる例はありますか。

どんな助けも大歓迎です。

170
Sam

DNSサーバーが「パペット」を正しいアドレスに解決できるようにし、DHCPサーバーがDNSネームサーバーアドレスと検索リストを配布するか、(静的IPアドレスがある場合)次のようなものにすることをお勧めします/ etc/network/interfacesに次のものがあります。

iface eth0 inet static
    address 192.168.3.3
    netmask 255.255.255.0
    gateway 192.168.3.1
    dns-search example.com
    dns-nameservers 192.168.3.45 192.168.8.10

ただし、resolvconf構成ファイルを使用してそれを行う場合は、/etc/resolvconf/resolv.conf.d/baseを編集する必要があります。そのファイルに、resolv.confと同じように情報を入力します。

nameserver 192.168.1.XXX

次に、resolvconfにresolv.confを再生成するよう指示します。

Sudo resolvconf -u
133
tgm4883

答えは/etc/dhcp/dhclient.confをチェックすることだと思います。つまり、dhcpクライアントからdns-nameserversを要求しないでください。

次に、/etc/network/interfacesを更新します

auto eth0
iface eth0 inet dhcp
dns-search google.com
dns-nameservers dnsserverip

そうすると、resolv.confはあなたが望むように自動設定されます。

dns-searchに追加してから/etc/init.d/networking restartを実行します(このスクリプトは非推奨ですが、引き続き機能します)。

35
Jamin

これは、Ubuntuを最初にインストールしたときのDHCP構成が原因である可能性があります。この自動構成の問題を処理するには、この3ステップのプロセスを試してください。

最初

インターフェース構成を編集します。これは、/etc/network/interfacesにあります

iface lo inet loopbackの下に次の行を追加します。

dns-nameservers yourdns youraltdns

Google DNSの例として、これを使用できます。

dns-nameservers 8.8.8.8 8.8.4.4

第二

次の場所にあるDHCP構成ファイルを編集します。

/etc/dhcp/dhclient.conf

すべての行で#を使用して構文をコメントとしてマークするか、すべてのリクエストネームサーバーを削除します。 16.04では、ここで変更を行う必要はありません。

三番

次のコマンドを使用して、ネットワークを再起動します。

/etc/init.d/networking restart

16.04で:

Sudo ifdown -a
Sudo ifup -a
20
astrajingga

resolvconfのmanページをご覧ください。を作成することにより、特定のDNS設定を強制的に含めることができます。 /etc/resolvconf/resolv.conf.d/base

  /etc/resolvconf/resolv.conf.d/base
          File containing basic resolver information.  The lines  in  this
          file  are  included in the resolver configuration file even when
          no interfaces are configured.

他の特別なファイル(頭と尾)があり、これらはあなたが望むものを達成するのを助けるかもしれません。

8
roadmr

他の多くの回答が述べているように、これはシステムにインストールされているresolvconfに関係しています。

したがって、再起動時に失われないresolv.confに何かを保持する最良の方法は、次の場所にあるresolvconf構成ファイルに含めることです。

/etc/resolvconf/resolv.conf.d/

headファイルに進みます。あなたがそこに置くものは何でも/etc/resolv.confの一番上に書かれます

そのため、すべてが次のようになります。

# echo nameserver 8.8.8.8 >> /etc/resolvconf/resolv.conf.d/head
# resolvconf --enable-updates
# resolvconf -u

私にとって、上記の答えは次の理由で不十分でした:

  • 私はresolvconfを使用せず、単なる/etc/resolv.confを使用しています。
  • chattr +iを使用してresolv.confをロックダウンするのは、あまりにもハッキングのようです。必要なときにPuppetが自由に変更できるようにする必要があります。
  • 知る限り、/etc/network/interfacesを編集してもresolv.confが上書きされることはありません。記述する必要のあるネームサーバーを指定するだけです。私にとって、ネームサーバーを指定することはポイントではありませんでした。 options timeout:1ファイルにoptions attempts:1resolv.confを設定しようとしています。

最良の解決策 文書化されたフックを使用して、dhclientのデフォルトの動作をオーバーライドします。

次の内容の/etc/dhcp/dhclient-enter-hooks.d/nodnsupdateに新しいファイルを作成します。

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

次に、ファイルを実行可能にします。

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

Dhclientが実行されると(再起動時または手動でSudo ifdown -a ; Sudo ifup -aを実行したとき)、このスクリプトnodnsupdateがロードされます。このスクリプトは、通常resolv.confを上書きするmake_resolv_conf()という内部関数をオーバーライドし、代わりに何もしません。

これは、Ubuntu 12.04で機能しました。

4
richardkmiller

これは私のマシンの奇妙な癖かもしれませんが、他の誰かが同じようなケースを持っているかもしれません。

私はISPネームサーバーを/etc/resolv.confに含めるために多くの方法を試しましたが、成功しませんでした:

  • それらを/etc/network/interfacesに含め、ネットワークを再起動しました。 /etc/resolv.confには表示されませんでした。

  • /etc/resolv.confに明示的に入れましたが、もちろん上書きされました。彼らは/run/resolvconf/interface/eth0.inetに現れましたが、/etc/resolv.confに到達することはありませんでした。

  • 動的更新用にresolvconfを構成してみました。変化なし。

最後に、ローカルマシン(127.0.0.1)が/etc/resolv.confに表示される場合、他のネームサーバーは含まれていないことをどこかで読みました。

必死になって/run/resolvconf/interface/lo.namedを編集し、その中の唯一の行(nameserver 127.0.0.1)を削除して再起動しました:ifdown eth0 && ifup eth0

/etc/resolv.confに初めてISPネームサーバーが追加されました! service network-manager restartを実行して安定しているかどうかを確認し、/etc/resolv.confにはまだISPネームサーバーが含まれています。念のためリブートしましたが、まだ残っていますしかし/run/resolvconf/interface/lo.namednameserver 127.0.0.1にリセットされました。

奇妙なことに、ネットワークの再起動は引き続き機能します:/etc/resolv.confにはまだISPネームサーバーが含まれています。これを説明することはできません(誰かできますか?)が、これは誰かが同じ場所で立ち往生するのを助けるかもしれません。

3
user297954

ネームサーバーをファイル/etc/resolvconf/resolv.conf.d/headに追加します。ファイルには、受信したメッセージが含まれています。

8.8.8.8を追加すると、そのファイルは次のようになります。

root@hvnatvcc: ~ # cat /etc/resolvconf/resolv.conf.d/head 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8
2
HVNSweeting

/etc/resolvconf/resolv.conf.d/headにエントリを追加します

echo 'search puppetmaster.com' | Sudo tee -a /etc/resolvconf/resolv.conf.d/head
echo 'nameserver 192.168.1.XXX' | Sudo tee -a /etc/resolvconf/resolv.conf.d/head

そして、次のコマンドを実行します

Sudo resolvconf -u
1
siz

最後の行に追加します。例:

nameserver 8.8.8.8

ターミナルを開いて入力します

Sudo chattr +i /etc/resolv.conf

+ iは、ブート時にファイルがリセットされないように注意します。

上記を取り消すには

Sudo chattr -i /etc/resolv.conf

多くのための

man chattr
1
tanmay.01

Ubuntu Server 18の場合、Netplanはネットワークを構成するための新しいユーティリティです。

# cd /etc/netplan

次に、yamlファイルのネームサーバーアドレスエントリを編集します(正しいインデントを使用します)。たとえば、GoogleのDNSサーバーを使用している場合:

nameservers:
    addresses: [8.8.8.8,8.8.4.4]

サービスを再起動するには

# netplan apply

https://netplan.io/ を参照してください

https://www.techrepublic.com/article/how-to-set-dns-nameservers-in-ubuntu-server-18-04/

1
Oscar Escamilla

Fedora 20システムでは、他のソリューションは機能しませんでした。私の特定の問題は、/ etc/resolv.confの「検索」行が上書きされていたことです。これが修正されたものです。 (これは、NetworkManagerが行search rn.yourcompany.comを生成しており、それをsearch rn.yourcompany.com yourcompany.com intnet.yourcompany.comにしたいことを前提としています:

1.「ifconfig」コマンドを使用して、関心のあるインターフェイスを見つけます。

$ ifconfig
  :
  :

em2:  <this was the one which was connected>

2. rootになり、システム構成ネットワークデバイスディレクトリに移動します。

$ Sudo su -[Sudo] 
password for youruser:
# cd /etc/sysconfig/networking/devices`
  1. お気に入りのエディターを使用して、検索する追加ドメインを含むDomain行を追加します。

DOMAIN="yourcompany.com intnet.yourcompany.com"

保存、ログアウト、ログインし直します。NetworkManagerに\etc\resolve.confの行が追加されます。

search rn.yourcompany.com yourcompany.com intnet.yourcompany.com
1
CBI

これが最も簡単な修正であることがわかりました。 resolv.confファイルとresolvconfファイルがある場合、それらは互いにステップします。再起動するたびに上書きされるresolv.confファイルを削除する必要があります。ネームサーバー8.8.8.8 8.8.4.4をresolvconfファイルの下部に配置し、コマンドSudo rm /etc/resolv.confを実行してファイルを削除します。その後、再起動するとすべてが機能します。

0
Irv

それは私にとってうまくいくubuntu 19.04。

1- resolvconfをインストール

$ sudo apt install resolvconf

2-ネームサーバーの追加

テキストエディタで/etc/resolvconf/resolv.conf.d/baseを開き、vimを使用します。

$ Sudo vim /etc/resolvconf/resolv.conf.d/base

次に、開いたファイル内にネームサーバーを追加します

例:

ネームサーバー208.67.222.123

ネームサーバー208.67.220.123

3- resolv.confの更新

$ sudo resolvconf -u

4 systemd-resolvedを無効にする

Systemd-resolvedを無効にして再起動します。ネームサーバー127.0.0.53は/etc/resolv.confに書き込まれません。

$ Sudo systemctl disable systemd-resolved

$須藤リブート

できた!

参照

https://www.hiroom2.com/2017/08/24/ubuntu-1610-nameserver-127-0-0-53-en/

0

Resolve.confをバックアップし、resolvconfパッケージを削除して、/ etc/resolv.confファイルを必要に応じて編集します。

apt-get remove -y resolvconf
echo 'nameserver 8.8.8.8' > /etc/resolv.conf

Resolvconfのような不正なソフトウェアを使用しないことを選択する権利が必要です。

ところで、/ etc/resolv.confの検索フィールドは役に立ちません。

0
bronze man

DHCPを使用している場合は、/etc/dhcp/dhclient.confを編集してDNSサーバーを追加します。

prepend domain-name-servers 12.34.56.78, 12.34.56.79;

DHCPクライアントはdns-nameserversetc/network/interfacesを上書きし、/etc/resolvconf/resolv.conf.d/baseでも同様だと思います。

これは、Ubuntuサーバー14.04.3で機能しました。

詳細については Debian NetworkConfiguration Wiki をご覧ください。

0
Kevin S. Miller

英語翻訳:

解決しました。 「12.4のみ」

名前解決サーバーを使用しないインターフェイスにdns-nameserverを追加すると、ここにあるヘルプのおかげで問題が解決したことに気付きました。

http://manpages.ubuntu.com/manpages/lucid/man8/resolvconf.8.html

ターミナルで手動で編集してもresolv.confが変更されないようにするには、次のようにします。

Sudo resolvconf –disable-updates

後:

Sudo resolvconf -a eth0 # or your network Interfas

次に、/ run/resolvconf/resolv.confを手動で編集します

最大2つのDNSサーバーを追加します。どうもありがとう再起動することを忘れないでください:

Sudo /etc/init.d/networking restart

元のテキスト:

ソロUbuntu 12.4

ミソルシオン。

彼はdns-nameserverインターフェースとesta no toma los server de resolucion de nombresをインターフェイスします

Gracias a la ayuda encontrada en esta pagina he resuelto el problema。

http://manpages.ubuntu.com/manpages/lucid/man8/resolvconf.8.html

解決方法resolv.confのパラメーターを編集しないでください。

Sudo resolvconf –disable-updates

despues:

Sudo resolvconf -a eth0 # o tu interfas de red

luego editamos manualmente /run/resolvconf/resolv.conf

agregando un maximo de 2 DNSサーバー。 saludos P.D.オルビダール・ライニシアー:

Sudo /etc/init.d/networking restart
0
enlinea777