Jak mogę zmienić mój serwer DNS z terminala w systemie Mac OS X? [Potrzebuję tego, ponieważ mój DNS nie działa poprawnie z moją VPN. Czasami używa DNS do mojego głównego połączenia, a czasem DNS określony dla VPN (co powinno).]
Jak mogę zmienić mój serwer DNS z terminala w systemie Mac OS X? [Potrzebuję tego, ponieważ mój DNS nie działa poprawnie z moją VPN. Czasami używa DNS do mojego głównego połączenia, a czasem DNS określony dla VPN (co powinno).]
Odpowiedzi:
Możesz używać scutil
interaktywnie z terminala. Uruchom sudo scutil
i uruchom następujące polecenia, zamieniając serwery DNS w stosownych przypadkach:
> otwórz > d.init > d.add Adresy serwerów * 8.8.8.8 9.9.9.9 > ustaw stan: / Sieć / Usługa / PRIMARY_SERVICE_ID / DNS > wyjdź
Zamiast korzystać z serwerów DNS 8.8.8.8
i 9.9.9.9
korzystać z nich.
Jedynym problemem jest to, że nie jest to trwałe podczas ponownego uruchamiania . Jeśli chcesz stałych zmian, będziesz chciał ncutil . Powodem, dla którego edycja /etc/resolv.conf
nie jest wystarczająca w nowszych wersjach OS X, jest to, że configd używa teraz bazy danych do przechowywania informacji o bieżących ustawieniach, które czytają inne aplikacje. Niektóre aplikacje będą nadal czytać /etc/resolv.conf
(na przykład host), chociaż nie dotyczy to wszystkich aplikacji.
scutil --dns
do potwierdzenia.
set State:/Network/Service/PRIMARY_SERVICE_ID/DNS
wierszu, czy mogę tego używać tak, jak jest? Czy scutil --dns
po zmianie powinny pojawiać się nowe serwery DNS ?
scutil
a następnie > list
znajdź klucz do zastąpienia PRIMARY_SERVICE_ID.
Możesz użyć networksetup
:
sudo networksetup -setdnsservers <networkservice> DNS1, DNS2, DNS3
np. (połączenie z lotniskiem za pomocą serwerów DNS Google)
sudo networksetup -setdnsservers AirPort 8.8.8.8 8.8.4.4
Możesz znaleźć nazwę usługi sieciowej, uruchamiając networksetup -listallnetworkservices
. Prawdopodobnie będzie to „Wi-Fi”.
Jest to tak samo, jakbyś edytował pliki w okienku preferencji sieci w Preferencjach systemowych, więc jest trwały po ponownym uruchomieniu.
Być może wystąpił problem z systemem DNS w systemie Snow Leopard, który występuje, gdy zapytania o serwery DNS zmieniają się (patrz pytanie 84144 ))
sudo networksetup -setdnsservers <networkservice> empty
Nie mam wystarczającej liczby punktów, aby odpowiedzieć na post Chealiona, ale aby go dodać, zacznę od listy interfejsów
networksetup -listallnetworkservices
Gdy masz interfejs, który chcesz zmienić, możesz wykonać poniższe czynności (korzystam z Wi-Fi, ale możesz wykonać dowolny inny interfejs)
sudo networksetup -setdnsservers Wi-Fi empty
sudo networksetup -setdnsservers Wi-Fi 8.8.8.8 8.8.4.4
sudo killall -HUP mDNSResponder
Pierwszy wiersz powyższego opróżni ustawienia DNS, a następnie podąży za nim z serwerami DNS, których chcemy użyć, i dokładnie wyczyści pamięć podręczną DNS
Aby zweryfikować zmianę DNS, możesz to zrobić przed i po lub po nim
scutil --dns | grep 'nameserver\[[0-9]*\]'
resolv.conf nie działa już w OSX. U góry tego pliku znajduje się powiadomienie w następujący sposób:
#
# macOS Notice
#
# This file is not consulted for DNS hostname resolution, address
# resolution, or the DNS query routing mechanism used by most
# processes on this system.
#
# To view the DNS configuration used by this system, use:
# scutil --dns
#
# SEE ALSO
# dns-sd(1), scutil(8)
#
# This file is automatically generated.
#
Ponadto networksetup -listallnetworkservices
nie zawiera wszystkich interfejsów VPN.
Oto jeden ze sposobów użycia scutil do kierowania na właściwy interfejs: 1. Utwórz plik za commands.txt
pomocą poleceń dla interaktywnego narzędzia scutil. np. zawartość bezpiecznego interfejsu Pulse w moim przypadku:
get State:/Network/Service/net.pulsesecure.pulse.nc.main/DNS
d.add ServerAddresses * 8.8.8.8 9.9.9.9
set State:/Network/Service/net.pulsesecure.pulse.nc.main/DNS
set
)sudo scutil < commands.txt
Powinieneś być w stanie to zrobić, edytując /etc/resolv.conf (pamiętaj, że resolv.conf jest resetowany po ponownym uruchomieniu), mam nadzieję, że to pomoże - http://developer.apple.com/mac/library/documentation/Darwin/Reference/ ManPages / man5 / resolver.5.html