Wie verhindere ich, dass sich der Name meines Computers automatisch und fälschlicherweise ändert?

19

Seit ich meinen iMac 2009 auf Mavericks aktualisiert habe, erhalte ich häufig die Meldung "Der Name Ihres Computers" Foo "wird in diesem Netzwerk bereits verwendet. Der Name wurde in "Foo (2)" geändert. ' Die Zahl am Ende wird im Laufe der Zeit kontinuierlich erhöht, da derselbe Fehler weiterhin auftritt.

Es ist trivial genug, den Computer wieder umzubenennen, aber gibt es eine Möglichkeit, dies in Zukunft zu verhindern? Ich hatte ein altes Macbook Pro (mit Mountain Lion), das das gleiche Problem hatte, aber mein Anfang 2013 auf MBP laufender Mavericks scheint nicht unter diesem Problem zu leiden.

Cleggy
quelle
Ist der Name tatsächlich eine leere Zeichenfolge? Wenn ja, was bedeutet es, wenn Sie Ihren Computernamen ändern?
0942v8653
Nein, es ist der Name meines Computers (Mist, ich sehe, dass der von mir eingegebene Text entfernt wurde. Kein Zweifel an den spitzen Klammern). Lautet mein Computername beispielsweise "Foo", heißt mein Computer "Foo (2)".
Cleggy
Ich habe die Frage bearbeitet, um zu verdeutlichen, dass keine leere Zeichenfolge angezeigt wird.
Cleggy
Dies könnte das gleiche Problem sein, das Sie haben. Versuche es auch mit scutil --get ComputerNameund hostnameim Terminal. (Sie sollten wahrscheinlich auch Ihre IP-Adresse nachverfolgen, um festzustellen, ob sie sich ändert.) Ich glaube, es liegt etwas an Ihrem Router oder DHCP, und die NetBIOS-Namen sind möglicherweise zu lang zwischengespeichert.
0942v8653
1
Immer noch keine Antwort? Dies passiert immer noch mit OS X 10.10.4 auf einem MacBook Pro 17 "von Ende 2011. Es hat möglicherweise etwas damit zu tun, gleichzeitig mit Wi-Fi und Ethernet verbunden zu sein, aber was für ein Schmerz, den OS X nicht hat Dies ist für sich selbst.
Brent Faust

Antworten:

5

Umgehung

Wie andere Benutzer bin ich von diesem Ärger geplagt, habe jedoch eine halbwegs zufriedenstellende Problemumgehung gefunden:

my_hostname='your-hostname-here'; for key in LocalHostName ComputerName HostName ; do sudo scutil --set $key $my_hostname; done

Nachdem Sie diesen Befehl ausgeführt haben, können Sie überprüfen, ob alle Stellen, an denen der Hostname gespeichert ist, mit diesem Einzeiler identisch sind:

for key in LocalHostName ComputerName HostName ; do sudo scutil --get $key; done

Wenn das Macbook ComputerNamemit einem Suffix immer wieder umbenannt wird, können Sie es möglicherweise stoppen, indem Sie es ausschalten Wake for Network Access.

  • System Preferences→Energy Saver→Wake for Wi-Fi network access → Unchecked

Benennen Sie Ihr Gerät nach dem Ausschalten mit den obigen Befehlen um, um den Vorgang abzuschließen. Sie können auch versuchen, das Zurücksetzen zu erzwingen, ComputerNameindem Sie die System Preferences→Sharing→Computer NameTextfeldeinstellung verwenden.

Wenn dies nicht geholfen hat, versuchen Sie, den mDNS-Cache zu leeren :

# El Capitan (10.11) and later
#   check if you have dscacheutil command with: which dscacheutil
sudo dscacheutil -flushcache

# Yosemite (10.10) and ealier
#   check if you have discoveryutil command with: which discoveryutil
sudo discoveryutil mdnsflushcache
sudo discoveryutil mdnsrestartquestions
sudo discoveryutil mdnsrestartregistrations
sudo discoveryutil udnsflushcache
sudo discoveryutil udnsrestartquestions

Versuchen Sie nach dem Leeren des mDNS-Caches erneut, Ihren Computer mit den obigen Befehlen umzubenennen.

Wenn dies immer noch nicht funktioniert, versuchen Sie, den mDNSResponderDienst zu beenden:

sudo killall -HUP mDNSResponder

Versuchen Sie dann erneut, den Computernamen mit den oben genannten scutilBefehlen zurückzusetzen.

