Как я могу изменить свой сервер DNS от Терминала на Mac OS X? [Мне нужно это, потому что мой DNS не работает правильно с моей VPN. Иногда это использует DNS для моего основного соединения, и иногда это использует DNS, указанный для VPN (который это должно).]
Можно использовать scutil
в интерактивном режиме от терминала. Выполненный sudo scutil
и выполненный эти команды, загружая Ваши серверы DNS в соответствующих случаях:
> open > d.init > d.add ServerAddresses * 8.8.8.8 9.9.9.9 > set State:/Network/Service/PRIMARY_SERVICE_ID/DNS > quit
Вместо использования 8.8.8.8
и 9.9.9.9
используйте свои серверы DNS.
Единственная проблема, это не является персистентным через перезагрузки. Если Вы захотите постоянные изменения, то Вы захотите ncutil. Причина, редактирующая /etc/resolv.conf
не достаточно в более новых версиях OS X, то, потому что configd теперь использует базу данных, чтобы хранить информацию текущих настроек, который другое чтение приложений. Определенные приложения будут все еще читать /etc/resolv.conf
(разместите, например), хотя дело не в этом для всех приложений.
Можно использовать networksetup
:
sudo networksetup -setdnsservers <networkservice> DNS1, DNS2, DNS3
например, (наличие Трансфера в аэропорт используют DNS-серверы Google),
sudo networksetup -setdnsservers AirPort 8.8.8.8 8.8.4.4
Можно узнать название сетевой службы путем выполнения networksetup -listallnetworkservices
. Это будет 'Wi-Fi', вероятно.
Это совпадает с, если необходимо было отредактировать записи в Сетевой Предпочтительной Области в Установках системы, таким образом, это является персистентным через перезагрузки.
Можно сталкиваться с проблемой DNS на Snow Leopard, который происходит, когда порядок, серверы DNS запрашиваются изменения (см. вопрос 84144)),
Необходимо смочь сделать это путем редактирования/etc/resolv.conf (помните, что resolv.conf сбрасывается после перезагрузки), надежда это помогает - http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man5/resolver.5.html