web-dev-qa-db-ja.com

OS Xで特定のDNSサーバーを強制的に使用するにはどこにできますか?

OS X Leopardでは、scutilは私に

$ scutil --dns
DNS configuration

resolver #1
  nameserver[0] : 192.168.1.1
  nameserver[1] : 192.168.2.1
  order   : 200000

resolver #2
  domain : local
  options : mdns
  timeout : 2
  order   : 300000

...

では、最初の「リゾルバー#1」を削除して、選択したDNSサーバーに置き換えるにはどうすればよいですか。


コンテキスト:VPNクライアントは、接続時にこの偽のDNSエントリを設定し、作業中のDNS設定を置き換えます。私はそれがそうするのを止める方法を理解することができませんでした( ここを参照 )、それで私は接続した後、この不要な効果を事後的に削除しようとしています。これを行うためのコマンドラインスクリプトは完璧です。

指示に従ってSudo scutilを試しました ここ 、しかし愛はありません--scutil --dnsは設定が変更されていないことを報告し、DNS解決はまだ機能しません。 /etc/resolv.confを変更しても、OSXには影響しません。

6
user124114

コマンドラインで一時的にオーバーライドするには、次の操作を実行できます。

Sudo networksetup -setdnsservers Wi-Fi <dnsserver1ip> <dnsserver2ip>

次のコマンドで設定をリセットします。

Sudo networksetup -setdnsservers Wi-Fi empty

Wi-Fi以外のインターフェースに接続している場合は、次の方法で有効な名前を確認できます。

Sudo networksetup -listallnetworkservices
1
Mikael Lepistö

私が知っているほとんどのVPN接続は、DNSサーバーをVPNクライアントにプッシュできます。私の提案は、VPNプロバイダーに接続用のDNSサーバーをプッシュしないように依頼することです。これは、VPNセッションに悪影響を与える可能性があることに注意してください。

1
Valentin

私の経験では、ネットワーク設定で特定のDNSサーバーを指定すると、DHCPを使用している場合でも、MacOSはDHCPを介して取得したサーバーよりもそのサーバーを優先して使用します。したがって、常に192.168.1.1を使用する場合は、それを明示的に入力してください。

[システム設定]-> [ネットワーク]-> [イーサネット](左側のペイン)で、目的のDNSサーバーのIPアドレスを入力できる[DNSサーバー:]テキストボックスのあるウィンドウが表示されます。 [適用]をクリックして変更を適用すると、完了です。この変更を再度行う必要はありません。 (VPN接続がイーサネットではなくWiFiである場合は、上記のイーサネットではなくWiFiをクリックする必要があります。)

1
Kyle Jones

別のアプローチを使用することをお勧めします。

Mac HOSTS FILEを使用して問題を解決できます(Hostsファイルは、人間にわかりやすいドメイン名を数値のIPアドレスにマップするために使用されます.... google itで詳細を確認できます)。

VPNを使用している場合でも、OSがファイルで指定したIPを使用するように、ケースに必要なDNSレコードをホストファイルに追加するだけです。

ファイルを開いて編集する方法は次のとおりです。

Sudo nano /private/etc/hosts

DNSキャッシュは、変更のたびにフラッシュする必要があります。

dscacheutil -flushcache
0
user72708