主机名 / hostname/ComputerName 的含义
主机名、hostname 是一个东西,中英文而已,指的是你本地网络上的电脑可以通过主机名访问你的电脑。这个与 Linux 系统是一致的。
ComputerName,这个是 macOS 才有的东西。跟 Windows 上一样,表示的是电脑名称,给人看的。
可以从下图中看出来(系统偏好设置 > 共享):

对于 macOS 来说,它会按以下的顺序来确定主机名,直到获取到为止:
- 从以下文件中读取:
/etc/hostconfig 
- 从以下系统配置项读取:
/Library/Preferences/SystemConfiguration/preferences.plist 中的 System ▸ System ▸ HostName 
- 由本机 IP 地址的反向 DNS 查询获取
 
- 从以下系统配置项读取:
/Library/Preferences/SystemConfiguration/preferences.plist 中的 System ▸ Network ▸ HostNames ▸ LocalHostName 
- 如果以上方法都没获取到,就为默认的 
localhost 
主机名 / hostname 修改
查看
或者
1
  | 
scutil --get LocalHostName
  | 
 
修改
1
  | 
sudo scutil --set LocalHostName XXX
  | 
 
示例
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
  | 
$ hostname
shocker.local 
$ scutil --get LocalHostName 
shocker 
$ sudo scutil --set LocalHostName hello 
Password: 
$ hostname 
hello.local 
$ scutil --get LocalHostName 
hello
  | 
 
ComputerName 修改
查看
1
  | 
scutil --get LocalHostName
  | 
 
修改
1
  | 
sudo scutil --set ComputerName XXX
  | 
 
示例
1
2
3
4
5
6
  | 
$ scutil --get ComputerName 
shocker 
$ sudo scutil --set ComputerName MyMacBook 
Password: 
$ scutil --get ComputerName 
MyMacBook
  | 
 
scutil 命令
scutil 是个可动态访问 macOS 系统信息的交互式工具。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
  | 
$ scutil --help
usage: scutil
	interactive access to the dynamic store.
   or: scutil --prefs [preference-file]
	interactive access to the [raw] stored preferences.
   or: scutil [-W] -r nodename
   or: scutil [-W] -r address
   or: scutil [-W] -r local-address remote-address
	check reachability of node, address, or address pair (-W to "watch").
   or: scutil -w dynamic-store-key [ -t timeout ]
	-w	wait for presense of dynamic store key
	-t	time to wait for key
   or: scutil --get pref
   or: scutil --set pref [newval]
   or: scutil --get filename path key
	pref	display (or set) the specified preference.  Valid preferences
		include:
			ComputerName, LocalHostName, HostName
	newval	New preference value to be set.  If not specified,
		the new value will be read from standard input.
   or: scutil --dns
	show DNS configuration.
   or: scutil --proxy
	show "proxy" configuration.
   or: scutil --nwi
	show network information
   or: scutil --nc
	show VPN network configuration information. Use --nc help for full command list
   or: scutil --allow-new-interfaces [off|on]
	manage new interface creation with screen locked.
   or: scutil --error err#
	display a descriptive message for the given error code
  | 
 
查看 DNS 配置
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
  | 
$ scutil --dns
DNS configuration
resolver #1
  nameserver[0] : 61.139.2.69
  nameserver[1] : 218.6.200.139
  if_index : 5 (en0)
  flags    : Request A records
  reach    : 0x00000002 (Reachable)
resolver #2
  domain   : 8163912288.members.btmm.icloud.com
  options  : pdns
  timeout  : 5
  flags    : Request A records
  reach    : 0x00000000 (Not Reachable)
  order    : 150000
// more ...
  | 
 
查看代理配置
1
2
3
4
5
6
7
  | 
$ scutil --proxy
<dictionary> {
  HTTPEnable : 0
  HTTPSEnable : 0
  ProxyAutoConfigEnable : 0
  SOCKSEnable : 0
}
  | 
 
查看网络配置
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
  | 
$ scutil --nwi
Network information
IPv4 network interface information
     en0 : flags      : 0x5 (IPv4,DNS)
           address    : 192.168.0.105
           reach      : 0x00000002 (Reachable)
   REACH : flags 0x00000002 (Reachable)
IPv6 network interface information
   No IPv6 states found
   REACH : flags 0x00000000 (Not Reachable)
Network interfaces: en0
  | 
 
修改主机名、电脑名称等
1
2
3
  | 
$ scutil --set ComputerName xxx
$ scutil --set HostName xxx
$ scutil --set LocalHostName xxx
  | 
 
参考