nslookupの結果が常にサーバー127.0.0.1から来る理由


11

nslookupが常にサーバー127.0.0.1から結果を取得することは非常に混乱しています

UbuntuはdnsmasqによるローカルDNSキャッシュを使用しているためですか?しかし、私はそれを閉じてDNSキャッシュをフラッシュし、次にアクセスしたことがないホストをnslookupした後、出力は127.0.0.1のままです。

それは私をかなり混乱させます。誰も私のためにこれを説明できますか?ところで、私のDNSサーバーは8.8.8.8に設定されています。

回答:


11

デフォルトでは、Ubuntuは実際にDNSエントリをDnsmasqでキャッシュします。DNSエントリがキャッシュにない場合、dnsmasqはルックアップを行うため、ネームサーバーを指定せずにDNSルックアップを行うと、常にlocalhost127.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)。

詳細については、コミュニティのドキュメントマンページを参照してください


1
返信いただきありがとうございます。DNSエントリがキャッシュにないときにDnsmasqがルックアップを実行することに気付いていません。どうもありがとう!
47dev47null

すでにdns=dnsmasq行がない場合はどうしますか?
ダグラスガスケル

@DouglasGaskell:この答えは時代遅れです。Ubuntu systemd-resolvedはバージョン17.04に切り替えたと思います。参照:askubuntu.com/questions/907246/…–
シルケ

2

確認する

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/

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.