s20*_*der 1 linux dns hostname centos hosts
我引用以下问题是因为它相似但不相同:
在我的 CentOS 7 系统上,我在更改主机名后从“hostname -i”得到一个奇怪的 IP 地址,我想弄清楚为什么会这样。
我使用以下命令更改主机名:
# hostnamectl set-hostname saturn
# systemctl restart systemd-hostnamed
Run Code Online (Sandbox Code Playgroud)
我的 /etc/hosts 文件显示:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
Run Code Online (Sandbox Code Playgroud)
以下在我的 /etc/nsswitch.conf 文件中:
hosts: files dns myhostname
Run Code Online (Sandbox Code Playgroud)
我的服务器 IP 地址是 192.168.1.13,但是“hostname -i”返回了一个奇怪的 IP 地址:
# hostname -i
92.242.140.21
Run Code Online (Sandbox Code Playgroud)
但是,“主机名 -I”很好:
# hostname -I
192.168.1.13
Run Code Online (Sandbox Code Playgroud)
为什么主机名 -i 返回 92.242.140.21。它是由 DNS 分配给我的系统的随机动态 IP 吗?有人可以解释一下吗?谢谢!
与hostname -I
仅列出所有网络接口上所有已配置 IP 地址的hostname -i
命令不同,该命令执行名称解析(请参阅hostname
手册页)。
由于无法使用该/etc/hosts
文件解析新分配的主机名,因此运行hostname -i
将导致系统的名称解析器生成对外部 DNS 服务器的 DNS 查询。在这个服务器上(我认为它属于你的 ISP),这个查询是空的(NXDOMAIN 结果:即不存在的域)。由于您的 ISP 已与 Barefruit 合作,因此您不会收到 NXDOMAIN 结果,而是收到一个 Barefruit IP 地址来响应您的查询:
$ dig +short -x 92.242.140.21
unallocated.barefruit.co.uk.
Run Code Online (Sandbox Code Playgroud)
我想将您的新主机名添加到您的/etc/hosts
文件将使奇怪的 Barefruit IP 地址在您运行hostname -i
命令时消失。如果没有,您可以忽略此答案:)
只是为了它的乐趣:使用该dig
命令,您可以询问不同的名称服务器。要查看响应的差异,您可以运行以下两个命令:
$ dig saturn
$ dig @8.8.8.8 saturn
Run Code Online (Sandbox Code Playgroud)
第一个导致通过系统预配置的 DNS 服务器进行名称解析,并可能导致返回 Barefruit IP 地址。第二个命令要求Google 公共 DNS解析名称,并返回 NXDOMAIN 状态。或不?
如果是这样,您的 ISP 可能参与了DNS 劫持的可疑做法,您可能想弄清楚是否有选择退出的可能性,或更改您的 DNS 服务提供商。
归档时间: |
|
查看次数: |
4927 次 |
最近记录: |