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.
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 ComputerName
mit 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 Name
Textfeldeinstellung 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 mDNSResponder
Dienst zu beenden:
sudo killall -HUP mDNSResponder
Versuchen Sie dann erneut, Ihren Computernamen mit den obigen scutil
Befehlen zurückzusetzen.
Wenn Sie feststellen, dass nichts davon etwas bringt, gibt es einige andere gemeldete Lösungen , darunter:
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
Nach meiner Erfahrung dauert das Festlegen des Hostnamens auf diese Weise oder über den Standard System Preferences→Sharing→Computer Name
nur 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 mDNS
auch bekannt als Bonjour
( Avahi
für Linux-Benutzer oder Zero-conf
Networking 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 ARP
Tabellen- 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 mDNSResponderHelper
mit 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-sd
und arp -a
oder vielleicht angezeigt werden arp -a -n
. Andere Theorien oder potenzielle Orte, an denen diese Hostnamen-Informationen gespeichert werden können, könnten sein:
smbd
( /System/Library/LaunchDaemons/com.apple.smbd.plist
)smbd
?)mDNS
/ Avahi
Reflector (oder eine andere Art der erneuten Übertragung von Bonjour / Zero-conf-Paketen im Netzwerk durch einen Router oder ein anderes Gerät)?
mDNSResponder
oder mdnsd
( /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
) zwischengespeichert werdenBis 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.
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.log
Zusammenhang mit diesem ausgelösten Umbenennungsverhalten angezeigt. Kann angeblich mDNSResponder
auf höhere Protokollebenen konfiguriert werden:
Wie diese Debug-Ebenen anders als vielleicht durch eine nicht vorhandene Datei eingestellt werden können, /Library/Preferences/com.apple.mDNSResponder.plist
war 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 mDNS
Pakete, 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. dscacheutil
vorhanden 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
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!Wake for Wi-Fi network access
Einstellung 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 AirFoil
undAirFoil 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 bereitstellenVerwenden 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.
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.
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, scutil
und 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 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.
0942v8653
Klug
Klug
0942v8653
scutil --get ComputerName
undhostname
im 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.Klug
0942v8653
Klug
Klug
0942v8653
Klug
Brent Faust
Andrej Gordejew
Dan J