I thinkこれはSnow Leopardのアップデートから始まりました。 .sshディレクトリを一掃しましたが、まだ問題があります。
〜:uname -a Darwin california-example-com.local 10.0.0 Darwin Kernel Version 10.0.0:Fri Jul 31 22:47:34 PDT 2009; root:xnu-1456.1.25〜1/RELEASE_I386 i386 〜:ssh -V OpenSSH_5.2p1、OpenSSL 0.9.8k 2009年3月25日 〜:ls -l〜/ .ssh 〜:nslookup nevada サーバー:10.94.62.3 アドレス:10.94.62.3#53 名前:nevada.example.com アドレス:10.94.62.3 〜:ssh nevada ssh:ホスト名を解決できませんでしたnevada:ノード名もサービス名も指定されていない、または不明
私はまったく同じ問題に遭遇し、Appleのディスカッションで Mac miniにDNSの問題がある に関するスレッドが非常に役に立ちました。
問題の要点:mDNSResponderは、クエリするDNSサーバーの順序を時々変更するようです。そのため、最初にISPのDNSサーバーにクエリを実行すると、適切なレコードが取得されません(または分割DNSを使用している場合は、パブリックIP)。
これに対する最善の修正は、必要なDNSサーバーのみがDNS設定にリストされるようにすることです(以前と同様)。これには、DHCPからISP DNSサーバーを削除する必要がある場合があります(私も同様に、すべての要求はローカルDNSサーバーを介して転送されます)。
Dig
やnslookup
などのユーティリティが通常どおり成功する理由は、他のオペレーティングシステムとは異なり、BINDおよび/etc/resolv.conf
を直接使用しているためです。
Snow Leopardでの参照用に、DNSキャッシュはmDNSResponderによって保存されるようになりました。これをクリアするには、Sudo killall -HUP mDNSResponder
を使用してプロセスを再起動する必要があります。 killall
コマンドにさまざまなフラグを使用することで、詳細情報(ロギング、内部状態のダンプなど)を取得できます。
"Sudo killall -USR1 mDNSResponder" to enable operation logging.
"Sudo killall -USR2 mDNSResponder" to enable packet logging.
"Sudo killall -HUP mDNSResponder" to clear the DNS cache.
"Sudo killall -INFO mDNSResponder" to dump mDNSRepsonder's internal state.
ソース: Snoop Dogg 同じスレッドで。
次のような問題がありました。
Host example.com <<< WORKED
ping example.com <<< FAILED
このようなもので解決しました:
Sudo launchctl unload -w /System/Library/LaunchDaemons/com.Apple.mDNSResponder.plist
Sudo launchctl load -w /System/Library/LaunchDaemons/com.Apple.mDNSResponder.plist
Mac OS X上のアプリケーションは、「Host/Dig/nslookup」と同じメカニズムをDNSに使用しません。
「Host/Dig/nslookup」の使用は、これがネットワークの問題ではないことを確認するのに役立ちました。上記のコマンドで解決されたローカルシステムの問題でした。
私は同じ問題を経験しました...そして、mDNSResponderを再起動することは「機能」しているように見えますが、1時間に数回再起動することは、ちょっとしたことです。
したがって、今のところ、ローカルで dnsmasq を実行して問題を「解決」しました。それを行うには:
make
またはbrew install dnsmasq
をダウンロードします)dnsmasq.conf
ファイルに入れます。resolv-file = resolv.conf user = nobody group = nobody interface = lo0 cache-size = 1024
resolv.conf
ファイルと同じディレクトリにあるdnsmasq.conf
ファイルに入れます(nb:not/etc/resolv.conf
):ネームサーバー8.8.8.8 ネームサーバー4.2.2.1 ネームサーバー4.2.2.2
dnsmasq
をSudo dnsmasq --no-daemon --log-queries -C dnsmasq.conf
で実行します。出力は次のようになります。... dnsmasq:resolv.confを読み取ります dnsmasq:ネームサーバー4.2.2.1#53を使用します dnsmasq:ネームサーバー4.2.2.2#53を使用します dnsmasq:ネームサーバー8.8.8.8#53を使用します dnsmasq:/ etc/hosts-6つのアドレスを読み取ります
127.0.0.1
が唯一のDNSサーバーであることを確認します(ネットワーク設定->詳細-> DNS-> 127.0.0.1を追加)物事は再びうまく機能し始めるはずです。
正常に動作したら、--no-daemon
および--log-queries
オプションなしでdnsmasq
を実行できるため、バックグラウンドで起動し、ターミナルウィンドウを開いたままにする必要はありません。
DNSサーバーリスト(ネットワーク設定ペイン)に10.94.62.3があり、その後ISPから2が続いていることに気付きました。他の2つを削除して、この場所のすべての名前検索を10.94.62.3まで強制しました。これで、ネットワークだけでなく外部でも名前を解決できます。
これがうまくいった理由はわかりません。
Snow Leopardでは、DNS注文検索の動作が異なるようです。ドメインを検索できない場合は、ネットワーク設定に無効なDNSサーバーがリストされていないか確認してください。標準のDHCP設定を使用している場合は、DNSサーバーが表示されていないはずです。アップグレードする前は、古いDNSサーバーがリストされていましたが、何の影響もありませんでした。アップグレードしたら、DNSを完全に失いました。
[ネットワーク設定]> [空港を選択]> [詳細設定]を開きます。 [DNS]タブを選択し、無効なDNSサーバーをすべて削除します。
dscacheutil -flushcache
このコマンドはDNSキャッシュを更新します。
10.94.62.3は信頼できるDNSサーバーですか?もしそうなら、なぜ1つしかないのですか?フェイルオーバーの目的で参照するには、少なくとも2つのDNSサーバーが必要です。あれがダウンした場合、あなたは座っているアヒルです。
Nevada-example-com.localを試しましたか?
コンソールを見たことがありますか? (アプリケーション->ユーティリティ->コンソール)mDNSResponderがDiagnostic and Usage Information-> System Diagnostic Reportsの下に表示されることがあります。
モジュールを読み込んでいる別のプログラム(Little SnitchやHands Offなど)が原因でクラッシュした場合は、そこに表示されることがあります。