Dhclientが/etc/resolv.confを更新していません。

Dhclientが/etc/resolv.confを更新していません。

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)マニュアルページを説明してください。

resolvconf プログラムは、dhclient などの DHCP クライアントによって実行されます。

私は走るdhclient wlan0

~ $ dhclient wlan0

resolvconfDhclientはプログラムを更新する必要があります/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.confDHCPサーバーでレンタルしたネームサーバーを使用してファイルを更新するには、ここで何が欠けているのかわかりません。 DHCPサーバーは、DHCPDを使用するLinux CentOSコンピュータです。

答え1

デフォルトでは、Mintおよび他の最新のディストリビューションに同梱されているこの製品は、デフォルトのmdns「分散」ラッパーを使用して一般的なパブリックDNSをラップし、ローカルネットワークの構成を必要としないサポートを提供します。デフォルトでは、ローカル DNS サーバーはローカル ネットワークで見つかった名前を解決し、パブリック インターネット解決、つまりローカル ネットワーク外の名前のために (現在プロキシされた) パブリック DNS に置き換えます。

全体的に、あなたのアプローチresolv.confは正しく、この状況に適しています。mdnsISPのネームサーバーにアクセスできない場合は、内部を確認する必要があります。それ設定 - もちろん、Zeroconfのサポートに興味がない場合は、無効にしてmdns(そしてAvahiも可能)、resolv.conf従来の方法で管理できます。

たとえば、参照してください。https://help.ubuntu.com/community/HowToZeroconf

答え2

/etc/dhcp/dhclient.conf コメントを削除してこの行を編集できます。#prepend domain-name-server

答え3

OPで説明したのと同じ問題がありますが、以前の答えのどれも私には役立ちませんでした。私はLinux Mint 18を実行しており、Dockerコンテナ内でネットワーキング機能を使用しようとしたときにこの問題を発見しました。 Dockerは..でdockerネットワークを期待してい/etc/resolv.confますが、リストされている唯一のネームサーバーは127.0.1.1なので、dockerネットワークは成功しません。

私が見つけた別のソリューションAskubuntuは私のために働いた。もし誰かに役立つのか、相互参照でここに投稿します。


NetworkManagerは、resolvconfユーティリティを介してアドレス127.0.1.1をresolv.confに挿入するプログラムです。 NetworkManagerは、ローカル転送ネームサーバーとして機能するためにdnsmasqプログラムのインスタンスを起動するようにNetworkManagerが設定されている場合にのみ、このアドレスを挿入します。この 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はNetworkManagerがアクティブ接続に使用するネームサーバーアドレスを含むように/etc/resolv.conf(まだresolvconfを介して)を更新します。

resolv.conf 更新の resolvconf メカニズムを無効にし、静的 resolv.conf ファイルのみを使用するには、次のようにします。

sudo rm -f /etc/resolv.conf  # Delete the symbolic link
sudo vim /etc/resolv.conf   # Create static file

関連情報