ホストしたサイトのDNSレコード(ns1
、ns2
、ns3.myhostingcompany.com
)を更新しましたが、ドメインレジストラーのパーキングページが表示されます。
問題がUbuntuのキャッシュされたDNSレコードにあるかどうかを確認したいと思います。 UbuntuのDNSキャッシュをクリアする方法はありますか? (そのようなものが存在する場合?)
マイク・シュルツの答え を見てください。
Ubuntuはデフォルトでdnsレコードをキャッシュしません。したがって、dnsキャッシュをインストールしていない限り、クリアするものはありません。
DNSレコードはプロバイダーのDNSサーバーによってキャッシュされる可能性が高いため、DNSの変更が成功したかどうかを確認する場合は、Digを使用してドメインホスティングサービスからDNSサーバーに問い合わせることができます。
Dig -t a ns1.myhostingcompany.com @domain_registrar_dns_server
UbuntuでDNSのキャッシュを開始したい場合は、pdnsd
をresolvconf
とともにインストールすることをお勧めします。 nscd
はバグが多いためお勧めできません。
Ubuntu 12.04はnetwork-manager
に組み込まれている dnsmasq
を使用しますが、does n'tキャッシュDNSがないため、フラッシュする必要があります。以下は、そのことを証明するためのsyslog
のサンプル行です。
dnsmasq[2980]: started, version 2.59 cache disabled
dnsmasq
の構成も必要ありません。ストック設定で実行している場合、dnsをキャッシュしません。そうするためには、このように明示的に設定する必要があります buntuの記事 で説明しています。
設定を更新する場合は、ネットワークを無効にしてから有効にするか、実行します
Sudo service network-manager restart
これは、network-manager
に組み込まれているため、dnsmasq
を再起動します。このための証拠については、syslog
を確認してください。
Dhcpで有線接続を使用している場合、network manager
はルーターから直接設定を取得し、Ubuntuにログインすると接続が自動的に確立されます。 Webインターフェイス経由でアクセスできる場合は、ルーターの設定が正しいことを確認し、必要に応じて再起動できます。 dnsの一般的な問題である場合は、isp dnsの代わりにGoogle dnsを使用してみてください。これに関する詳細情報は 詳細はこちら です。
Ubuntu 17.04以降では、systemd-resolveがDNSに使用されます。 systemdのキャッシュは次のようにフラッシュできます。
Sudo systemd-resolve --flush-caches
Ubuntuは17.04以降のsystemd-resolveを使用しているため、この回答は最近のUbuntuバージョンには適用されないことに注意してください。「 buntu 17.04以降のDNSキャッシュをフラッシュする」を参照してください。 (18.04) "
dnsmasq
がキャッシュしているかどうかを確認するには、ps ax | grep dnsmasq
を実行して、実行中のコマンドを確認します。デフォルトの13.10マシンの内訳は次のとおりです。
/ usr/sbin/dnsmasq\ --no-resolv\ --keep-in-foreground\ --no-hosts\ --bind -interfaces\ --pid-file =/var/run/NetworkManager/dnsmasq.pid\ --listen-address = 127.0.1.1\ --conf-file =/var/run/NetworkManager/dnsmasq.conf\ -cache-size = 0\ - proxy-dnssec\ --enable-dbus = org.freedesktop.NetworkManager.dnsmasq\ --conf-dir =/etc/NetworkManager/dnsmasq.d
/etc/NetworkManager/dnsmasq.d
はデフォルトでは空です。したがって、オーバーライドは存在せず、--cache-size=0
が意味することを意味する(unlimitedキャッシュの代わりに)、man dnsmasq
をチェックするだけです。ショー:
-c, --cache-size=<cachesize>
Set the size of dnsmasq's cache. The default is 150 names.
Setting the cache size to zero disables caching.
そのため、dnsmasq
canはDNSをキャッシュできますが、ボックスをキャッシュしません。マシンとさまざまな構成ディレクトリをチェックして、同じページにいることを確認できます。
キャッシュの問題が発生している場合、これはいくつかの場所のいずれかで発生している可能性があります。
ここでバレルを削っていますが、おそらくdnsmasq
でキャッシュをオンにする代わりに、Ubuntuに非標準のDNSサーバーをインストールしたのでしょう。 nscd
、DJBDNS dnscache
(別名TinyDNS)、pdns
、pdnsd
、Bind9(およびその変形)など、多くのことは覚えていません。これらはおそらく/etc/resolv.conf
で証明されます(/ etc/resolvconf/`の設定でそのファイルを自動生成します)。以下は、ローカルでインターセプトされたDNSクエリを示しています。
$ nslookup askubuntu.com
Server: 127.0.1.1
Address: 127.0.1.1#53
Non-authoritative answer:
Name: askubuntu.com
Address: 198.252.206.24
8.8.8.8(またはDNSサーバーが期待するもの)をヒットしていない場合は、代わりにヒットしているものを確認します。私の場合、これはdnsmasq
がLXCのDNSクエリをミラーリングするように設定されていることがわかりますが、あなたの場合、悪いキャッシュ処理を行っている可能性があります。
リストされたキャッシュを完了した場合、それぞれをクリアするプロセスは異なります。
Sudo /etc/init.d/nscd reload # nscd
Sudo /etc/init.d/named restart # bind9
少し関連する注意事項では、 dnsmasq
でのキャッシュを有効にするためにこれを参照してください 。
Ubuntu 12.04はdnsmasqを使用してDNSをキャッシュします(man dnsmasq
を参照)。以下を使用してキャッシュをクリアします。
Sudo kill -HUP $(pgrep dnsmasq)
Sudo /etc/init.d/nscd restart
http://www.ubuntugeek.com/howto-clearflush-dns-cache-in-ubuntu.html
また、メモとして、Digを使用してDNSの変更が反映されているかどうかを確認し、デフォルトのDNSサーバー以外の人と照合することもできます。この場合、Google DNS。
Dig @8.8.8.8 example.com
個人的には、 OpenDNSを使用 を使用し、 キャッシュチェック機能 を使用して、変更が機能することを確認するためだけに更新を強制しますが、できませんguarantee48時間以内にユーザーに対して更新されます。
DNSは遅い獣です。忍耐は正気を保ちます。
Nscdを使用している場合:
Sudo /etc/init.d/nscd restart
それをキャッシュしているのはOSではないかもしれないことに言及する価値があります。 Everyone DNSをキャッシュするのが好き...いくつかのテスト:
新しいIPか古いIPかを確認してください。ほとんどのブラウザはDNSもキャッシュするため、Chromiumを再起動していない場合、または最新のものが表示されない場合があります。
ping yourdomain.com
/etc/resolv.confのローカルネームサーバーを別のプロバイダーgoogleまたはlevelに切り替えます。例:
nameserver 8.8.8.8
nameserver 4.2.2.2
そして、再びpingを実行します。
ルーターがどのような形式でもDNSをキャッシュしていないことを確認してください。 (ルーター/ファームウェア/などによって異なります)
最後に、忍耐。 DNSがインターネット全体に伝播するには少し時間がかかる場合があります。
上記のすべての答えは、名前解決で1つの重要なことを忘れていました。一般に、名前解決を要求するDNSサーバーは、レコード自体を保持するDNSサーバー(権限のあるサーバー)ではありません。各DNSレコードにはTime To Live値が付属しているため、この値で指定された秒数の間、解決チェーン内の各DNSサーバーがキャッシュを行う必要があります。そのため、マシンにキャッシュできるだけでなく、名前検索の結果は、制御していないサーバーのどこかにキャッシュされます。
名前レコードの変更をすぐに通知する唯一の解決策は、権限のあるネームサーバーでエントリを作成または更新するときに、TTL値0を使用することです。ただし、これは、名前解決ごとにサーバーがヒットすることを意味します。通常、これはレジストラによって許可されていません。たとえば、選択可能な事前定義のTTL値のリストを提供できます。
さまざまなドメイン名を管理し、権限のあるネームサーバーに変更が確実に適用されるように、DNSルートから各サーバーの検索結果を表示できるdnstracer
というツールを使用しています。
結論として、DNSキャッシングソリューションが適切に配置されていなくても、DNSレコードを変更してからPCに変更が反映されるまでにはまだ遅延があります。この遅延は、レコードのTTLと、PCと権限のあるネームサーバーとの間のDNSサーバーの数に大きく依存します。
Ubuntu 14.04の場合、次のコマンドをお勧めします。
Sudo service dns-clean
次のコマンドを使用して、12.10 ubuntuボックスのDNSキャッシュをフラッシュしましたが、非常にうまく機能しました。
Sudo kill -HUP $(pgrep dnsmasq)
もう1つの役立つシグナルはSIGUSR1です。これは、syslogに少しの統計をダンプするか、man dnsmasq
からのメモです。
--no-daemonモードまたはフルロギングが有効(-q)の場合、キャッシュの内容の完全なダンプが作成されます。
私も矛盾を見つけましたが、これ: https://superuser.com/a/521562 私にとっては問題ありません(Ubuntu 13.10の最新アップデート、特別なネットワークパッケージはインストールされていません)。
要するに、これを使うだけですSudo /etc/init.d/dns-clean
Ubuntu 16.04では、以下を実行しない限り、キャッシュをクリアできませんでした。
Sudo service dnsmasq restart
リモートDNSサーバーでは特にopenDNSをお勧めします。
どうやるか?まあ...
cd /etc/dhcp
Sudo nano dhclient.conf
これを挿入しますの前に "request subnet-mask ..."行
supersede domain-name-servers 208.67.222.222,208.67.220.220;
これにより、インターフェイスが非常に速く再起動するため、SSH接続を失うこともありません
Sudo ifdown eth0 && Sudo ifup eth0
これをチェックして、新しいopenDNSが正しくインストールされているかどうかを確認してください。
cat /etc/resolv.conf