Wie verhindere ich, dass sich mein Computername automatisch und fälschlicherweise ändert?

Seit ich meinen 2009er iMac auf Mavericks aktualisiert habe, erhalte ich häufig die Meldung „Der Name Ihres Computers „Foo“ wird bereits in diesem Netzwerk verwendet. Der Name wurde in "Foo (2)" geändert.'. Die Zahl am Ende wird im Laufe der Zeit kontinuierlich erhöht, da derselbe Fehler immer wieder 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 MBP von Anfang 2013 mit Mavericks scheint nicht unter diesem Problem zu leiden.

Ist der Name, den es sagt, tatsächlich eine leere Zeichenfolge? Wenn ja, was sagt es, wenn Sie Ihren Computernamen ändern?
Nein, es ist der Name meines Computers (Mist, ich sehe, dass der von mir eingegebene Text entfernt wurde. Zweifellos wegen der spitzen Klammern). Wenn mein Computer beispielsweise „Foo“ heißt, wird mein Computer „Foo (2)“ genannt.
Ich habe die Frage bearbeitet, um zu verdeutlichen, dass keine leere Zeichenfolge angezeigt wird.
Dies könnte das gleiche Problem sein, das Sie haben. Versuchen Sie es auch mit Ausführen scutil --get ComputerNameund hostnameim Terminal. (Sie sollten wahrscheinlich auch Ihre IP-Adresse im Auge behalten, um zu sehen, ob sie sich ändert.) Ich denke, es liegt an Ihrem Router oder DHCP, und NetBIOS-Namen werden möglicherweise zu lange zwischengespeichert.
Danke für die Vorschläge, ich werde sie mir ansehen. Wenn mein Router schuld ist (Apple Airport Extreme), warum passiert es dann nicht auch mit meinem Macbook Pro?
Ich denke, es könnte nur die Kombination aus einem älteren iMac mit Mavericks und einem Problem mit dem Router sein. Ich hatte ein paar Probleme mit NetBIOS auf meinem AirPort Extreme und anderen OS X-Versionen (und Linux), also scheint das vernünftig zu sein.
Ja, könnte sein. Ich versuche den scutil --set Trick. Drücke die Daumen, dass es funktioniert. Daumen drücken, das hilft auch dabei, dass die iTunes-WLAN-Synchronisierung so unzuverlässig ist, aber ich werde ein Problem nach dem anderen lösen. Danke für Ihre Hilfe. :-)
scutil --set hat nicht funktioniert. Mir ist heute das gleiche Problem passiert. scutil --get ComputerName zeigt an, dass sich der Name in „foo (2)“ geändert hat, während scutil --get LocalHostName und scutil --get HostName beide „foo“ anzeigen. Ich werde versuchen, eine statische IP-Adresse zu verwenden, anstatt eine von DHCP zugewiesene.
Mit Airport Utility können Sie eine bestimmte MAC-Adresse (z. B. Wi-Fi-Adresse) für eine DHCP-Reservierung festlegen, was einfacher (und weniger fehleranfällig) wäre als die Einstellung auf Ihrem iMac.
Ja ich weiß. Ich habe das heute gemacht und werde sehen, ob das einen Unterschied macht.
Immer noch keine Antwort? Dies passiert immer noch mit OS X 10.10.4 auf einem MacBook Pro 17 "Ende 2011". Es kann etwas damit zu tun haben, dass es gleichzeitig mit Wi-Fi und Ethernet verbunden ist, aber was für ein Schmerz, dass OS X nicht herauskommt das kommt von allein.
Es ist fast 2019 und es gibt immer noch keine Antwort...
Ich könnte einfach nicht glücklicher sein zu berichten, dass dies gerade auf meinem 2017er iMac mit macOS 10.14.6 passiert ist. 🙄

Antworten (6)

Problemumgehung

Wie andere Benutzer werde ich von diesem Ärgernis geplagt, habe aber 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 mit diesem Einzeiler überprüfen, ob alle Orte, an denen sie Hostnamen speichern, identisch sind:

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

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

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

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

Wenn dies nicht geholfen hat, versuchen Sie, Ihren 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

Nachdem Sie den mDNS-Cache geleert haben, versuchen Sie erneut, Ihren Computer mit den obigen Befehlen umzubenennen.

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

sudo killall -HUP mDNSResponder

Versuchen Sie dann erneut, Ihren Computernamen mit den obigen scutilBefehlen zurückzusetzen.

Wenn Sie feststellen, dass nichts davon etwas bringt, gibt es einige andere gemeldete Lösungen , darunter:

  • 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 die gesamte Netzwerkhardware herunter und setzen Sie sie zurück

Problembesprechung

