Bagaimana cara menghentikan nama komputer saya secara otomatis, dan secara keliru, berubah?

19

Sejak saya memutakhirkan iMac 2009 saya ke Mavericks, saya sering menerima pesan yang menyatakan 'Nama komputer Anda "Foo" sudah digunakan di jaringan ini. Nama telah diubah menjadi "Foo (2)". '. Angka pada akhirnya akan terus bertambah seiring waktu karena kesalahan yang sama terus terjadi.

Cukup sepele untuk mengganti nama komputer kembali, tetapi apakah ada cara untuk mencegah hal ini terjadi di masa depan? Saya memiliki Macbook Pro lama (menjalankan Mountain Lion) yang memiliki masalah yang sama, tetapi MBP awal 2013 saya yang menjalankan Mavericks tampaknya tidak menderita masalah ini.

Cleggy
sumber
Apakah nama yang dikatakannya sebenarnya adalah string kosong? Jika ya, apa isinya jika Anda mengubah nama komputer Anda?
0942v8653
Tidak, itu nama komputer saya (omong kosong, saya melihat bahwa teks yang saya ketikkan telah dihapus. Tidak ada keraguan karena kurung sudut). Misalnya, jika nama komputer saya adalah 'Foo', komputer saya akan dinamai 'Foo (2)'.
Cleggy
Saya telah mengedit pertanyaan untuk mengklarifikasi bahwa string kosong tidak ditampilkan.
Cleggy
Ini mungkin masalah yang sama yang Anda alami. Coba juga berjalan scutil --get ComputerNamedan hostnamedi Terminal. (Anda mungkin juga harus melacak alamat IP Anda untuk melihat apakah itu berubah) Saya pikir itu sesuatu dengan router atau DHCP Anda, dan nama NetBIOS mungkin di-cache terlalu lama.
0942v8653
1
Masih belum ada jawaban? Ini masih terjadi dengan OS X 10.10.4 pada akhir 2011 MacBook Pro 17 ". Mungkin ada hubungannya dengan terhubung ke wi-fi dan ethernet pada saat yang sama, tetapi betapa menyakitkannya OS X tidak menemukan ini sendiri
Brent Faust

Jawaban:

5

Penanganan masalah

Seperti pengguna lain, saya terganggu oleh gangguan ini tetapi telah menemukan solusi yang kurang memuaskan:

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

Setelah menjalankan perintah ini, Anda dapat memeriksa bahwa semua tempat di mana mereka menyimpan nama host sama dengan ini satu-liner:

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

Jika Macbook terus mengganti nama ComputerNamekembali dengan suffix, Anda mungkin dapat menghentikannya dengan mematikan Wake for Network Access.

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

Setelah mati, ganti nama mesin Anda menggunakan perintah di atas untuk menyelesaikan. Anda juga dapat mencoba memaksa ComputerNamekembali dengan menggunakan System Preferences→Sharing→Computer Namepreferensi bidang teks.

Jika ini tidak membantu, coba flushing cache mDNS Anda :

# 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

Setelah memurnikan cache mDNS, coba ganti nama mesin Anda menggunakan perintah di atas.

Jika ini masih tidak berhasil, coba matikan mDNSResponderlayanan:

sudo killall -HUP mDNSResponder

Kemudian, coba lagi untuk mengatur ulang nama komputer Anda menggunakan scutilperintah di atas .

Jika Anda menemukan bahwa semua ini tidak ada gunanya, ada beberapa solusi lain yang dilaporkan yang meliputi:

  • Pastikan Anda hanya memiliki satu koneksi ke jaringan lokal
  • Matikan Bonjour dan nyalakan kembali

    # 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
    
  • Matikan dan setel ulang SEMUA perangkat keras jaringan

Diskusi Masalah

Dalam pengalaman saya, mengatur nama host dengan cara ini, atau melalui standar System Preferences→Sharing→Computer Namehanya berlangsung dalam waktu singkat. Ini biasanya <24 jam, tetapi kadang-kadang ComputerNamebahkan berubah dengan segera untuk memiliki angka suffixed dalam tanda kurung (N). Saya telah mengamati nomor ini untuk segera diatur ke salah satu (4)atau (5)baru - baru ini setelah menggunakan scutil --setperintah di atas.

Penyebab perilaku ini adalah karena beberapa kode daemon berjalan di Mac OS yang mencoba untuk menambahkan sufiks bernomor (N)kapan saja ketika nama host yang sama ditemukan di jaringan. Dalam SEMUA pengujian saya, nama host yang saya pilih tidak pernah digunakan sebelumnya di jaringan dan juga tidak pernah digunakan untuk perangkat Bluetooth.

Penyebab sebenarnya dari "pemicu" perilaku ini tidak diketahui dan tidak diverifikasi. Dengan kata lain: Melalui semua riset dan pengujian online saya, saya belum dapat menentukan secara pasti mengapa Mac OS memutuskan bahwa nama itu sudah digunakan ketika jelas TIDAK dan tidak pernah.

