确保 Mac 从 DHCP 获取正确的机器名称?

确保 Mac 从 DHCP 获取正确的机器名称?

我的网络出现一个问题,我们的 Mac 偶尔会被赋予错误的机器名称,我猜是获取了新的 DHCP 租约。

DHCP 服务器基于 Windows - 我们网络的大部分是 Windows,但我们也有一些 Linux 机器和越来越多的 Mac。问题的具体情况是,偶尔 Mac 会使用网络中另一台机器的名称。

例如,我有一台新的 Macbook Pro。在 OSX 设置中,它被称为“gomez”,并且最初在网络上使用该名称启动时没有任何问题。但几天后,当机器重新启动时(在此期间它重新启动了几次),它最终被称为“florrie”,这实际上是网络另一部分的另一台机器的名称。

所有网络操作都运行良好,事实上您大多数时候都不会注意到 - 只有在运行需要主机名的 Perforce 等应用程序时才会遇到问题。

抱歉,我没有更多信息,但如果我知道要查找什么,我就可以挖掘出更多事实。或者任何有关检查网络设置的提示都会很有用。

答案1

这更可能是动态更新 DNS 问题;从 Windows 2000 开始,Windows 客户端一旦从 DHCP 服务器租用 IP 地址,就会自动使用新详细信息直接更新 Windows DNS 服务器。这样,DNS 和 DHCP 服务器就可以保持同步。Mac 则不然。以前的发帖人说 Mac 从 DNS 服务器获取了这些错误的主机名,这是正确的。那么,问题就出在 DNS 服务器上。

我没有使用过当前的 Microsoft DHCP 服务器,但以前的版本专门针对这种情况提供了一个选项。客户端计算机不再直接与 Windows DNS 服务器通信(Windows 2000 客户端及更高版本会自动发生这种情况),而是在成功将 IP 地址租给客户端后,Windows DHCP 服务器可以更新 Windows DNS 服务器。

您需要在 Windows DHCP 服务器中自行启用该选项。此选项的措辞通常类似于“始终更新 DNS 并启用对不支持动态更新的 DNS 客户端的更新”。

你可能还会发现本文很有用,尽管它适用于 Windows Server 2000 DHCP。(我今天在 Google 上过得不太好。)

答案2

Mac 正在对获取的 DHCP IP 进行反向查找以设置主机名。您可以按照 Sam 的建议配置 DNS 服务器以正确响应,也可以修复每台计算机的机器名称。

有很多方法可以做到这一点,但最简单的两种方法是:

  1. 您可以编辑 /etc/hostconfig 并添加行 HOSTNAME=[desired hostname] 并重新启动。此文件自 10.5 起已弃用,因此不要指望它可以在 Snow Leopard 中运行。

  2. 在“系统偏好设置”->“共享”中,您可以设置“计算机名称”。如果您单击“编辑...”按钮,您将看到“使用动态全局主机名”的设置。取消勾选此项可停止 DNS 查找并保留您在此处输入的任何设置。

但是,这两种方式都需要对每台机器进行设置,因此,如果 Mac 的数量不断增加,您可能更愿意研究对 DNS 进行排序。

答案3

答案就在这里

https://superuser.com/questions/49891/how-can-i-stop-mac-os-x-overriding-my-hostname-when-i-receive-a-dhcp-request-on-s

为了方便起见,在此复制更好的答案:


使用 sudo scutil --set HostName 在终端中进行设置

例如:sudo scutil --set HostName server1.mynetwork.com


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

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

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

答案4

格雷格,可能有很多原因。你首先需要做的是弄清楚为什么 Mac 选择它显示的名称。然后检查 IP 地址和主机名的正向和反向查找(使用 nslookup 或 dig),以及系统偏好设置中的“计算机名称”。

有一段时间,这个话题困扰了我,所以我做了一些研究,做了一些笔记,并把它们留在这里:

Mac OS X - 设置“主机名”

您可能会发现 IP 地址发生变化 + DNS/DHCP 集成存在问题。

注意:这不是为我的个人博客做广告的后门……我不写博客。我保留了社区 wiki 标记,而链接出去会造成问题,只需在此处复制有用的文本并删除链接即可。

相关内容