Nach meiner Erfahrung dauert das Festlegen des Hostnamens auf diese Weise oder über den Standard System Preferences→Sharing→Computer Namenur kurze Zeit. Dies ist normalerweise < 24 Stunden, aber manchmal ComputerNameändert sich sogar sofort, um eine angehängte Zahl in Klammern zu haben (N). Ich habe beobachtet, dass diese Nummer nach Verwendung der obigen Befehle sofort auf entweder (4)oder eingestellt wurde.(5)scutil --set

(N)Die Ursache für dieses Verhalten liegt in einem in Mac OS ausgeführten Daemon-Code, der versucht, jedes Mal, wenn derselbe Hostname im Netzwerk gefunden wird , ein nummeriertes Suffix hinzuzufügen . Bei ALLEN meiner Tests wurden die von mir gewählten Hostnamen NIE zuvor im Netzwerk verwendet und wurden außerdem NIE für Bluetooth-Geräte verwendet.

Die wahre Ursache des „Auslösers“ dieses Verhaltens ist unbekannt und unbestätigt. Das heißt: Bei all meinen Online-Recherchen und Tests konnte ich nicht endgültig feststellen, warum Mac OS entscheidet, dass der Name bereits verwendet wird, wenn dies eindeutig NICHT der Fall ist und nie war.

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 wird der vorherige Hostname des Macbooks oder Apple-Geräts irgendwo in gespeichert mDNS, oder vielleicht irgendeine Form von ARPTabellen- und Hostnameninformationen, die vom Macbook oder Apple-Gerät entdeckt und gespeichert werden. Dies könnte eine Art Race Condition sein. Irgendwie wird der Eintrag als doppelt angesehen und löst das Umbenennungsverhalten von Mac OS-Suffixen aus.

Die Hostnamen mit dem Nummernsuffix sind sichtbar, wenn Sie das von Apple bereitgestellte DNS Service Discovery- Dienstprogramm verwenden dns-sd:

Wenn Sie beispielsweise hostname verwenden my-mbp-hostname, wird er möglicherweise wie die folgenden Einträge 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, ohne Zugriff auf den internen Mac OS-Status und Low-Level-Debugging-Tools von Apple OS zu finden und zu beobachten, was tatsächlich passiert. Die Interaktionen zwischen mdnsd, mDNSResponder, und mDNSResponderHelpermit anderen Mac OS-Diensten oder sogar anderen Avahi-Daemons im Netzwerk sind nicht gut dokumentiert oder leicht zu beobachten. Der aktuelle Status einiger Formen der Netzwerkerkennung kann über dns-sdund arp -aoder vielleicht angezeigt werden arp -a -n. Andere Theorien oder potenzielle Orte, an denen diese Hostnamen-Informationen gespeichert werden können, könnten sein:

  • Bluetooth-Gerätenamen wurden irgendwo vom Betriebssystem 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 (auch vermutlich 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)?
    • Könnte von mDNSResponderoder mdnsd( /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist) zwischengespeichert werden

Lösung (Platzhalter)

Bis zum 6. Oktober 2017 gibt es von Apple immer noch keine vollständige Lösung oder Abhilfe, um zu verhindern, dass dieses Problem erneut auftritt. 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 wegen dieses lästigen Problems Lärm machen, desto schneller werden die Apple-Produktmanager Prioritäten setzen, damit die Ingenieure es beheben können.

Debugging / Zukünftige Untersuchungslinien

Diese MacRumors-Forumsdiskussion enthält einige nützliche Informationen und fügt eine Theorie hinzu, dass das Aufwachen Wake for Wi-Fi Network Access/ Schlafen von Geräten etwas mit diesem Problem zu tun hat. Andere vorgestellte Theorien haben mit der Verwendung mehrerer Netzwerkadapter zu tun (z. B.: WiFi + Thunderbolt Ethernet), Router, die mehrere Access Points haben, die auf mehreren Bändern wie 802.11 b/g/n(2,4 GHz) oder 802.11 a/ac(5 GHz) angekündigt werden. Diese Kombinationen können dazu führen, dass vorübergehend eine "Geister"-Version des Apple-Geräts im Netzwerk erscheint und das Umbenennungsverhalten auslöst.

Es wurden keine nützlichen Protokollzeilen im /var/log/system.logZusammenhang mit diesem ausgelösten Umbenennungsverhalten angezeigt. Kann angeblich mDNSResponderauf höhere Protokollebenen konfiguriert werden:

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

Wie diese Debug-Ebenen anders als vielleicht durch eine nicht vorhandene Datei eingestellt werden können, /Library/Preferences/com.apple.mDNSResponder.plistwar nicht klar. Ich hatte keine Plist-Beispielkonfiguration, die ich verwenden konnte, daher konnte ich keine zusätzlichen Protokollierungsinformationen aus mDNSResponder.

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

