OS X bilgisayar adı, terminalde gösterilenlerle eşleşmiyor


119

Sistem Tercihleri> paylaşımındaki bilgisayarımın adı "archos" olarak ayarlanmış, ancak terminalde "iphone" olarak gösteriliyor. Ben sadece iPhone geliştirme yapmak için Xcode yükledikten sonra bunu yapmaya başladı.

Last login: Mon Nov  7 14:46:55 on ttys001
iphone:~ travis$ 

Buna neyin neden olabileceği hakkında herhangi bir fikriniz var mı?


echo $ HOSTNAME yazdığınızda ne alırsınız
Daniel

1
Bu garip ... echo $ HOSTNAME için 'archos.local' alıyorum. İlk yazmayı ofisteyken yaptım ama ev ağımda normale döndü. Bunun iş ağımla bir ilgisi olup olmadığını merak ediyorum.
Travis Nelson,

Yanıtlar:


94

Bunun gerçekleşmesi tamamen normaldir; Oturum açtığınızda uzaktan Terminal bash ters bir DNS araması yapar. Yalnızca ana bilgisayar adı, bağlandığınız ağda belirtilmezse ve DHCP sunucusundan yanıt gelmezse veya uzak DNS sunucusuna karşı geriye doğru arama çözümlenmezse başarısız olur.

Terminal'de bu komutu kullanarak varsayılan ayarı kolayca aşabilirsiniz:

# sudo scutil --set HostName archos

Aşağıdakileri kullanarak kontrol edebilirsiniz:

# nslookup nn.nn.nn.nn
( or )
# host nn.nn.nn.nn

(nn, Mac'inizin ip adresini gösterir)


6
@Gio Sistem altındaki HostName anahtarını /Library/Preferences/SystemConfiguration/preferences.plist adresinden silin. Bu cevaba bakınız .
Lri

2
@Gio: @ Lauri'nin gönderisinin mükemmel arka plan bilgisi var, ancak bir kısayol istiyorsanız: silmek için çalıştırın sudo scutil --set HostName ''.
mklement0

3
Ayar HostNameyapılması önerilmez, çünkü daha sonra ana bilgisayar adını değiştirmeyi denediğinizde bile devam eden ayrı bir değer oluşturur System Preferences > Sharing. Buna karşılık, ayar LocalHostNameaynı değeri günceller ve normalde kabuk tarafından da toplanır ve hostname( ComputerNamedeğer tandem olarak güncellenmelidir). Yoksa ayar HostNameburada avantaj sağlayacak şekilde farklı mı davranıyor?
mklement0

1
ana bilgisayar adını test etmek için başka birhostname -f
ericn

2
2 makinede bu zorluğu yaşadım ve aşağıdaki J.Hoover'in cevabında öne sürdüğüm fikirler ve yukarıdaki mklement0 tarafından yapılan yorumda bu işe yaramadı. Yani, ikiniz de yalnızca LocalHostName ve ComputerName değerini değiştirmenizi öneriyoruz, ancak bunları değiştirmek Terminal'i Sistem Tercihlerinde belirtilen Bilgisayar Adı'nı yansıtacak şekilde hiç değiştirmedi. Bunun sebebinin, benim durumumda, her iki makinenin de Time Machine yedekleri olduğuna ve daha sonraki bir tarihte yeniden adlandırmama rağmen yerel olarak saklanan kimlik bilgilerini eski görüntüden koruduğuna inanıyorum. Sadece HostName benim için çalıştı. FYI başkalarına.
oemb1905

45

Scutil komutunu kullanarak başka bazı şeyleri de değiştirmek isteyebilirsiniz:

sudo scutil --set ComputerName "newname"
sudo scutil --set LocalHostName "newname"
sudo scutil --set HostName "newname"

2
Sistem Tercihleri-> Paylaşım'daki adı değiştirip ardından scutilayarlamak için HostName, her ikisini de ComputerNameseçip LocalHostNamebenim için yeni adı ayarladınız (Mavericks'te). Yine de, bu diğer ayarların var olduğunu bilmek güzel.
Jim Stewart,

@JimStewart: Aslında, bu yüzden ASLA ayarlamayacak olmanız daha iyidir HostName, çünkü daha sonra Sistem Tercihleri aracılığıyla ana bilgisayar adınızı değiştirmeyi denediğinizde bile bu değerin korunmasına neden olur . Tersine, LocalHostName is kabuk tarafından yakalandı ve hostnamebu yüzden, HostNamegerekli hiçbir zaman.
mklement0

Benim durumumda yanlış bir LocalHostName değeri vardı. Koşu sudo scutil --set LocalHostName ''LocalHostName silinmiş ve şimdi benim istemi doğru değeri vardır ComputerName kullanıyor.
işaretleyin.

