带着mac去了外地,打开terminal准备连接公司的开发机。这时发现terminal上显示的hostname被篡改为bogon。
bogon是谁,难道有人动了我的电脑,回想一下没有啊。难道有吊炸天的hacker黑了我的电脑然后改了一下hostname?也是不肯能,他有那功夫干这个也是无聊透顶。
经过一番search,造成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服务器地址,
8.8.8.8
和8.8.4.4
。然后重启terminal。