Wenn Sie feststellen, dass nichts davon gut tut, gibt es einige andere gemeldete Lösungen, die Folgendes umfassen:

  • Stellen Sie sicher, dass Sie nur eine Verbindung zum lokalen Netzwerk haben
  • Schalten Sie Bonjour aus und wieder ein

    # Yosemite (10.10) (and other versions with discoveryd?)
    # Check for discoveryd with:  ps auxww | grep -i discoveryd
    sudo killall discoveryd
    sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist
    sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.discoveryd.plist
    
    # Mac OS versions without discoveryd
    # Check for mDNSResponder with:  ps auxww | grep -i mDNSResponder
    sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
    sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
    
  • Fahren Sie ALLE Netzwerkhardware herunter und setzen Sie sie zurück

Problembesprechung

Nach meiner Erfahrung System Preferences→Sharing→Computer Namedauert das Festlegen des Hostnamens auf diese Weise oder über den Standard nur einen kurzen Zeitraum. Dies ist normalerweise <24 Stunden, aber manchmal ComputerNameändert sich die Gerade sofort, sodass eine angehängte Zahl in Klammern steht (N). Ich habe beobachtet, dass diese Zahl sofort nach der Verwendung der obigen Befehle auf entweder (4)oder vor (5)kurzem eingestellt wird scutil --set.

Die Ursache für dieses Verhalten liegt in einem Daemon-Code, der unter Mac OS ausgeführt wird und versucht, (N)jedes Mal, wenn derselbe Hostname im Netzwerk gefunden wird , ein nummeriertes Suffix hinzuzufügen . In ALLEN meinen Tests wurden die von mir ausgewählten Hostnamen NIE zuvor im Netzwerk und NIE zusätzlich für Bluetooth-Geräte verwendet.

Die wahre Ursache für den "Auslöser" dieses Verhaltens ist unbekannt und nicht überprüft. Das heißt: Bei all meinen Online-Recherchen und Tests konnte ich nicht eindeutig feststellen, warum Mac OS feststellt, dass der Name bereits verwendet wird, wenn er eindeutig NICHT ist und noch nie verwendet wurde.

Meine Theorie ist, dass irgendwie mDNSauch bekannt als Bonjour( Avahifür Linux-Benutzer oder Zero-confNetworking für Windows-Benutzer) teilweise schuld sein kann. Irgendwie bleibt der vorherige Hostname des Macbooks oder des Apple-Geräts erhalten mDNS, oder es werden ARPInformationen zu Tabelle und Hostname angezeigt, die vom Macbook oder Apple-Gerät erkannt und gespeichert werden. Dies könnte eine Art Rennbedingung sein. Irgendwie wird der Eintrag als Duplikat angesehen und löst das Umbenennungsverhalten des Mac OS-Suffix aus.

Die mit Suffixen versehenen Hostnamen werden angezeigt, wenn das von Apple bereitgestellte Dienstprogramm DNS Service Discovery verwendet wirddns-sd :

Wenn Sie beispielsweise den Hostnamen verwenden my-mbp-hostname, wird dieser möglicherweise wie folgt angezeigt

dns-sd -Z _ssh._tcp
; To direct clients to browse a different domain, substitute that domain in place of '@'
lb._dns-sd._udp                                 PTR     @

; In the list of services below, the SRV records will typically reference dot-local Multicast DNS names.
; When transferring this zone file data to your unicast DNS server, you'll need to replace those dot-local
; names with the correct fully-qualified (unicast) domain name of the target host offering the service.

_ssh._tcp                                       PTR     my-mbp-hostname\032(5)._ssh._tcp
my-mbp-hostname\032(5)._ssh._tcp                           SRV     0 0 22 my-mbp-hostname.local. ; Replace with unicast FQDN of target host
my-mbp-hostname\032(5)._ssh._tcp                           TXT     ""

[...SNIP...]
[...OTHER SSH HOSTS HERE...]
[...SNIP...]

Die Theorie der wahren Ursache ist unbestätigt, da es schwierig ist, zu finden und zu beobachten, was tatsächlich passiert, ohne Zugriff auf interne Mac OS-Status- und Apple OS-Debugging-Tools auf niedriger Ebene. Die Interaktionen zwischen mdnsd, mDNSResponderund mDNSResponderHelpermit anderen Mac OS-Diensten oder sogar anderen Avahi-Dämonen im Netzwerk sind nicht gut dokumentiert oder können nicht leicht beobachtet werden. Der aktuelle Status einiger Formen der Netzwerkerkennung kann durch dns-sdund arp -aoder vielleicht angezeigt werden arp -a -n. Andere Theorien oder mögliche Orte, an denen diese Hostnameninformationen gespeichert werden können, könnten sein:

  • Bluetooth-Gerätenamen werden vom Betriebssystem irgendwo beibehalten
  • SMB-Informationen (Windows File Share), die regelmäßig vom Netzwerk zwischengespeichert werden von smbd( /System/Library/LaunchDaemons/com.apple.smbd.plist)
  • AFP-Freigabeinformationen aus dem Netzwerk zwischengespeichert (vermutlich auch von smbd?)
  • mDNS/ Avahireflector (oder eine andere Art der erneuten Übertragung von Bonjour / zero-conf-Paketen im Netzwerk durch einen Router oder ein anderes Gerät)?
    • Kann zwischengespeichert werden von mDNSResponderoder mdnsd( /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist)

