在Snow Leopard上收到DHCP请求时,如何停止Mac OS X覆盖我的主机名?


80

每当我进入DHCP服务器分配主机名的网络时,它就会覆盖我在Mac上“系统偏好设置”的“共享”部分中为主机名设置的设置。

如何阻止这种行为的发生,并始终在Snow Leopard下设置相同的主机名?

Answers:


27

简而言之:默认情况下,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-


2
该答案需要更新为10.6。我正在看10.5,已经非常不同了。
09年

5
对于10.6+,请参见
@Wolf

127

使用以下命令在终端中进行设置:

sudo scutil --set HostName <putinyourhostname_or_fqdn_here>

像:

sudo scutil --set HostName server1.mynetwork.com

3
验证这也适用于Leopard(Mac OS X 10.5.8)。
Vebjorn Ljosa

3
在Snow Leopard(Mac OS X 10.6.2)中不需要sudo
Garth Kidd 2010年

2
在狮子工程(10.7.2)太
etarion

5
已验证这也适用于Mountain Lion(10.8.2)
DerMike 2013年

12
在10.9 ....上工作
丹·普里兹

18

根据您的DHCP的设置方式,您可能可以使用“ DHCP客户端ID”。

  1. 系统偏好设置。
  2. 网络
  3. 在左侧选择您的网络适配器。
  4. 选择底部的“高级”按钮。
  5. 将“ DHCP客户端ID”设置为您的主机名。

如果您的DHCP服务器支持它,则您的主机名将用于您的计算机。


如果我的DHCP服务器支持该怎么办?我使用的所有其他操作系统都允许我自己设置主机名,您是说这取决于OSX的服务器吗?
Mike McQuaid,2009年

除非您的DHCP服务器做的事情确实很奇怪,否则这应该会使您的主机名生效。在共享(如您所述)和DHCP客户端ID中,我都有一个名为“ shteef”的框,它可以正常工作。
杰克M.

这对我不起作用...但是scutil却可以。在使用scutil之后,该字段被填充。奇怪。
罗伯特·西亚乔

3
@杰克 DHCP客户端ID仅表示在DHCP协商期间将客户端ID发送到服务器。不需要提供的客户端ID即可将其添加到DNS。
zigg

3

实际上,它与DHCP不相关。OS X检查IP的反向DNS记录,如果有,则将其用作主机名。


2
我知道这是一个旧答案,但是您知道是否有任何方法可以阻止这种行为?
computergeek125

2

共享面板不一定设置您的主机名,而是设置您的bonjour主机名,并且是默认的主机名。DHCP可以并且可能会覆盖默认主机名。无论如何,我都不知道要重写它,但是也许有人这样做。

在类似情况下,我要做的是设置一个DYNDNS帐户,并将DYNDNS更新程序加载到您的系统上。然后,您可以在任何地方(包括本地局域网)使用DYNDNS主机名,而不必担心dhcp主机名是什么...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.