Linux Mintで/etc/resolv.confファイルを表示すると、最初のコメントは/etc/resolv.confファイルがresolvconf(8)によって生成されることを示しています。
~ $ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
Resolvconf(8)のmanページを言い換えると、「resolvconfプログラムは、dhclientなどのDHCPクライアントによって実行されます」。
Dhclient wlan0を実行しています。
~ $ dhclient wlan0
Dhclientはresolvconfプログラムに/etc/resolv.confを更新させるべきです。 /var/lib/dhcp/dhclient.leasesファイルは、ネームサーバーのIPアドレス(192.168.0.6)をリースできることを確認します。
~ $ cat /var/lib/dhcp/dhclient.leases
lease {
interface "wlan0";
. . .
option domain-name-servers 192.168.0.6;
. . .
}
ただし、/ etc/resolv.confファイルは更新されません。 /etc/resolv.confファイルにはネームサーバー127.0.1.1があります。
~ $ 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.1.1
search software.eng.apl
/ etc/network/interfacesにリストされているネームサーバーはありません。
~ $ cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
DHCPサーバーからリースされているネームサーバーを使用して/etc/resolv.confファイルを更新するために、ここで何が欠けているのかわかりません。 DHCPサーバーは、DHCPDを使用するLinux CentOSマシンです。
Mintやその他の最新のディストリビューションにはデフォルトでmdns
が付属しており、通常のパブリックDNSをローカルの「分散型」ラッパーでラップし、ローカルネットワークのzeroconfサポートを有効にします。基本的に、ローカルDNSサーバーは、発見したローカルネットワーク内の名前を解決し、パブリックインターネット解決のために(現在プロキシされている)パブリックDNSにフォールバックします。つまり、ローカルネットワーク外の名前を使用します。
多くの言葉で、あなたのresolv.conf
は正しく、このシナリオに適しています。mdns
がISPのネームサーバーへのアクセスに問題がある場合は、内部its設定を確認する必要があります-もちろん、zeroconfのサポートを気にしない場合は、mdns
(およびおそらくAvahi)を無効にすると、resolv.conf
伝統的な方法で。
OPで説明されているのと同じ問題がありましたが、以前の回答のどれもうまくいきませんでした。 Linux Mint 18を実行していますが、Dockerコンテナー内でネットワーク機能を使用しようとしたときにこの問題を発見しました。 Dockerは/etc/resolv.conf
からのDNS値を解決することを期待していました。しかし、リストされている唯一のネームサーバーは127.0.1.1だったので、Dockerネットワーキングは失敗しました。
別の解決策がaskubuntuで見つかりました。ここでは、誰かを助けるために相互参照として投稿しています。
NetworkManagerは、(resolvconfユーティリティを介して)アドレス127.0.1.1をresolv.confに挿入するプログラムです。 NetworkManagerは、dnsmasqプログラムのインスタンスを起動してローカル転送ネームサーバーとして機能するように構成されている場合にのみ、そのアドレスを挿入します。そのdnsmasqインスタンスは、アドレス127.0.1.1でクエリをリッスンします。
ローカル転送ネームサーバーを使用しない場合は、dnsmasqインスタンスを開始せず、そのアドレスを挿入しないようにNetworkManagerを構成します。 /etc/NetworkManager/NetworkManager.conf
では、行dns=dnsmasq
をコメント化してください
Sudo vim /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq
networkManagerサービスを再起動します。
Sudo service network-manager restart
このモードでは、NetworkManagerは/etc/resolv.confを(まだresolvconfを介して)更新して、NetworkManagerがアクティブな接続用に持つネームサーバーアドレスを含めます。
Resolv.confを更新するためのresolvconfメカニズムを無効にして、静的なresolv.confファイルを使用する場合は、次のようにします。
Sudo rm -f /etc/resolv.conf # Delete the symbolic link
Sudo vim /etc/resolv.conf # Create static file