Wie kann man MacOS dazu zwingen, die Datei /etc/resolv.conf neu zu generieren?

Apple gibt eindeutig an, dass die /etc/resolv.confDatei von Mac OS verwaltet wird, sodass sie neu generiert wird. Das Problem ist, dass dies anscheinend nicht passiert, wenn ich dem OpenVPN beitrete, und daher Tools wie nslookupdas VPN nicht sehen können.

#
# 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.
#
domain local
nameserver 192.168.1.1

Ich muss wissen, welchen Befehl ich ausführen kann, um MacOS (Sierra) zu zwingen, die Datei neu zu generieren.

Wie Sie sehen können, enthält meine Datei nicht die richtige Liste von DNS-Servern. Der gibt beispielsweise scutil --dnseine lange Liste von DNS-Servern zurück, darunter auch die OpenVPN-DNS-Server.

Antworten (2)

Ich habe heute eine Lösung gefunden. Tatsächlich ist die Datei nicht /etc/resolv.confin Mac OS. Es ist/var/run/resolv.conf

Also mach das:

sudo rm /etc/resolv.conf
sudo ln -s /var/run/resolv.conf /etc/resolv.conf

Ich schätze, diese Datei wird erstellt/aktualisiert, wenn Sie die Netzwerkeinstellungen in den „Systemeinstellungen“ ändern. Sie müssen zu 'Systemeinstellungen...' -> Netzwerk -> (wählen Sie das aktive NIC-Gerät)

Wählen Sie im Netzwerkdialog: „Erweitert“. Sie können Änderungen für TCP/IP, DNS, WINS, 802.1X, Proxys, Hardware in den entsprechenden Registerkarten des Dialogs vornehmen. Schließen Sie diesen Dialog mit Ok. Jetzt müssen Sie im Dialogfeld „Netzwerkeinstellungen“ auf „Übernehmen“ klicken, um die Änderung dauerhaft zu machen. (Für mich war das der knifflige Teil)

Bestätigen Sie auch den Speicherort von resolv.conf:

➜  ~ ls -al /etc/resolv.conf 
lrwxr-xr-x  1 root  wheel  22 May  1  2017 /etc/resolv.conf -> ../var/run/resolv.conf

➜  ~ ls -al /var/run/resolv.conf
-rw-r--r--  1 root  daemon  303 Nov 27 09:27 /var/run/resolv.conf

➜  ~ cat /var/run/resolv.conf
#
# 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.
#
search example.com
nameserver 8.8.4.4
nameserver 8.8.8.8

BEARBEITEN: Beachten Sie, dass „/etc“ ein symbolischer Link zu „private/etc“ ist.