Mac 终端出现 bogon 的原因和解决办法
MacOS修复hostname被篡改为bogon
带着Mac笨笨去了外地,打开terminal准备连接公司的跳板机,这时发现terminal上显示的hostname被篡改为bogon。
bogon:~ homer$ bogon:~ homer$ bogon:~ homer$
bogon是谁,难道有人动了我的电脑,回想一下没有啊。难道有吊炸天的hacker黑了我的电脑,然后改了一下hostname?
bogon 英文单词的含义是“虚拟的、虚伪的”,有的路由器里会有一个账户为 bogon 表示未知的虚拟户。
好了,遇到问题,先自己常见的查看与分析:
1、查看 hostname
bogon:~ homer$ hostname
bogon
2、查看本机IP:ifconfig
bogon:~ homer$ ifconfig lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384 options=1203<RXCSUM,TXCSUM,TXSTATUS,SW_TIMESTAMP> inet 127.0.0.1 netmask 0xff000000 inet6 ::1 prefixlen 128 inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 nd6 options=201<PERFORMNUD,DAD> en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500 ether 78:4f:43:86:32:b9 inet6 fe80::1c34:4e78:56ca:1bfa%en0 prefixlen 64 secured scopeid 0x8 inet 192.168.1.2 netmask 0xffffff00 broadcast 192.168.1.255 nd6 options=201<PERFORMNUD,DAD> media: autoselect status: active
3、查看 resolv.conf
bogon:~ homer$ cat /etc/resolv.conf # # macOS Notice # # This file is not consulted for DNS hostname resolution, address # resolution, or the DNS query routing mechanism used by most # processes on this system. # # To view the DNS configuration used by this system, use: # scutil --dns # # SEE ALSO # dns-sd(1), scutil(8) # # This file is automatically generated. # nameserver 192.168.1.1
最后,经过一番search,造成terminal显示的hostname变为bogon的原因有两点:
terminal显示hostname之前会先根据本机IP做一次rDNS反向查询,就是通过ip地址查询hostname,过程与DNS类似但相反,DNS是根据hostname查IP,例如根据域名 mimvp.com 查米扑科技的服务器IP。
rDNS(根据IP地址查询hostname)反向查询常用在traceroute以及反垃圾邮件技术中应用比较广泛。
terminal显示查询到的hostname,如果没有查询到,那么使用本机设置的hostname。
本机IP通常是局域网IP地址(保留IP地址),一般是查不到的,所以terminal一般显示的本机设置的hostname,比如 yg-mac。
上面提到,局域网IP地址一般是查不到hostname,是因为ISP提供商或者用户防火窗的屏蔽保留IP地址,因为保留IP地址在公网中没啥用,即便是没有被屏蔽掉,rDNS服务器一般也会关闭响应保留IP地址的查询请求。凡事都有例外,rDNS服务器对这种保留IP地址对查询一律返回bogon
在IPv4对地址划分中,除了公网分配在用对IP地址外,其余保留IP地址统一叫做bogon space,好像又扯远了。
原因找到了,最终我是这么解决的:
设置路由器的DNS服务器地址,8.8.8.8 和 8.8.4.4
然后重启terminal
Mac终端出现bogon的解决办法
打开终端,输入 sudo hostname your-hostname,例如:sudo hostname yg-mac,回车
输入密码,重启终端(关闭再打开终端)即生效
可以输入 sudo hostname 查看设置的主机名
$ sudo hostname
yg-mac
完整的原因和解决方案如下:
Mac 下的终端经常有时候前面的计算机名会错误的显示成 bogon(英文单词的含义是虚拟的、虚伪的)
这是因为终端会先向 DNS 请求查询当前 IP 的反向域名解析的结果,如果查询不到再显示我们设置的计算机名
而由于我们的 DNS 错误地将保留地址反向的 NS 查询结果返回了 bogon. 其中 bogon 本应该用来指虚假的 IP 地址,而非保留 IP 地址。
因此就出现了会时不时地打印 bogon 这种奇怪名字作为计算机名的现象了。
那么如何让终端只显示我们想要的计算机名而不总是从 DNS 返回结果呢?
解决方案:
在终端中执行以下命令即可(可能需要输入一次管理员密码)
sudo hostname your-desired-host-name sudo scutil --set LocalHostName $(hostname) sudo scutil --set HostName $(hostname)
例如:
sudo hostname yg-mac sudo scutil --set LocalHostName $(hostname) sudo scutil --set HostName $(hostname)
参考推荐:
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2019-08-11 05:01:33
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!