OS X 下主机名和计算机名是不同的概念

通常意义上的主机名就是指在同一局域网内用来标识不同主机的名称。对于 Windows 用户来说,就是在“网络”内可以让同一局域网内其他用户看到的自己的计算机名称。所以自己的计算机名称,也就是主机名,用户可以在“计算机”的属性设置内自定义。

但对于 Mac OS 来说,主机名和计算机名是不同的概念,因为 Mac OS 可以通过“计算机名”来自定义主机在局域网内显示的名称,也就是我们前面所说的通常意义上的主机名。而 Mac OS 下的“主机名”才是主机真正的名称。

如果你了解 Unix 或者 Linux,应该很清楚,终端下的命令提示符是可以自定义的,通常命令提示符包含主机名,也就是当前终端连接的主机的名称。

对于 Mac OS 下的终端来说,此时显示的“主机名”就是 HostName,也就是主机真正的名称,我们可以通过命令查看当前的“主机名”:

1
echo $HOSTNAME

如果要修改主机名,可以使用下面的命令:

1
sudo scutil --set HostName 新的主机名

执行命令后,再输入 exit 结束当前终端进程。重新打开终端,就会发现主机名已经修改为新的主机名了。

那么怎么自定义当前主机在局域网内显示的主机名呢?

我们通过自定义 Mac OS 下的“计算机名”,即 ComputerName 值来实现。有两种方法:

  • 1.在“设置”——“共享”下,修改电脑名称。
  • 2.在终端下,通过命令实现。

具体实现过程为:

方法1 - 在“设置”——“共享”下,修改电脑名称:

方法2 - 在终端下输入命令:

1
sudo scutil --set ComputerName 新的计算机名

修改后,再在“设置”——“共享”下勾选“远程登录”,同一局域网内的其他终端就能通过 ssh 命令登录该主机了。这不在本文的讨论范围,所以不具体说明了。