14

Kabuğun ( $HOSTNAMEdeğişken, '\h'in $PS1) ve hostnameyardımcı programın, gösterilen adresten farklı bir ana bilgisayar adı bildirmesi için iki olası neden vardır System Preferences > Sharing:

  • sudo scutil --set HostName newNamehostname değiştirmek ısrarla kullanıldı - maalesef bu değer bağımsız bir LocalHostName- perde arkasında Sistem Tercihleri tarafından belirlenen değerin olsa man hostnameKULLANMAYIN, bu yöntemi önerir ; bu nedenle kaldırmak için koşmaksudo scutil --set HostName '' , hangi noktada LocalHostNametekrar rapor edilmelidir; arka planı için bu yazıya bakın @Lauri Ranta.

  • [ Güncelleme: Aşağıdaki OSX 10.10'dan itibaren geçerli değildir ] /etc/hostsDosyanız makinenizin IP adresiyle eşleşen bir giriş içeriyorsa, bu girişin adı bildirilecektir.

Sadece yukarıdakilerin hiçbiri doğru değilse, kabuk ve hostnameSistem Tercihleri ​​aracılığıyla ayarlanan değeri yansıtacaktır.


Ana bilgisayar adınızı kabuktan değiştirmek istiyorsanız , aşağıdakilerden her ikisini de çalıştırın :

  • sudo scutil --set LocalHostName <newName>
  • sudo scutil --set ComputerName <newFriendlyName>

nerede (sadece alfanümerik ve kısa çizgiler <newFriendlyName>) bir dostça versiyonu (boşluk, noktalama <newName>) olabilir.


ne yazık ki, sadece bu ikisini ayarlamak benim durumumda yeterli görünmüyordu: gist.github.com/rdp/71d5368087b94b5ea55a
rogerdpack

@ rogerdpack: sudo scutil --set HostName ''Önce sen koşarsın (vakalar için) ve giriş olmadığından emin /etc/hostsoldun mu? scutil --get HostNamerapor etmeli Hostname: not set.
mklement0

yeah scutil --get HostName HostName: not set/ etc / hosts iyi huylu görünüyor ...
rogerdpack

1
@ rogerdpack: Aptalca bir soru: PS1değişkeniniz kullanmak yerine kodlanmış bir ana bilgisayar adına \hsahip değil mi? Bir kenara: /etc/hostsOSX 10.10'dan itibaren artık görüşülmemektedir (Cevabımı güncelledim).
mklement0

2
Güzel. Ana bilgisayar adının kaldırılması (önerildiği gibi boş dizgiye ayarlayarak:) sudo scutil --set HostName '' yine OS X'in bilgisayar adını IP adresine eşlemesini sağlar (örn. Bu şimdi çalışıyor ping <computername>).
Brent Faust,


5

Jeffrey Hoover'ın tahmininin doğru cevap olduğuna katılıyorum. DNS önbelleğini temizlemek ve Mac'i yeniden başlatmak da güzel bir adımdır. Bu Jeff Hoover'ın cevabının bir çeşididir:

sudo -i
Password:

for n in HostName ComputerName LocalHostName; do
    scutil --set $n new_hostname
done

exit

1
Kaçırıyorsun -: --setçalışmak olmalı . Ayrıca, Jeff'in cevabına yorum yaptığım gibi: ayarlanmamış olması muhtemelen daha iyidir HostName.
mklement0

4

Sistem Tercihleri ​​-> Paylaşma -> Bilgisayar Adı -> ne olursa olsun

Ve sonra bilgisayarınızı yeniden başlatın. Konsol komutları gerekli değildi. OS X 10.10.2 için çalışıyor


10.14.6'da Paylaşma -> Bilgisayar Adının istediğim gibi ayarlandığı ve hostname"MacBook-Pro" döndürdüğü bir durum vardı . Bunu bile değiştirdim ve hala sorun yaşadım. Bu konuyu daha önce hiç görmedim. scutilKomutlar benim için çalıştı. Bunu GUI arayüzü üzerinden nerede ve nasıl yapman gerektiğini merak ediyorum.
pedz,



2

Yalnızca kabuğun kendisinin ( zshbenim durumumda) doğru bilgisayar adını gösterememesi sorunu vardı . Sadece kabuk yeniden başlatılması çözüldü:

exec /bin/zsh

2

Önceki cevaba ek olarak, yönlendiricinizde statik bir adres kullanabileceğinizi unutmayın. Ağ kartınızın statik IP adresini ve MAC adresini girmeniz gerekir, daha sonra bunun için bir ad girin. Ana bilgisayar adı, belirtilen adla otomatik olarak güncellenir. Bu kadar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.