ある/etc/resolv.conf
に無用のUbuntu 12.04 LTS(精密センザンコウ)?
DNSサーバー情報がNetworkManagerに保存されるようになりました。nmcli
コマンドラインツールはあなたのためにそれを一覧表示することができます。
DNSサーバーをもう1つ追加したい場合/etc/resolv.conf
、resolvconf
パッケージヘルプを使用して追加しますか?
ある/etc/resolv.conf
に無用のUbuntu 12.04 LTS(精密センザンコウ)?
DNSサーバー情報がNetworkManagerに保存されるようになりました。nmcli
コマンドラインツールはあなたのためにそれを一覧表示することができます。
DNSサーバーをもう1つ追加したい場合/etc/resolv.conf
、resolvconf
パッケージヘルプを使用して追加しますか?
回答:
場合は/etc/resolv.conf
含まれnameserver 127.0.0.1
、その後にエントリを追加することは/etc/resolvconf/resolv.conf.d/tail
本当に便利な何もしません。
NetworkManagerを使用している場合は、代わりにネットワークインジケーターを使用してネームサーバーアドレスを静的に追加する必要があります:接続の編集... | 編集... | IPv4設定| 追加のDNSサーバー。
あなたがいる場合、実際に多くのエントリを追加したい/etc/resolv.conf
、作成/etc/resolvconf/resolv.conf.d/tail
し、そこにそれらを追加します。
Ubuntuのすべてのリリースと同様、Ubuntuリリースノートを読むことをお勧めします。
デスクトップおよび共通インフラストラクチャのセクションには、へのリンクが含まれています
/etc/resolvconf/resolv.conf.d/tail
ファイルの追加やNetwork Managerの使用と比較してどうですか?ありがとう。
dns-nameservers
します/etc/network/interfaces
。のeth0セクションに追加するだけです。
/etc/resolvconf/update.d/libc
Ubuntu 14.04.1サーバーの場合:(ショーの23行目と24行目# Set TRUNCATE_NAMESERVER_LIST_AFTER_LOOPBACK_ADDRESS=no
# to allow additional nameserver addresses to be listed in
# resolv.conf after an initial loopback address 127.* or ::1.
で設定します 。/etc/default/resolvconf
/etc/resolvconf/update.d/libc
ここで、次のような行を追加する別のアプローチを見つけました/etc/dhcp/dhclient.conf
:
prepend domain-name-servers x.x.x.x, y.y.y.y;
同様に、私は第三のアプローチ見つけ、ここに行を追加する必要が/etc/network/interfaces
:
auto eth0
iface eth0 inet static
. . .
dns-nameservers 8.8.8.8 8.8.4.4
更新:これは、3番目のアプローチの公式ドキュメントです。
third approach
これが最も簡単な方法であるため、私はこれに投票しました。
/etc/resolvconf/resolv.conf.d/head
(そこにある誤解を招く「編集しない」コメントを克服した後):)
resolvconfパッケージについて話しているようです。
resolvconfパッケージをインストールします。
走る
cd /etc/resolvconf/resolv.conf.d
sudo cp -p head head.orig #backup copy, always do this
sudo nano head
ファイルの先頭は恐ろしい警告です。ファイル/etc/resolv.confは、このファイルの内容から自動生成されます。警告があるため、/ etc / resolv.confの生成時に/etc/resolv.confに配置されます。ファイルの最後に、追加します
nameserver <ip_of_nameserver>
を押しCtrl xて「はい」と答え、ファイルを保存します。最後に、/ etc / resolv.confを再生成して、変更がすぐに適用されるようにします。
sudo resolvconf -u
次に、/ etc / resolv.confの内容を確認して、追加した行がそこにあることを確認します。さらに、次回マシンを起動するとき、またはネットワークサービスを再起動するときのどちらか早い方でも、そこにあります。
以下に、Ubuntu Serverエディションを実行してNetworkManagerではなくifupを使用してから見つけた最良の方法を示します。
実際、私にとっては、/ etc / network / interfacesファイルにすべてを入れることで、これが簡単になりました。これで、resolv.confに書き込んだのと同じ構成を、次の例のようにネットワークアダプター構成と同じファイルに含めることができます。
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 75.75.75.75 75.75.76.76
dns-search local
これが私の助けになるように助けてくれることを願っています。今では静的IPアドレスを作成し、ネームサーバーとDNSドメインをすべて1つのファイルに追加できます:)
注:この回答は、質問のマージ前のバージョンに対するもので、目的のネームサーバーの事前保留にのみ焦点を当てています。
これは、12.04より前に機能します。
編集/etc/dhcp3/dhclient.conf
して追加:
prepend domain-name-servers 127.0.0.1;
(実際、この行はすでに存在します。あなたがする必要があるのは、コメントを外すことだけです。)
man dhclient.conf
、dhclientのマニュアルページにアクセスしてください。(これは、Azendaleの質問への回答ではありません。)
resolvconf
役に立たない。Linuxサーバーを使用していますが、IPアドレスは静的で、DNSサーバーは静的です。私は必要はありませんresolvconf
かNetworkManagerを。
サーバーで作業するときは、それをシンプルに保つことが私のポリシーです。複雑さが少ないほど、物事が壊れたときの管理/修正が容易になります。
そのため、シンボリックリンクではないaptitude purge resolvconf
ことを手動で確認し、静的ファイルを作成しました。プログラムがファイルを変更しようとした場合に備え て、予防措置として(不変)にしました。/etc/resolv.conf
chattr +i
/etc/resolv.conf
上記のほとんどは、ユーザーが初期システムを持っていることを前提としていますが、現実には、異なるdhcpクライアントをインストールしたり、Ubuntuの特定の以前のバージョンでネットワークマネージャーを無効にしたりすることがよくあります。私はしばらくの間dnsmasqを使用していましたが、それを削除しました。現在、私のシステムには次の内容があります/etc/resolv.conf
(これは/run/resolvconf/resolv.conf
私のシステム上のシンボリックリンクです)。
cat /etc/resolv.conf
# 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
どのくらいの頻度で実行してsudo resolvconf -u
もsudo dpkg-reconfigure resolvconf
、または、ネームサーバーをNetworkManagerで設定したものに更新しませんでした。resolvconfがNetworkManagerから使用した情報は存在しました:
cat /run/resolvconf/interface/NetworkManager
nameserver 8.8.4.4
nameserver 8.8.8.8
ただし、このディレクトリに複数のファイルがある場合、このファイルはまったく使用されない可能性があります。原因はdnsmasqの削除で削除されなかったファイルでした。
cat /run/resolvconf/interface/lo.dnsmasq
nameserver 127.0.0.1
このファイルを削除するだけで(そしてsudo resolvconf -u
その後実行して)、私のDNSトラブルを解決しました:
cat /etc/resolv.conf
# 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.4.4
nameserver 8.8.8.8
これが他の人のデバッグ(これらの異なるネットワークツール間の複雑な相互作用)にも役立つことを願っています。使用resolvconf
する場合は、実行ls /run/resolvconf/interfaces
して、そこにあるものを確認してください。
/run/resolvconf/interface/
ディレクトリに追加のファイルはありませんでしたが、私のNetworkManager
ファイルには愛が必要でした。あなたの答えはこの問題の解決に役立ちました。
リンクを削除/etc/resolv.conf
し、ネームサーバーのアドレスを含む通常のファイルを作成しました。それは機能しますが、Ubuntu開発者が作成したこの奇妙な構造を使用する理由は見当たりません。
接続「AUTO ETH0」またはNMでの接続に使用する名前を編集できます。これを行うには、NMを右クリックして[接続の編集...]を選択します。[IPv4]タブで、[方法]として[自動(DHCP)アドレスのみ]を選択できます。NMを使用すると、アドレスがDHCP経由で配信される場合でもネームサーバーアドレスを手動で設定できます。
すでに長いリストに私のビットを追加し、別の方法があります(12.04でテスト済み):
/run/resolvconf/interface/NetworkManager
ニーズに合わせて編集します。以下に例を示します。
search foobar.com example.com
nameserver 192.168.1.1
次に、他のほとんどの例で述べたように、aを実行しsudo resolvconf -u
ます。次のようになりますresolv.conf
。
nameserver 192.168.1.1
nameserver 127.0.0.1
search foobar.com example.com
私はまだそれが現在実装されている方法が好きではありません(Ubuntuはそれが作るすべてのfooのサービスを必要とするようです)、そしてresolv.conf
確かにプレーンを好むでしょう。しかし、これまでのところ、このアプローチは私にとって最良の妥協案のようです。追加された「localhost-NS」はあまり痛くないはずです。
vi /etc/network/interfaces
This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The primary network interface
allow-hotplug eth0
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
#auto eth0 <<----- change this comment with the #
iface eth0 inet dhcp
これは非常に人気のある質問であり、標準的な可能な回答のコレクションがあり、それらすべてはかなりハックです。私はNetworkManagerで設定したDNS設定、特に「自動(DHCP)アドレスのみ」で静的DNSサーバーを設定することをUbuntuに反映させるのに常に問題を抱えていました。
問題は、resolvconfとNetworkManagerの相互作用にあります。resolvconfにはこのファイルがあります/etc/resolvconf/interface-order
。少なくとも私のシステムでは、NetworkManager はこのファイルにまったく含まれていません(ただし、末尾に*ワイルドカードが付いていることを除きます)。したがって、何が起こるかというと、resolvconfに対するdhclientの最新のレポートは、NetworkManagerが言わなければならないものよりも優先されます。
したがって、少なくとも私の場合、実際の答えは
NetworkManager
またはの上部付近/etc/resolvconf/interface-order
。
はい-minimalはそれに依存します]。そのため、resolvconfなしでシステムを一貫した更新された状態に保つことは困難です。
リクエストに応じて、私はこれをどのように理解したかについての詳細を提供できます。(編集:明らかに要求されたときにそうしなかった、申し訳ありません。この時点で、私が次に言うこと以上の詳細を覚えていません:)簡単に言えば、resolvconf実行可能ファイルをその周りのシェルラッパーで置き換えました引数、入力、出力、stderrをファイルにダンプしました。set -xをresolvconfの更新スクリプトに追加しました。
(編集:私はすることができます私が最初の部分の意味は、私がどのコマンドまたはtypeコマンドを使用して見つけることができ、実際はresolvconf実行可能ファイルを、移動するためにsudoを使用していることであると言うそして、最終的にはちょうど移動を実行するシェルスクリプトを作成します。 resolvconfが、引数をいくつかのファイルにエコーし、シェルリダイレクトを使用してstdin、stdout、およびstderrをさまざまな他のファイルに送信します。「resolvconfの更新スクリプト」がどこにあり、現在簡単に確認できないかは思い出せません。多くのLinuxオタクは私が言っていることを理解できます;おそらく、いくつかの優れたサマリタンはコメントでさらに詳細を提供するでしょう。)
別の方法は、次の場所でdocker固有のDNSサーバーを定義することです。
/etc/docker/daemon.json
そのようなファイルがない場合は、作成するだけです。
{
"dns": ["10.0.0.2", "8.8.8.8"]
}
ソース:https : //robinwinslow.uk/2016/06/23/fix-docker-networking-dns/
また、次を参照してください:https : //docs.docker.com/engine/reference/commandline/dockerd/#/daemon-configuration-file
DNSを変更するには、https://developers.google.com/speed/public-dns/docs/usingの手順に従って ください
ネットワークに移動
DNSを構成する接続を選択します。
ワイヤレス接続の設定を変更するには、[ワイヤレス]タブを選択し、適切なワイヤレスネットワークを選択します。
矢印(右)をクリックし、表示されるウィンドウで[IPv4設定]または[IPv6設定]タブを選択します。
選択した方法が自動(DHCP)の場合、ドロップダウンを開き、代わりに[自動(DHCP)アドレスのみ]を選択します。メソッドが他の値に設定されている場合は、変更しないでください。
[DNSサーバー]フィールドに、DNS IPアドレスをコンマで区切って入力します
nm-tool
ではないと思いますnmcli
。