OSX Mountain Lion用にDNSルックアップはどのように構成されますか?


33

resolv.confをcatすると、次のメッセージが表示されます。

#
# Mac OS X Notice
#
# This file is not used by the host name and address resolution
# or the DNS query routing mechanisms used by most processes on
# this Mac OS X system.
#
# This file is automatically generated.
#

DNSエントリを追加しようとしています。ホストファイルを編集してDNSキャッシュをフラッシュしましたが、を使用すると名前が解決しませんhost servername。おそらくファイルhostを見るように設定されていないと思いましたhosts。解決する新しいエントリを取得するにはどうすればよいresolv.confですか?

回答:


17

ホストツールは、単に名前を解決するのではなく(システム名リゾルバを使用するなど)、実際にはDNSサーバー問い合わせますたとえば、udp / 53および場合によってはtcp / 53にパケットを送信する):ローカルhostsファイルを認識せず、使用しません。

オペレーティングシステムのリゾルバ(gethostbyname()などのlibc関数など)をテストする場合は、追加した名前をpingしてみて/etc/hosts、そのファイルに入力した内容を尊重することができます。

また、Mac OSXでDNSルックアップがを使用していないことが既にわかっているため/etc/resolv.conf、どのDNSサーバーを照会するかを設定する正しい方法は、ネットワーク設定GUIまたはnetworksetupコマンドラインツールです。ソースの試行順序を設定できるかどうかは正直わかりませんが、標準的な動作は/etc/hosts最初に試行してからDNSサーバーを試行することです。


1
:私はのgetaddrinfoのためのperlのラッパーたsearch.cpan.org/~pevans/Socket-GetAddrInfo-0.22
ベン・フリン

26

DNSリゾルバーは、networksetup次のコマンドを使用してOS Xに追加できます。

sudo networksetup -setdnsservers Wi-Fi 8.8.8.8 8.8.4.4

必要に応じてネットワーク接続の名前を挿入します。これらのリゾルバは自動的に生成されるため、resolv.confに表示されますが、resolv.confを直接編集してもこれらのリゾルバは使用されません。リゾルバはどこかにplistに保存されていると思います。検索して報告します。

追加して編集:DNSサーバーを格納するXML plistファイルはのように見えます/Library/Preferences/SystemConfiguration/preferences.plist

/ private / etc / hostsのホストファイルは、特定の名前の解決を強制するように機能する必要があります(/ etcは/ private / etcへのシンボリックリンクです)。構文と、正しいファイルを編集していることを確認できますか?


したがって、このコマンドを使用してhostsファイルを追加できますか?
ベン・フリン

することはできませんし、する必要はありません
Luke404

いいえ、hostsファイルに名前を追加する場合は、それらを直接追加するだけです。ホストファイルは、名前を解決するときに最初にチェックされ、次にローカル解決キャッシュ、次に構成済みのDNSサーバーがチェックされます。ただし、「host」コマンドを使用してテストすると、ローカルホストファイルはチェックされません。テストする簡単な方法の1つは、pingなどのネットワークユーティリティを使用することです。
フィーバス

1
時にはインタフェースGET間抜けな名前、あなたが行うことができます必要な正確な名前を取得するnetworksetup -listallnetworkservices ことにスペースが含まれている場合、またを、あなたはすなわち、単一引用符に名前全体を必要とする:sudo networksetup -setdnsservers 'white space' 8.8.8.8 8.8.4.4
マルチン

2
53以外のポートを使用するようにリゾルバーを構成することは可能ですか?
ルーンFS
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.