Lösung (Platzhalter)

Bis zum 6. Oktober 2017 gibt es noch keine vollständige Lösung von Apple oder ein Mittel, um ein erneutes Auftreten dieses Problems zu verhindern. Ich empfehle, einen Fehlerbericht bei Apple einzureichen, in dem dieses Problem beschrieben wird. Sie können sich auch an den Apple-Kundendienst wenden .

Je mehr Leute Lärm über dieses ärgerliche Problem machen, desto schneller werden Apple Product Manager Prioritäten setzen, damit Ingenieure es beheben können.

Debugging / Future Lines of Investigation

Diese MacRumors-Forumsdiskussion enthält einige nützliche Informationen sowie eine Theorie, dass Wake for Wi-Fi Network Accessund Gerät Wake / Sleep etwas mit diesem Problem zu tun hat. Andere vorgestellte Theorien beziehen sich auf die Verwendung mehrerer Netzwerkadapter (z. B. WiFi + Thunderbolt Ethernet), Router, bei denen mehrere Access Points auf mehreren Bändern angekündigt sind, z. B. auf 802.11 b/g/n(2,4 GHz) oder 802.11 a/ac(5 GHz). Diese Kombinationen können dazu führen, dass eine "Geister" -Version des Apple-Geräts vorübergehend im Netzwerk angezeigt wird und das Umbenennungsverhalten ausgelöst wird.

Es gab keine brauchbaren Protokollzeilen in /var/log/system.logdie erschienen im Zusammenhang mit dieser Umbenennung Verhalten ausgelöst wird. Angeblich mDNSResponderkann auf höhere Protokollebenen konfiguriert werden:

  • Fehler - Fehlermeldungen
  • Warnung - Vom Client initiierte Vorgänge
  • Hinweis - Sleep-Proxy-Vorgänge
  • Info - Informationsmeldungen

Es /Library/Preferences/com.apple.mDNSResponder.plistwar nicht klar, wie diese Debug-Ebenen anders als möglicherweise durch eine nicht vorhandene Datei festgelegt werden sollten . Ich hatte keine plist-Beispielkonfiguration zum Verwenden, daher konnte ich keine zusätzlichen Protokollinformationen abrufen mDNSResponder.

Tools wie Wireshark könnten nützlich sein, um mDNSPakete, die im Netzwerk gesendet werden, zusammen mit anderen potenziell relevanten ARP-Paketinformationen unter anderem Datenverkehr anzuzeigen.

Unter Mac OS dscacheutilgibt es möglicherweise andere Tools , um diese Informationen anzuzeigen. Es ist nicht gut dokumentiert oder klar, wie der endgültige Cache dieser Informationen angezeigt wird, die vom Umbenennungscode des Hostnamens verwendet werden. Als ich dieses Dienstprogramm getestet habe, hat es keine nützliche Ausgabe erzeugt, außer wenn der Abfragemodus für den genauen Hostnamen verwendet wurde (IPs wurden aus Datenschutzgründen gelöscht):

sudo dscacheutil -cachedump -entries host
Unable to get details from the cache node
sudo dscacheutil -cachedump
Unable to get details from the cache node
dscacheutil -cachedump
Unable to get details from the cache node
dscacheutil -cachedump -entries host
Unable to get details from the cache node

dscacheutil -q host -a name my-mbp-hostname.local
name: my-mbp-hostname.local
ipv6_address: fe80:4::1a:1234:abcd:ef01
ipv6_address: 2601:280:1b00:1234:567:abcd:ef01:1234

name: my-mbp-hostname.local
ip_address: 192.168.1.123
TrinitronX
quelle
1
Keine Lösung, aber für die Details und die Geschichte gewürdigt.
Jontsai
Ich möchte nach einigen Tests ein Update mit einigen großartigen vorläufigen Ergebnissen veröffentlichen! Bisher habe ich das Problem nicht auftauchen wieder gesehen , seit ich diese Einstellung geändert: System Preferences→Energy Saver→Wake for Wi-Fi network access → Unchecked. Ich denke, ich muss das System neu starten und es eine Weile laufen lassen, um mich voll zu überzeugen ... aber wir haben vielleicht eine Lösung!
TrinitronX
26 Tage nach der Änderung der oben genannten Wake for Wi-Fi network accessEinstellung muss ich leider mitteilen, dass sich mein MacBook erneut umbenannt hat! Es scheint, dass das Verhalten definitiv mit Bonjour und AirPlay zu tun hat. 26 Tage lang habe ich mit Bonjour nicht auf viele Anwendungen zugegriffen, außer vielleicht Hostnamen- *.localDNS-Lookups von Befehlszeilendienstprogrammen. Heute habe ich Anwendungen geöffnet AirFoilundAirFoil Sattelite sofort gemerkt, dass sich mein Hostname mit Suffix geändert hat (2). Diese Anwendungen können einen Wiedergabe Testfall für den Bug bieten
TrinitronX
1

