这个问题很早就发现了,但一直没当回事,今天有空了就来看看它。
第一意识是先翻译bogon是什么意思:
bogon [‘bɔɡən]
n. 虚伪的人;沼泽林
这是不是有什么不对的地方?
于是搜索出现这个问题的原因,找到了以下几种解释:
这是因为终端会先向 DNS 请求查询当前 IP 的反向域名解析的结果,如果查询不到再显示我们设置的计算机名。而由于我们的 DNS 错误地将保留地址反向的 NS 查询结果返回了 bogon. 其中 bogon 本应该用来指虚假的 IP 地址,而非保留 IP 地址。因此就出现了会时不时地打印 bogon 这种奇怪名字作为计算机名的现象了
造成terminal显示的hostname变为bogon的原因有两点:terminal显示hostname之前会先根据本机IP做一次rDNS反向查询,就是通过ip地址查询hostname,过程与DNS类似。rDNS反向查询常用在traceroute以及反垃圾邮件技术中…有点扯远了。terminal显示查询到的hostname,如果没有查询到,那么使用本机设置的hostname。本机IP通常是局域网IP地址(保留IP地址),一般是查不到的,所以terminal一般显示的本机设置的hostname,比如laowang’s-macbook。
上面提到,局域网IP地址一般是查不到hostname,是因为ISP提供商或者用户防火窗的屏蔽保留IP地址,因为保留IP地址在公网中没啥用,即便是没有被屏蔽掉,rDNS服务器一般也会关闭响应保留IP地址的查询请求。凡事都有例外,rDNS服务器对这种保留IP地址对查询一律返回bogon。在ipv4对地址划分中,除了公网分配在用对IP地址外,其余保留IP地址统一叫做bogon space,好像又扯远了。
是终端会先向DNS服务器查询本地ip的方向解析结果,如果查询不到再显示计算机名。在某些网络环境中,而由于我们的 DNS为:1,私有地址如10,172.16-32,192.168…..
2,还未正式分配出去的地址而DNS服务器将反向解析的 DNS 查询结果(虚拟的ip)返回给主机,而这个虚拟的ip对应的主机名为bogon。因此就出现了会时不时地打印 bogon 这种奇怪名字作为计算机名的现象了。
通过上面几位高人的说明,发现译文为虚伪的人还是很有道理的。不知道大家懂了没有,反正我是差不多懂了。
那接下来就来修正此问题吧。
1、修改路由器的DNS服务器地址,8.8.8.8
和8.8.4.4
。然后重启Terminal终端。
2、在终端进行设置 sudo hostname yourname,然后重启Terminal终端。
重启之后,这时候终端显示已如你所愿。