Teori saya adalah bahwa entah bagaimana mDNSjuga dikenal sebagai Bonjour( Avahiuntuk pengguna Linux, atau Zero-confJaringan untuk pengguna Windows) mungkin sebagian yang harus disalahkan. Entah bagaimana, nama host sebelumnya dari Macbook atau perangkat Apple akan bertahan di suatu tempat di mDNS, atau mungkin beberapa bentuk ARPtabel + informasi nama host yang ditemukan dan disimpan oleh perangkat Macbook atau Apple. Ini bisa menjadi semacam kondisi balapan. Entah bagaimana entri tersebut dilihat sebagai duplikat dan memicu perilaku penggantian nama suffix Mac OS.

Jumlah nama host dengan akhiran terlihat saat menggunakan utilitas Discovery Layanan DNS yang disediakan Apple dns-sd:

Misalnya, menggunakan nama host my-mbp-hostname, itu mungkin muncul seperti entri berikut

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...]

Teori penyebab sebenarnya belum dikonfirmasi karena sulit untuk menemukan dan mengamati apa yang sebenarnya terjadi tanpa akses ke kondisi internal Mac OS & alat debugging OS Apple tingkat rendah. Interaksi antara mdnsd,, mDNSResponderdan mDNSResponderHelperdengan layanan Mac OS lainnya atau bahkan daemon Avahi lainnya pada jaringan tidak terdokumentasi dengan baik atau mudah diamati. Keadaan saat ini dari beberapa bentuk penemuan jaringan dapat dilihat melalui dns-sddan arp -aatau mungkin arp -a -n. Teori atau tempat potensial lain tempat informasi hostname ini dapat disimpan adalah:

  • Nama-nama perangkat Bluetooth bertahan oleh OS di suatu tempat
  • Info SMB (windows file share) di-cache dari jaringan secara berkala oleh smbd( /System/Library/LaunchDaemons/com.apple.smbd.plist)
  • Info saham AFP di-cache dari jaringan (mungkin juga oleh smbd?)
  • mDNS/ Avahireflector (atau jenis lain siaran ulang paket Bonjour / zero-conf di jaringan oleh router atau perangkat lain)?
    • Dapat di-cache oleh mDNSResponderatau mdnsd( /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist)

Solusi (pengganti)

Pada 6 Oktober 2017, masih belum ada solusi lengkap dari Apple atau solusi untuk mencegah masalah ini terulang kembali. Saya merekomendasikan pengarsipan Laporan Bug dengan Apple yang menjelaskan masalah ini. Anda juga dapat menghubungi Dukungan Pelanggan Apple .

Semakin banyak orang yang membuat kegaduhan tentang masalah yang mengganggu ini, semakin cepat Manajer Produk Apple akan memprioritaskan sehingga Insinyur akan dapat memperbaikinya.

Debugging / Future Investigasi

Diskusi Forum MacRumors ini memiliki beberapa informasi yang berguna serta menambahkan teori bahwa Wake for Wi-Fi Network Accessdan perangkat Bangun / Tidur ada hubungannya dengan masalah ini. Teori-teori lain yang disajikan berkaitan dengan menggunakan beberapa adapter jaringan (misalnya: WiFi + Thunderbolt Ethernet), router yang memiliki beberapa Poin Akses yang diiklankan pada beberapa band seperti pada 802.11 b/g/n(2.4GHz) atau 802.11 a/ac(5GHz). Kombinasi ini dapat menyebabkan versi "hantu" perangkat Apple muncul di jaringan entah bagaimana sementara waktu, memicu perilaku penggantian nama.

Ada tidak ada garis log berguna dalam /var/log/system.logyang muncul terkait dengan perilaku penggantian nama ini dipicu. Seharusnya mDNSResponderdapat dikonfigurasi ke level log yang lebih tinggi:

  • Kesalahan - Pesan kesalahan
  • Peringatan - operasi yang dimulai oleh Klien
  • Pemberitahuan - Operasi proxy tidur
  • Info - Pesan informasi

Cara mengatur level debug ini selain dari mungkin melalui file /Library/Preferences/com.apple.mDNSResponder.plistyang tidak ada tidak jelas. Saya tidak memiliki contoh konfigurasi plist untuk digunakan, jadi saya tidak dapat memperoleh info logging tambahan mDNSResponder.

Alat-alat seperti Wireshark dapat berguna untuk menunjukkan mDNSpaket yang disiarkan di jaringan bersama dengan info paket ARP lain yang berpotensi relevan di antara lalu lintas lainnya.