Unter Mac OS können andere Tools wie z. B. dscacheutilvorhanden sein, 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 bereinigt):

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
Keine Lösung, aber für die Details und die Geschichte positiv bewertet.
Ich möchte nach einigen Tests ein Update mit einigen großartigen vorläufigen Ergebnissen geben! Bisher ist das Problem nicht mehr aufgetreten, seit ich diese Einstellung geändert habe: System Preferences→Energy Saver→Wake for Wi-Fi network access → Unchecked. Ich glaube, ich muss das System noch einmal neu starten und eine Weile laufen lassen, um mich vollständig zu überzeugen ... aber vielleicht haben wir eine Lösung!
26 Tage nach der Änderung der oben genannten Wake for Wi-Fi network accessEinstellung muss ich leider mitteilen, dass mein MacBook erneut den Namen geändert hat! Es scheint, dass das Verhalten definitiv irgendwie mit Bonjour und AirPlay zusammenhängt. 26 Tage lang habe ich nicht auf viele Anwendungen mit Bonjour zugegriffen, außer vielleicht auf Hostnamen *.local-DNS-Lookups von Befehlszeilendienstprogrammen. Heute habe ich AirFoilundAirFoil Sattelite Anwendungen geöffnet und sofort bemerkt, dass sich mein Hostname mit dem Suffix geändert hat (2). Diese Anwendungen können einen Reproduktionstestfall für den Fehler bereitstellen

Verwenden Sie zwei Netzwerkgeräte, die sich im selben LAN befinden? Zum Beispiel WLAN und kabelgebundenes Ethernet? Versuchen Sie, einen davon zu deaktivieren. Ich hatte das Problem mal und habe es so gelöst.

Ich war es nicht, aber ich bin es jetzt. Geräte verbinden sich im Allgemeinen entweder über WLAN oder kabelgebundenes Ethernet. Aber heute habe ich meinen iMac so geändert, dass er sich über WLAN und Ethernet verbindet, um zu versuchen, die iTunes-WLAN-Synchronisierung zum Laufen zu bringen. Diese Änderung wurde nach dem letzten iMac-Umbenennungsvorfall vorgenommen, wäre also in diesem Fall nicht die Ursache.
Wir schreiben das Jahr 2020 und ich habe immer noch dieses Problem, meine Maschine ändert sich ständig zu "Name-45" oder so. Ich hatte zusätzlich zum WLAN einen USB-zu-Ethernet-Adapter angeschlossen. Das Deaktivieren eines von ihnen löste das Problem. Sehr dumm.

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

Sie haben Recht, dass dies mit zwei Netzwerkschnittstellen wahrscheinlicher zu sein scheint. Es ist klar, dass es auch passiert, wenn es eine Schnittstelle gibt und eine Maschine für eine Zeit in der Nähe der DHCP-Reservierungszeit auf dem Router schläft.

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 von festgelegte Hostname angezeigt wird, scutilund die gesamte Umbenennung/Übersetzung im Hintergrund durchführen.

Da dies mindestens seit 2012 für alle Apple-Produktlinien (Apple TV, iPhone, Mac und vermutlich sogar die Apple Watch) gilt, ist nicht klar, ob Apple dies als ein Problem ansieht, das behoben werden muss, oder um uns allen zu helfen heraus, indem Sie einen KB-Artikel schreiben, um allgemeine DNS-/mdns-/DHCP-Setups zu erklären, die dies verursachen.

Dies hat wahrscheinlich mit dem Benutzer zu tun, der aktiv ist, wenn Sie dem Netzwerk beitreten und die Maschine zum ersten Mal einrichten. Wenn Sie diese Maschinen bauen, tun Sie dies wahrscheinlich immer als derselbe Benutzer

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

Computername: daves MacBook Pro

lokaler Hostname: daves-MacBook-Pro.local

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

Angenommen, der nächste Computer, an dem Sie sich als „dave“ anmelden, ist ebenfalls ein MacBook Pro, stellt er genau die gleichen Details ein – Sie stellen eine Verbindung zum Netzwerk her und erhalten die Meldung über den doppelten Namen.

Wo 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 dann das Terminal und starten Sie es neu, und Sie sehen den neuen Hostnamen.

Sie erhalten dieses Problem auch, wenn Sie Benutzer auf neue Computer migrieren – der Migrationsassistent/Time Machine benennt den neuen Computer um

einige typisch schwache Informationen zu Namen - http://support.apple.com/kb/PH13790

Dies geschieht mit zwei Maschinen, die vor über einem Jahr eingerichtet wurden, oder im OP-Fall mit einer Maschine

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

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