Geçici çözüm
Diğer kullanıcılar gibi, bu sıkıntıdan rahatsızım ama yarı tatmin edici bir geçici çözüm buldum:
my_hostname='your-hostname-here'; for key in LocalHostName ComputerName HostName ; do sudo scutil --set $key $my_hostname; done
Bu komutu çalıştırdıktan sonra, ana bilgisayar adını depoladıkları tüm yerlerin bu tek astarla aynı olup olmadığını kontrol edebilirsiniz:
for key in LocalHostName ComputerName HostName ; do sudo scutil --get $key; done
Macbook hemen yeniden adlandırma devam ederse ComputerName
bir sonek ile geri, sen mümkün olabilir o kapatarak durdur Wake for Network Access
.
System Preferences→Energy Saver→Wake for Wi-Fi network access → Unchecked
Bir kez kapatıldığında, bitirmek için yukarıdaki komutları kullanarak makinenizi yeniden adlandırın. Metin alanı tercihini ComputerName
kullanarak da zorlamayı deneyebilirsiniz System Preferences→Sharing→Computer Name
.
Bu yardımcı olmadıysa , mDNS önbelleğinizi temizlemeyi deneyin :
# 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
MDNS önbelleğini temizledikten sonra, yukarıdaki komutları kullanarak makinenizi yeniden adlandırmayı tekrar deneyin.
Bu yine de işe yaramadıysa, mDNSResponder
hizmeti öldürmeyi deneyin :
sudo killall -HUP mDNSResponder
Ardından, yukarıdaki scutil
komutları kullanarak bilgisayar adınızı sıfırlamak için tekrar deneyin .
Bunların hiçbirinin işe yaramadığını fark ederseniz, aşağıdakileri içeren rapor edilmiş başka çözümler de vardır:
- Yerel ağla yalnızca bir bağlantınız olduğundan emin olun
Bonjour'u kapatıp tekrar açın
# 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
TÜM ağ donanımlarını kapatın ve sıfırlayın
Sorun Tartışması
Deneyimlerime göre, ana makine adını bu şekilde veya standart yoluyla ayarlamak System Preferences→Sharing→Computer Name
sadece kısa bir süre sürer. Bu genellikle <24 saattir, ancak bazen ComputerName
parantez içinde son eklenmiş bir sayı olması için hemen değişir (N)
. Yukarıdaki komutları kullandıktan sonra bu sayının hemen (4)
veya (5)
son zamanlarda olarak ayarlandığını gözlemledim scutil --set
.
Bu davranışın nedeni, Mac'te çalışan (N)
ve aynı ana bilgisayar adının ağda her bulunuşunda numaralı bir sonek eklemeye çalışan bazı arka plan kodlarından kaynaklanmaktadır . In ALL benim test, benim seçimim hostnames gelmiş ASLA ağda önce kullanılmış ve ek vardı ASLA herhangi bir Bluetooth cihazları için kullanılan yanı olmuştur.
Bu davranışın "tetikleyicisi" nin gerçek nedeni bilinmemektedir ve doğrulanmamıştır. Yani, tüm araştırmalarım ve testlerim boyunca, Mac OS'un açıkça AÇIK OLMADI ve hiç olmadığı zaman adın neden kullanıldığına karar verdiğini kesin olarak belirleyemedim.
Benim teorim, bir şekilde ( Linux kullanıcıları veya Windows kullanıcıları için Ağ Oluşturma ) mDNS
olarak da bilinir . Her nasılsa, Macbook veya Apple cihazının önceki ana bilgisayar adı, Macbook veya Apple cihazı tarafından keşfedilen ve depolanan bir yerde veya belki de tablo + ana bilgisayar adı bilgilerinin bir yerinde kalıyor. Bu bir çeşit yarış durumu olabilir. Giriş her nasılsa yineleniyor ve Mac OS soneki yeniden adlandırma davranışını tetikliyor.Bonjour
Avahi
Zero-conf
mDNS
ARP
Apple tarafından sağlanan DNS Hizmeti Bulma yardımcı programı kullanılırken, son eklenmiş ana bilgisayar adları görünür dns-sd
:
Örneğin, ana bilgisayar adını kullanarak my-mbp-hostname
aşağıdaki girişler gibi görünebilir
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...]
Gerçek neden teorisi, dahili Mac OS durumuna ve düşük seviyeli Apple OS hata ayıklama araçlarına erişim olmadan gerçekte neler olduğunu bulmak ve gözlemlemek zor olduğu için doğrulanmamıştır. Arasındaki etkileşimler mdnsd
, mDNSResponder
ve mDNSResponderHelper
diğer Mac OS hizmetler veya ağ üzerindeki hatta diğer Avahi cinleri ile iyi belgelenmiş veya kolayca gözlemlenebilir değildir. Bazı ağ keşif biçimlerinin mevcut durumu dns-sd
ve / arp -a
veya belki görüntülenebilir arp -a -n
. Bu ana bilgisayar adı bilgilerinin depolanabileceği diğer teoriler veya potansiyel yerler şunlar olabilir:
- Bluetooth cihaz adları işletim sistemi tarafından bir yerde devam etti
- SMB (windows dosya paylaşımı) bilgileri ağdan periyodik olarak
smbd
( /System/Library/LaunchDaemons/com.apple.smbd.plist
) tarafından önbelleğe alındı
- Ağdan önbelleğe alınan AFP paylaşım bilgileri (muhtemelen
smbd
?
mDNS
/ Avahi
reflektör (veya ağdaki bir yönlendirici veya başka bir cihaz tarafından Bonjour / sıfır conf paketlerinin başka bir şekilde yeniden yayınlanması)?
mDNSResponder
Veya mdnsd
( /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
) tarafından önbelleğe alınabilir
Çözüm (yer tutucu)
6 Ekim 2017 itibariyle, Apple'dan hala tam bir çözüm veya bu sorunun tekrarlanmasını önlemek için bir çözüm yok. Apple'a bu sorunu açıklayan bir Hata Raporu göndermenizi öneririm . Apple Müşteri Desteği ile de iletişime geçmek isteyebilirsiniz .
Bu can sıkıcı sorun hakkında ne kadar çok insan gürültü çıkarırsa, Apple Ürün Yöneticileri o kadar hızlı önceliğe sahip olur, böylece Mühendisler sorunu çözebilir.
Hata Ayıklama / Gelecek Araştırma Hatları
Bu MacRumors Forum Tartışmasının bazı yararlı bilgileri olduğu gibi, Wake for Wi-Fi Network Access
Wake / Sleep cihazının bu sorunla ilgisi olan bir teori eklemesi de vardır. Sunulan diğer teorilerin birden çok ağ bağdaştırıcısı (örn: WiFi + Thunderbolt Ethernet), 802.11 b/g/n
(2.4GHz) veya 802.11 a/ac
(5GHz) gibi birden çok bantta reklamı yapılan birden çok Erişim Noktası olan yönlendiriciler kullanılmasıyla ilgilidir . Bu kombinasyonlar olabilir adlandırma davranışını tetikleme, bir şekilde geçici olarak ağda göstermek Apple cihazı bir "hayalet" versiyonunu neden olur.
Orada hiçbir yararlı günlük hatları içinde /var/log/system.log
bu adlandırma davranışı tetiklenen ilgili yazı. Sözde mDNSResponder
daha yüksek günlük seviyelerine yapılandırılabilir:
- Hata - Hata mesajları
- Uyarı - İstemci tarafından başlatılan işlemler
- Bildirim - Uyku proxy işlemleri
- Bilgi - Bilgi mesajları
Bu hata ayıklama düzeylerini belki var olmayan bir dosyadan başka bir yolla nasıl ayarlayacağınız /Library/Preferences/com.apple.mDNSResponder.plist
belli değildi. Kullanmak için plist örnek yapılandırma yoktu, bu yüzden herhangi bir ekstra günlük bilgisi alamadım mDNSResponder
.
Wireshark gibi araçlar mDNS
ağda yayınlanmakta olan paketlerin yanı sıra diğer trafik arasında potansiyel olarak alakalı diğer ARP paket bilgilerinin gösterilmesi için de yararlı olabilir .
Mac OS'de, dscacheutil
bu bilgileri görüntülemek için başka araçlar bulunabilir. Ana bilgisayar adı yeniden adlandırma kodu tarafından kullanılan bu bilgilerin kesin önbelleğinin nasıl görüntüleneceği iyi belgelenmemiştir veya net değildir. Bu yardımcı programı sınadığımda, tam ana bilgisayar adı (gizlilik için temizlenen IP'ler) için sorgu modunu kullanma dışında herhangi bir yararlı çıktı üretmedi:
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