[TOC]

概述

莫名其妙hostname变成了bogon,如图:

经过一番search,造成terminal显示的hostname变为bogon的原因有两点:

terminal显示hostname之前会先根据本机IP做一次rDNS反向查询,就是通过ip地址查询hostname,过程与DNS类似。rDNS反向查询常用在traceroute以及反垃圾邮件技术中,terminal显示查询到的hostname,如果没有查询到,那么使用本机设置的hostname。本机IP通常是局域网IP地址(保留IP地址),一般是查不到的,所以terminal一般显示的本机设置的hostname,比如FreweniMacBook。

上面提到,局域网IP地址一般是查不到hostname,是因为ISP提供商或者用户防火窗的屏蔽保留IP地址,因为保留IP地址在公网中没啥用,即便是没有被屏蔽掉,rDNS服务器一般也会关闭响应保留IP地址的查询请求。凡事都有例外,rDNS服务器对这种保留IP地址对查询一律返回bogon。在ipv4对地址划分中,除了公网分配在用对IP地址外,其余保留IP地址统一叫做bogon space。

一:解决办法1

设置路由器的DNS服务器地址,8.8.8.8和8.8.4.4。然后重启terminal。

补充:如果修改不了DNS服务器,那么直接修改Hostname即可

二:解决办法2

Unix 的命令行是强大的,因此,主机名与计算机名的修改也可以通过命令行修改

使用命令如下

1
2
$ sudo scutil --set ComputerName <FreweniMacBook:你想要的计算机名称>
$ sudo scutil --set HostName <FreweniMacBook:你想要的主机名称>

用命令查看,本地计算机名,和主机名

1
2
3
4
5
6
Last login: Tue Jun  2 11:35:55 on ttys000
frewen@FreweniMacBook  ~  scutil --get ComputerName
FreweniMacBook
frewen@FreweniMacBook  ~  scutil --get HostName
FreweniMacBook
frewen@FreweniMacBook  ~ 