最終的に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を取得する方法はありますか?ある場合、私のサーバーで微調整するために使用できる例はありますか。
どんな助けも大歓迎です。
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
答えは/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
を実行します(このスクリプトは非推奨ですが、引き続き機能します)。
これは、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
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.
他の特別なファイル(頭と尾)があり、これらはあなたが望むものを達成するのを助けるかもしれません。
他の多くの回答が述べているように、これはシステムにインストールされている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:1
とresolv.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で機能しました。
これは私のマシンの奇妙な癖かもしれませんが、他の誰かが同じようなケースを持っているかもしれません。
私は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.named
はnameserver 127.0.0.1
にリセットされました。
奇妙なことに、ネットワークの再起動は引き続き機能します:/etc/resolv.conf
にはまだISPネームサーバーが含まれています。これを説明することはできません(誰かできますか?)が、これは誰かが同じ場所で立ち往生するのを助けるかもしれません。
ネームサーバーをファイル/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
/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
最後の行に追加します。例:
nameserver 8.8.8.8
ターミナルを開いて入力します
Sudo chattr +i /etc/resolv.conf
+ iは、ブート時にファイルがリセットされないように注意します。
上記を取り消すには
Sudo chattr -i /etc/resolv.conf
多くのための
man chattr
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/
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`
Domain
行を追加します。DOMAIN="yourcompany.com intnet.yourcompany.com"
保存、ログアウト、ログインし直します。NetworkManagerに\etc\resolve.conf
の行が追加されます。
search rn.yourcompany.com yourcompany.com intnet.yourcompany.com
これが最も簡単な修正であることがわかりました。 resolv.confファイルとresolvconfファイルがある場合、それらは互いにステップします。再起動するたびに上書きされるresolv.confファイルを削除する必要があります。ネームサーバー8.8.8.8 8.8.4.4をresolvconfファイルの下部に配置し、コマンドSudo rm /etc/resolv.conf
を実行してファイルを削除します。その後、再起動するとすべてが機能します。
それは私にとってうまくいく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/
Resolve.confをバックアップし、resolvconfパッケージを削除して、/ etc/resolv.confファイルを必要に応じて編集します。
apt-get remove -y resolvconf
echo 'nameserver 8.8.8.8' > /etc/resolv.conf
Resolvconfのような不正なソフトウェアを使用しないことを選択する権利が必要です。
ところで、/ etc/resolv.confの検索フィールドは役に立ちません。
DHCPを使用している場合は、/etc/dhcp/dhclient.conf
を編集してDNSサーバーを追加します。
prepend domain-name-servers 12.34.56.78, 12.34.56.79;
DHCPクライアントはdns-nameservers
のetc/network/interfaces
を上書きし、/etc/resolvconf/resolv.conf.d/base
でも同様だと思います。
これは、Ubuntuサーバー14.04.3で機能しました。
詳細については Debian NetworkConfiguration Wiki をご覧ください。
英語翻訳:
解決しました。 「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