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)
man ページを言い換えると次のようになりますresolvconf(8)
:
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
/etc/resolv.conf
DHCP サーバーからリースされているネームサーバーを使用してファイルを更新するために、ここで何が欠けているかわかりません。DHCP サーバーは、DHCPD を使用する Linux CentOS マシンです。
答え1
Mint やその他の最新のディストリビューションにはmdns
、デフォルトで、通常のパブリック DNS をローカルの「分散型」ラッパーでラップし、ローカル ネットワークの zeroconf サポートを有効にする機能が搭載されています。基本的に、ローカル DNS サーバーは、検出したローカル ネットワーク内の名前を解決し、パブリック インターネットの解決、つまりローカル ネットワーク外の名前については、(プロキシ化された) パブリック DNS にフォールバックします。
言い換えれば、あなたのはresolv.conf
正しく、このシナリオに適切であり、mdns
ISPのネームサーバーにアクセスできない場合は、内部を確認する必要があります。その構成 - もちろん、zeroconf サポートを気にしない場合は、無効にすることでmdns
(おそらく Avahi も無効にすることで)resolv.conf
従来の方法で管理できます。
答え2
/etc/dhcp/dhclient.conf
コメントを解除することで行を編集できます#prepend domain-name-server
答え3
OP で説明されているのと同じ問題がありましたが、これまでの回答はどれもうまくいきませんでした。Linux Mint 18 を実行していますが、docker コンテナ内でネットワーク機能を使用しようとしたときにこの問題を発見しました。Docker は からの DNS 値を解決しようとしていました/etc/resolv.conf
。しかし、リストされている唯一のネームサーバーが 127.0.1.1 であったため、docker ネットワークは失敗しました。
私は見つけた別の解決策askubuntu ではうまくいきました。誰かの役に立つかもしれないので、相互参照としてここに投稿します。
NetworkManager は、resolvconf ユーティリティを介してアドレス 127.0.1.1 を resolv.conf に挿入するプログラムです。NetworkManager は、ローカル転送ネームサーバーとして機能する dnsmasq プログラムのインスタンスを起動するように設定されている場合にのみ、そのアドレスを挿入します。その dnsmasq インスタンスは、アドレス 127.0.1.1 でクエリをリッスンします。
ローカル転送ネームサーバを使用しない場合は、NetworkManagerがdnsmasqインスタンスを起動せず、そのアドレスを挿入しないように設定します。/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 は (resolvconf 経由で) /etc/resolv.conf を更新し、NetworkManager がアクティブな接続用に持つネームサーバー アドレスを含めます。
resolv.conf を更新するための resolvconf メカニズムを無効にして、静的な resolv.conf ファイルのみを使用する場合は、次の手順を実行します。
sudo rm -f /etc/resolv.conf # Delete the symbolic link
sudo vim /etc/resolv.conf # Create static file