MacOS: OSX 上のホストを使用してローカルで DNS を検証する必要がありますか?
私のクライアントの XNUMX 人は、Web サイトを一括ホスティング アカウントに移転しました。 彼らは自分のドメインを更新しました DNS A と CNAME 記録はありましたが、サイトが新しいホスティング アカウントで解決しているかどうかを判断するのが困難でした(新しい IP 住所)。
DNS のトラブルシューティングを行うときは、次の点に留意してください。DNS の仕組みを理解し、ドメイン レジストラーの仕組みを理解し、ホストがドメイン エントリを管理する方法を理解します。
DNSのしくみ
ブラウザにドメインを入力する場合:
- ドメインはインターネットで検索されます ネームサーバー リクエストの送信先を特定します。
- Web ドメイン リクエストの場合 (HTTP)、ネームサーバーは IPアドレスをコンピュータに返します.
- 次に、コンピュータはこれをローカルに保存します。 DNSキャッシュ.
- リクエストはホストに送信され、ホストがリクエストをルーティングします 内部で そしてあなたのサイトを提示します。
ドメインレジストラの仕組み
注: すべてのドメイン レジストラが実際に DNS を管理しているわけではありません。 たとえば、Yahoo! を通じてドメインを登録しているクライアントが XNUMX 人います。 Yahoo! 政権はそうしているように見えますが、 の単なる再販業者です Tucows。 その結果、Yahoo! で DNS 設定を変更すると、それらの変更が更新されるまでに数時間かかることがあります。 リアル ドメインレジストラ。
DNS 設定が更新されると、インターネット上の一連のサーバーに伝播されます。 ほとんどの場合、これには数秒かかります。 これが人々がお金を払う理由のXNUMXつです マネージドDNS。 マネージドDNS企業は通常、冗長性があり、信じられないほど高速です…多くの場合、ドメインレジストラよりも高速です。
インターネットサーバーが更新されると、次にシステムがDNS要求を行うときに、サイトがホストされているIPアドレスが返されます。 注意: 次回システムがリクエストを行うときに言ったことを思い出してください。 以前にそのドメインをリクエストしたことがある場合、インターネットは最新である可能性がありますが、ローカル システムは、現在の IP アドレスに基づいて古い IP アドレスを解決している可能性があります。 DNSキャッシュ.
ホストDNSのしくみ
ローカル システムによって返されキャッシュされる IP アドレスは、通常、単一の Web サイトに固有のものではありません。 ホストには、単一の IP アドレス (通常はサーバーまたは仮想サーバー) でホストされる数十、場合によっては数百の Web サイトがある場合があります。 したがって、IP アドレスからドメインがリクエストされると、ホストはリクエストをサーバー内の特定のフォルダーの場所に転送し、ページを表示します。
DNSのトラブルシューティング方法
ここには XNUMX つのシステムがあるため、トラブルシューティングするシステムも XNUMX つあります。 まず、ローカル システムをチェックして、IP アドレスがシステム内のどこを指しているかを確認します。
これは、ターミナルウィンドウを開いて次のように入力することで簡単に実行できます。
ping domain.com
または、特定のネームサーバー検索を実行することもできます。
nslookup domain.com
ドメイン レジストラーの DNS 設定を更新した場合は、DNS キャッシュがクリアされていることを確認し、再度要求を行う必要があります。 macOS で DNS キャッシュをクリアするには:
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
sudo killall mDNSResponderHelper
sudo dscacheutil -flushcache
この時点で、ping を再試行するか、 nslookup ドメインが新しい IP アドレスに解決されるかどうかを確認します。
次のステップは、インターネットの DNS サーバーが更新されているかどうかを確認することです。 保つ DNSスタッフ これには便利です。プラットフォームを通じて完全な DNSreport を取得できます。これは非常に優れています。
Web 上で IP アドレスが適切に表示されているにもかかわらず、サイトが表示されない場合は、インターネットのサーバーをバイパスして、リクエストを IP アドレスに直接送信するようにシステムに指示できます。 これは、
hosts
ファイルを削除し、DNS をフラッシュします。 これを行うには、ターミナルを開いて次のように入力します。
sudo nano /etc/hosts
システムパスワードを入力し、Enterキーを押します。 これにより、ファイルがターミナルに直接表示され、編集できるようになります。 矢印を使用してカーソルを移動し、IPアドレスの後にドメイン名を付けた新しい行を追加します。
イベント control-o
キーボードで を押してファイルを保存し、戻ってファイル名を受け入れます。 control+x を押してエディタを終了すると、コマンド ラインに戻ります。 キャッシュをフラッシュすることを忘れないでください。 サイトが正常に表示されない場合は、ホストにローカルな問題がある可能性があるため、ホストに連絡して知らせる必要があります。
最後のメモ: ホストファイルを元のバージョンに戻すことを忘れないでください。 自動的に更新したいエントリーを残したくないですよね。
これらの手順に従うことで、レジストラのDNSエントリが最新であり、インターネット上のDNSエントリが最新であり、MacのDNSキャッシュが最新であり、WebホストのDNSが稼働していることを確認できました。今日まで…行ってよかった!