macOSでホストルールが定義されている場所を見つける

macOSでホストルールが定義されている場所を見つける

システムが特定のドメインのIPアドレスをどのように派生するのかを理解する方法はありますか?パソコンからpingAnalytics.google.comを返すと、127.0.0.1この結果がどのように表示されるのかわかりません。私の/private/etc/hostsファイルはデフォルトの状態です。

システムがその住所にどのように到着したかを知る方法はありますか?たとえば、他のホストファイル、DNS、または他のものから来ていますか?

ベストアンサー1

dtrace実際ではありません。システムを介して実行されている作業を確認するまではそうではありません。dtrace君なしではできない破棄ソースが何であるかを見てください。

DNSサーバーから来るのですか? (また、@他のパブリックDNSサーバーを使用して、ゾーンを持つローカルキャッシュネームサーバーなどのローカルDNSトリックがあることを確認するか、analytics.google.com一部のファイアウォールがパケットをローカルnsにリダイレクトしていることを確認してください...)

$ grep nameserver /etc/resolv.conf
nameserver 192.168.96.1
$ dig +short @192.168.96.1 analytics.google.com
...
$ dig +short @8.8.8.8 analytics.google.com
...

mDNSシステムのアイデアは何ですか(DNSをポーリングすることも、WireSharkを実行してポートまたはポートDNSパケットを見つけてtcpdump何が表示されるのかを確認)535353

$ dns-sd -q analytics.google.com
...
^C

Appleがキャッシュしている内容が表示されます。これはApplelandで異なる場合はDNSとは異なる場合があります。

$ dscacheutil -q host -a name analytics.google.com
...

だとしたら、奇妙なもののキャッシュをクリアする問題です...

$ dscacheutil -flushcache

次に、上記の状況が存在するかどうかを確認するか、dns-sddscacheutil -q hostの状況を報告してください。エントリがファイルにある場合、キャッシュを消去してdtraceスクリプトを実行すると、ファイルが開いていることがopensnoop表示されます。関連レコードがあるかどうかを調べて、内容を調べます。

おすすめ記事