nslookupが常にサーバー127.0.0.1から結果を取得することは非常に混乱しています
UbuntuはdnsmasqによるローカルDNSキャッシュを使用しているためですか?しかし、私はそれを閉じてDNSキャッシュをフラッシュし、次にアクセスしたことがないホストをnslookupした後、出力は127.0.0.1のままです。
それは私をかなり混乱させます。誰も私のためにこれを説明できますか?ところで、私のDNSサーバーは8.8.8.8に設定されています。
nslookupが常にサーバー127.0.0.1から結果を取得することは非常に混乱しています
UbuntuはdnsmasqによるローカルDNSキャッシュを使用しているためですか?しかし、私はそれを閉じてDNSキャッシュをフラッシュし、次にアクセスしたことがないホストをnslookupした後、出力は127.0.0.1のままです。
それは私をかなり混乱させます。誰も私のためにこれを説明できますか?ところで、私のDNSサーバーは8.8.8.8に設定されています。
回答:
デフォルトでは、Ubuntuは実際にDNSエントリをDnsmasqでキャッシュします。DNSエントリがキャッシュにない場合、dnsmasqはルックアップを行うため、ネームサーバーを指定せずにDNSルックアップを行うと、常にlocalhost(127.0.0.1)IPアドレスが表示されます。
でmanページ次のように説明しています:
DnsmasqはDNSクエリを受け入れ、小さなローカルキャッシュから回答するか、実際の再帰的なDNSサーバーに転送します。/ etc / hostsの内容をロードして、グローバルDNSに表示されないローカルホスト名を解決できるようにし、DHCPが構成されたホストのDNSクエリにも応答します。
この動作は、編集/etc/NetworkManager/NetworkManager.confしてに変更dns=dnsmasqすることでオーバーライドでき#dns=dnsmasqます。その後、ネットワークマネージャーサービスを再起動する必要があります(sudo service network-manager restart)。
詳細については、コミュニティのドキュメントとマンページを参照してください。
dns=dnsmasq行がない場合はどうしますか?
systemd-resolvedはバージョン17.04に切り替えたと思います。参照:askubuntu.com/questions/907246/…–
確認する
cat /etc/NetworkManager/NetworkManager.conf
[メイン]
plugins = ifupdown、keyfile
dns = dnsmasq
[ifupdown]
managed = false
hash(#)out dns = dnsmasq
ファイルを保存し、ネットワークを再起動します。
ローカルリゾルバが必要ない場合は、次の手順を使用してDNSMASQをオフにできます。
/etc/NetworkManager/NetworkManager.confファイルを編集する必要があります
gksudo gedit /etc/NetworkManager/NetworkManager.conf
次の行をコメントアウトします
dns=dnsmasq
に
#dns=dnsmasq
ファイルを保存して終了します
次のコマンドを使用してネットワーク管理する必要があります
sudo restart network-manager
参照:http : //www.stgraber.org/2012/02/24/dns-in-ubuntu-12-04/