在Mac系统里,设备名称其实不止一个。你可能会发现访达中显示的名字、AirDrop里出现的名字以及用SSH远程连接时需要输入的名字各不相同。这并不是系统设计混乱,而是因为macOS针对不同使用场景分别设定了三个独立的主机标识:ComputerName(电脑名称)、LocalHostName(本地主机名)和HostName(主机名)。通过图形界面的“共享”设置通常只能修改其中一项,要想精确掌控所有标识,就需要使用终端里强大的scutil命令来操作。

简单来说,这三个名称各自承担不同职责:
- ComputerName:这是你在访达侧边栏、系统设置顶部看到的“电脑名称”,主要用于用户界面显示,方便你识别自己的设备。
- LocalHostName:这是供Bonjour服务使用的名称,例如AirDrop、屏幕共享、打印机发现等局域网功能。系统会自动为其添加
.local后缀,因此局域网内其他设备可以通过你的Mac名.local来访问。此名称有格式限制,不能包含空格或特殊字符。 - HostName:这个名称用于命令行和网络服务,比如SSH远程登录。通常应该设置为完整主机名(例如
macbook.office.local)。如果未专门设置,系统会尝试从其他名称自动派生。
弄清楚区别之后,操作起来就能有的放矢了。整个修改过程都在“终端”中完成,记得提前准备好管理员密码。
一、先查看当前名称状态
开始修改之前,建议先查询当前三个名称的具体值,做到心中有数,避免误改。
- 打开“访达”,进入“应用程序” -> “实用工具”,双击打开“终端”。
- 在终端里,依次输入并执行以下三条命令:
scutil --get ComputerName
scutil --get LocalHostName
scutil --get HostName
执行后,终端会分别显示当前三个名称的值。如果HostName返回的是(null),说明此前从未专门设置过此名称。
二、使用scutil命令修改名称
确认当前状态后,就可以开始修改了。执行修改需要管理员权限,因此每条命令前都要加上sudo。
-
修改ComputerName(用户界面显示名称)
输入命令:sudo scutil --set ComputerName "你想要的新名字"
例如:sudo scutil --set ComputerName "我的工作Mac" -
修改LocalHostName(Bonjour网络名称)
输入命令:sudo scutil --set LocalHostName "新的本地名"
注意:此名称不能含有空格、中文或特殊字符,建议仅使用字母、数字和连字符。例如:sudo scutil --set LocalHostName "MyWorkMac" -
修改HostName(远程访问主机名)
输入命令:sudo scutil --set HostName "新的主机名"
这里可以设置一个完整的域名,例如sudo scutil --set HostName "macbook.company.local"。如果只是个人使用,也可以设置成一个简单的主机名。 -
每输入一条命令并按下回车后,系统会提示你输入管理员密码。输入时屏幕上不会显示任何字符(这是正常的安全机制),输入完成后直接再按一次回车即可确认。
命令执行成功后不会有“成功”提示,但只要没有报错,就说明修改已成功写入系统配置。
三、刷新缓存并验证修改效果
名称修改完成后,系统缓存可能尚未更新,尤其是网络发现服务。为了让新名称立刻生效,需要刷新DNS缓存。
- 在终端里输入命令:
dscacheutil -flushcache - 为了确认修改无误,可以再次运行第一步中的三条
scutil --get查询命令,查看输出结果是否已变为你刚设置的新名称。 - 最后,进行一次实战检验:从同一网络下的另一台设备(例如iPhone或另一台Mac)上,尝试通过AirDrop查找你的电脑,或者在访达的“网络”位置中查看,你的Mac是否已经以新名称正常显示。
完成以上步骤后,你的Mac在系统界面、本地网络以及远程访问中的身份标识就全部按照你的需求更新完毕。这种方法特别适合需要统一管理多台设备,或者通过图形界面修改遇到限制(例如名称冲突)的情况。