Di Mac OS, alat lain seperti dscacheutilmungkin ada untuk melihat informasi ini. Tidak terdokumentasi dengan baik atau jelas bagaimana cara melihat cache definitif dari informasi ini yang digunakan oleh kode penggantian nama hostname. Ketika saya menguji utilitas ini, itu tidak menghasilkan output yang berguna kecuali ketika menggunakan mode kueri untuk nama host yang tepat (IP digosok untuk privasi):

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
sumber
1
Bukan solusi, tetapi dipilih untuk detail dan sejarah.
jontsai
Saya ingin memberikan pembaruan dengan beberapa hasil awal yang bagus setelah beberapa pengujian! Sejauh ini saya belum melihat tanaman masalah lagi karena aku berubah pengaturan ini: System Preferences→Energy Saver→Wake for Wi-Fi network access → Unchecked. Saya pikir saya perlu me-reboot sistem lagi dan membiarkannya berjalan untuk meyakinkan saya sepenuhnya ... tetapi kita mungkin punya solusi!
TrinitronX
26 hari setelah mengubah Wake for Wi-Fi network accesspengaturan yang disebutkan di atas , saya sedih melaporkan bahwa macbook saya telah berganti nama lagi! Tampaknya perilaku itu pasti terkait dengan Bonjour dan AirPlay. Selama 26 hari saya tidak mengakses banyak aplikasi menggunakan Bonjour kecuali mungkin *.localpencarian DNS hostname dari utilitas baris perintah. Hari ini, saya membuka AirFoildanAirFoil Sattelite aplikasi dan segera melihat nama host saya telah berubah dengan akhiran (2). Aplikasi ini dapat menyediakan test case reproduksi untuk bug
TrinitronX
1

Apakah Anda menggunakan dua perangkat jaringan yang berada di LAN yang sama? Misalnya, wifi dan ethernet kabel? Coba nonaktifkan salah satunya. Saya dulu punya masalah itu dan memperbaikinya dengan cara ini.

sudo
sumber
1
Saya tidak, tapi saya sekarang. Perangkat umumnya terhubung melalui wifi atau ethernet kabel. Tapi hari ini saya telah mengubah iMac saya untuk terhubung melalui wifi dan ethernet, dalam upaya untuk membuat sinkronisasi wifi iTunes berfungsi. Perubahan ini dibuat setelah insiden penggantian nama iMac terbaru, jadi tidak akan menjadi penyebab dalam hal ini.
Cleggy
1

Masalah yang sama disini. Tapi sepertinya nama foo (2) diterima oleh mesin waktu dan masih melakukan backup ke tempat yang sama (sepertinya tidak mengulangi seluruh backup, terus). Jadi tidak ada salahnya tidak busuk. Saya pikir itu terkait dengan beberapa antarmuka aktif, saya muncul ethernet untuk mempercepat cadangan saya.

Bruce0
sumber
Anda benar bahwa memiliki dua antarmuka jaringan tampaknya membuat ini lebih mungkin terjadi. Sudah jelas itu juga terjadi ketika ada satu antarmuka dan mesin tidur untuk waktu dekat dengan waktu reservasi DHCP pada router.
bmike
0

Tidak ada cara yang baik untuk menghentikan ini. Apple harus mengganti kode untuk nama host sehingga pengguna (orang dan program) selalu disajikan dengan nama host yang ditetapkan oleh scutildan melakukan semua penggantian nama / terjemahan di bawah tenda.

Karena ini telah terjadi di semua lini produk Apple (Apple TV, iPhone, Mac dan bahkan mungkin Apple Watch) setidaknya sejak 2012, tidak jelas apakah Apple melihat ini sebagai masalah yang harus diperbaiki.

bmike
sumber
-2

Ini mungkin berkaitan dengan pengguna yang aktif ketika Anda bergabung dengan jaringan dan mengatur mesin untuk pertama kalinya. Mungkin saat Anda membuat mesin ini, Anda selalu melakukannya sebagai pengguna yang sama

Jika Anda membuat pengguna, mis. Aktif, misalnya MacBook Pro, mesin akan secara otomatis mengkonfigurasi penamaan sebagai berikut:

Nama Komputer: dave's MacBook Pro

nama host lokal: daves-MacBook-Pro.local

dan di Terminal, nama host akan ditampilkan sebagai: daves-mbp

Dengan asumsi mesin berikutnya yang Anda masuki sebagai 'dave' juga merupakan MacBook Pro, ia akan mengatur detail yang persis sama - Anda terhubung ke jaringan dan Anda mendapatkan pesan tentang nama duplikat.

Di mana saya bekerja, kami mengubah nama di Sharing kemudian membuka terminal dan menjalankan perintah berikut: sudo scutil –-set HostName new_hostname

(di mana new_hostname adalah nama pilihan Anda)

Kemudian keluar dan mulai ulang terminal dan Anda akan melihat nama host baru.

Anda juga akan mendapatkan masalah ini ketika memigrasikan pengguna ke mesin baru - asisten migrasi / Mesin waktu akan mengganti nama mesin baru

beberapa info tentang nama yang biasanya lemah - http://support.apple.com/kb/PH13790

baguasrr
sumber
Ini terjadi dengan dua mesin yang dipasang lebih dari setahun yang lalu atau dalam kasus
OPs
-2

Ini terjadi ketika menjalankan dua server DHCP yang tumpang tindih. Jika Anda menggunakan lebih dari satu router (mode jembatan) maka pastikan hanya satu dari mereka yang menjalankan DHCP tanpa IP statis.

Fishboy
sumber
1
Bukan itu masalahnya di sini. Satu-satunya server DHCP yang saya miliki adalah router Airport Extreme saya.
Cleggy