Verwenden Sie zwei Netzwerkgeräte im selben LAN? Zum Beispiel WLAN und kabelgebundenes Ethernet? Deaktivieren Sie einen von ihnen. Früher hatte ich dieses Problem und habe es auf diese Weise behoben.

sudo
quelle
1
Ich war es nicht, aber ich bin es jetzt. Geräte werden im Allgemeinen entweder über WLAN oder kabelgebundenes Ethernet verbunden. Aber heute habe ich meinen iMac so geändert, dass er eine Verbindung über WLAN und Ethernet herstellt, um die Synchronisierung von iTunes über WLAN zu ermöglichen. Diese Änderung wurde nach dem letzten Umbenennungsereignis des iMac vorgenommen. In diesem Fall wäre dies also nicht die Ursache.
Cleggy
1

Selbes Problem hier. Aber es scheint, dass der Name foo (2) von der Zeitmaschine akzeptiert wird und das Backup immer noch am selben Ort ausgeführt wird (es scheint nicht das gesamte Backup zu wiederholen, es wird fortgesetzt). Also kein Schaden kein Foul. Ich denke, dass es mit mehreren aktiven Schnittstellen zusammenhängt. Ich habe das Ethernet aufgeschaltet, um mein Backup zu beschleunigen.

Bruce0
quelle
Sie haben Recht, dass zwei Netzwerkschnittstellen die Wahrscheinlichkeit erhöhen, dass dies passiert. Es ist klar, dass dies auch dann der Fall ist, wenn eine Schnittstelle vorhanden ist und ein Computer für eine Zeit nahe der DHCP-Reservierungszeit auf dem Router in den Ruhezustand versetzt wird.
bmike
0

Es gibt keinen guten Weg, dies zu stoppen. Apple müsste den Code für den Hostnamen ersetzen, damit Benutzern (Personen und Programmen) immer der Hostname angezeigt wird, der von festgelegt wird, scutilund alle Umbenennungen / Übersetzungen werden unter der Haube ausgeführt.

Da dies zumindest seit 2012 für alle Apple-Produktlinien (Apple TV, iPhone, Mac und vermutlich sogar Apple Watch) der Fall ist, ist nicht klar, ob Apple dies als ein zu behebendes Problem ansieht.

bmike
quelle
-2

Dies hängt wahrscheinlich mit dem Benutzer zusammen, der aktiv ist, wenn Sie sich dem Netzwerk anschließen und das Gerät zum ersten Mal einrichten. Wenn Sie diese Maschinen bauen, tun Sie dies wahrscheinlich immer mit demselben Benutzer

Wenn Sie einen Benutzer erstellen, z. B. ein MacBook Pro, konfiguriert der Computer die Benennung automatisch wie folgt:

Computername: Dave's MacBook Pro

Lokaler Hostname: daves-MacBook-Pro.local

und im Terminal wird der Hostname wie folgt angezeigt: daves-mbp

Angenommen, der nächste Computer, auf dem Sie sich als "Dave" anmelden, ist ebenfalls ein MacBook Pro. Dort werden genau die gleichen Details festgelegt: Sie stellen eine Verbindung zum Netzwerk her und erhalten die Meldung über den doppelten Namen.

Wenn ich arbeite, ändern wir den Namen in Sharing, öffnen dann ein Terminal und führen den folgenden Befehl aus: sudo scutil –-set HostName new_hostname

(wobei new_hostname Ihr gewählter Name ist)

Beenden Sie das Terminal und starten Sie es neu. Der neue Hostname wird angezeigt.

Dieses Problem tritt auch bei der Migration von Benutzern auf neue Computer auf. Der Migrationsassistent / time Machine benennt den neuen Computer um

Einige normalerweise schwache Informationen zu Namen - http://support.apple.com/kb/PH13790

baguasrr
quelle
Dies geschieht mit zwei Maschinen, die vor über einem Jahr eingerichtet wurden, oder im OPs-Fall mit einer Maschine
user151019,
-2

Dies tritt auf, wenn zwei überlappende DHCP-Server ausgeführt werden. Wenn Sie mehr als einen Router verwenden (Bridge-Modus), stellen Sie sicher, dass nur einer von ihnen DHCP ohne statische IP ausführt.

Fishboy
quelle
1
Das ist hier nicht der Fall. Der einzige DHCP-Server, den ich habe, ist mein Airport Extreme-Router.
Cleggy