
Mac OS XのコマンドラインからDNSを変更する方法
Macの上級ユーザーにとって、Mac OS XのDNSサーバーはシステム環境設定のネットワークコントロールパネルを使わずにコマンドラインから設定できることは便利かもしれません。GUIのネットワークコントロールパネルは、ほとんどのMacユーザーにとって間違いなく最も簡単な方法ですが、コマンドライン方式は多くのユースケースでメリットがあり、特にトラブルシューティング、一時的なDNS変更、SSHによるリモート管理などに便利です。
Mac OS XのコマンドラインからDNS設定を変更するには、いつも便利な「networksetup」コマンドを使用します。networksetupには高度で複雑な使い方もありますが、DNSの設定自体は実は非常に簡単です。
Mac OS Xのコマンドラインからnetworksetupを使ってDNSサーバーを設定する方法
networksetup コマンドは、Mac システムソフトウェアの比較的新しいバージョンすべてで利用可能です。-setdnsservers フラグを使用し、ネットワークサービスを指定して DNS IP を指定します。以下のようになります。
networksetup -setdnsservers (Network Service) (DNS IP)
たとえば、Wi-Fi 対応の Mac を Google DNS 8.8.8.8 に設定する場合の構文は次のようになります。
networksetup -setdnsservers Wi-Fi 8.8.8.8
必要に応じて複数のDNSサーバーを設定できます。これにより、最初のサーバーまたは2番目のサーバーにアクセスできない場合にフォールバックが有効になります。例えば、最初の2つのDNSサーバーにOpenDNSを設定し、3番目のフォールバックとしてGoogle DNSを設定します。
networksetup -setdnsservers Wi-Fi 208.67.222.222 208.67.220.220 8.8.8.8
これはDNSサーバーの一例であり、必ずしも普遍的な推奨ではありません。DNSサーバーの変更を検討している場合は、NameBenchなどのアプリを使って最速のDNSサーバーを見つけることをお勧めします。これらのアプリはベンチマークテストを実行し、特定の場所に最適なDNSサーバーを特定します。
networksetupですべてのDNSサーバーをクリアする方法
これはDNSキャッシュのフラッシュとは異なり、既存のカスタムDNSサーバー設定を削除するだけです。ルーター、モデム、または同様の状況でDHCPによるDNSサーバー設定にフォールバックしたい場合に役立ちます。
networksetup -setdnsservers Wi-Fi
DNS の設定と同様に、DNS を削除する場合も、実行しようとしている操作によっては、調整後に DNS キャッシュをフラッシュする必要がある場合があります。
networksetupで現在のDNS設定を確認する
また、networksetup で -getdnsservers フラグを使用して既存の DNS 設定を確認することもできます。これにより、現在の DNS 設定があればそれが報告されます。
networksetup -getdnsservers Wi-Fi
8.8.8.8
DNS を変更およびカスタマイズする目的は、検索の高速化、より信頼性の高いサーバーの検索、伝播中に詳細な検索を実行するために代替プロバイダーに変更することなど、多岐にわたります。