題 當我在Snow Leopard上收到DHCP請求時,如何阻止Mac OS X覆蓋我的主機名?


每當我進入DHCP服務器分配主機名的網絡時,它就會覆蓋我在Mac上的系統偏好設置的“共享”部分中為我的主機名設置的設置。

如何阻止此行為發生並始終在Snow Leopard下設置相同的主機名?


76
2017-10-02 08:58


起源




答案:


簡而言之:默認情況下,Mac OS會使用自動魔術行為。

您可以在/ etc / hostconfig中將其關閉。

http://excitedcuriosity.wordpress.com/2007/08/24/mac-os-x-hostname-determination/

我喜歡Jack M.的答案,但它在真實的DHCP環境的許多環境中都不起作用,因為你沒有與DHCP服務器預先存在的關係。只有在家庭設置或公司設置(IT人員有幫助)中,您才能通過DHCP獲得所需的主機名。


/etc/hostconfig 添加這樣的東西:

HOSTNAME=your_hostname.your_domain.your_tld

如果要再次將其設置為自動,請刪除該行或將其設置為 -AUTOMATIC-


27
2017-12-21 15:54



這個答案需要更新10.6。我看10.5,已經非常不同了。 - benc
對於10.6+,請參閱@ Wolf的答案 - etarion


將它設置在終端中:

sudo scutil --set HostName <putinyourhostname_or_fqdn_here>

像:

sudo scutil --set HostName server1.mynetwork.com

122
2017-10-02 16:50



驗證這也適用於Leopard(Mac OS X 10.5.8)。 - Vebjorn Ljosa
Snow Leopard中不需要sudo(Mac OS X 10.6.2) - Garth Kidd
也在Lion(10.7.2)中工作 - etarion
驗證這也適用於Mountain Lion(10.8.2) - DerMike
適用於10.9 .... - Dan Pritts


根據DHCP的設置方式,您可以使用“DHCP客戶端ID”。

  1. 系統偏好。
  2. 網絡
  3. 選擇左側的網絡適配器。
  4. 選擇底部的“高級”按鈕。
  5. 將“DHCP客戶端ID”設置為您的主機名。

如果您的DHCP服務器支持它,您的主機名將用於您的計算機。


18
2017-10-02 14:50



如果我的DHCP服務器確實支持它怎麼辦?我使用的每個其他操作系統都允許我自己設置主機名,你是說這是服務器依賴於OSX嗎? - Mike McQuaid
除非您的DHCP服務器正在做一些非常奇怪的事情,否我在共享(如你所提到)和DHCP客戶端ID中都有一個名為“shteef”的框,它工作正常。 - Jack M.
這對我不起作用......然而scutil也沒有。使用scutil之後,這個字段被填滿了。奇怪。 - Robert S Ciaccio
@JackM。 DHCP客戶端ID只是表示在DHCP協商過程中將客戶端ID發送給服務器;不需要提供的客戶端ID來進入DNS。 - zigg


“共享”面板不一定設置主機名,它設置為您的bonjour主機名,並且是默認主機名。 DHCP可以並且可能會覆蓋默認主機名。我不知道無論如何都要覆蓋它,但也許別人可以。

我在類似情況下所做的是設置一個DYNDNS帳戶,並在您的系統上加載DYNDNS更新程序。然後你可以從任何地方使用DYNDNS主機名,包括你的本地局域網,而不用擔心你的dhcp主機名是什麼...


2
2017-10-02 14:41





實際上它與DHCP無關。 OS X會檢查您的IP的反向DNS記錄,如果有,則將其作為主機名應用。


1
2018-03-27 04:30



我意識到這是一個陳舊的答案,但你知道有沒有辦法阻止這種行為? - computergeek125