在 hosts 文件里设置主机名和 IP 地址,与在 dns server 设置域名和 A 记录,二者有什么不一样?

2017-12-19 11:16:31 +08:00
 Devin

比如说在自己电脑 host 如下:
202.xxx.xxx.xxx examplehost

在 dns server 设置 A 记录如下:
examplehost IN A 202.xxx.xxx.xxx

如果只设置后者,则在本机 ping 不通,但是 dig 可以出来正确结果,请问二者有什么不一样?

5506 次点击
所在节点    DNS
16 条回复
b821025551b
2017-12-19 11:23:20 +08:00
ping 是会先查找本地 host 的,但是走的 ICMP 协议,所以有时候目标服务器防火墙禁掉就 ping 不通了。
7DLNU56W
2017-12-19 11:28:08 +08:00
hosts 属于缓存,系统会优先通过 hosts 解析的,这里面查不到才会提交给递归服务器。
nullcoder
2017-12-19 11:30:54 +08:00
不光是 ping,本地有 host 先按 host 连
ping 不通可能是 ICMP 被服务器禁掉的原因,你设 Host 之后能 ping 通了?
dig 是什么?会不会有 DNS 生效时间的问题?
Mutoo
2017-12-19 11:50:02 +08:00
hosts 是在互联网初期还没有 DNS 的时候使用的域名 /IP 映射文件,后来随着互联网壮大,以文件方式管理太麻烦了,所以产生了 DNS 服务。但是 hosts 依然被保留使用,且优先级比 DNS 高。
Devin
2017-12-19 12:02:01 +08:00
@b821025551b ping 主机名的时候一般会显示 IP 地址,但是这里提示 Ping request could not find host testabc. Please check the name and try again.

@nullcoder 是的这添加 hosts 后可以 ping 通,dig 是命令

我把主机名改成这样形式的 examplehost.com ,ping 的时候会显示 IP 地址,原本这种形式的 examplehost 不行,奇怪
Devin
2017-12-19 12:03:37 +08:00
@Devin 这里修改的是 dns server 的 A 记录
Devin
2017-12-19 12:27:11 +08:00
貌似写成 examplehost 形式的话,不会通过 dns server 解析
局域网内同网段的主机名不会通过 dns server 解析,类似 localhost 也不会通过 dns server 解析
0TSH60F7J2rVkg8t
2017-12-19 12:30:02 +08:00
假如你每天要拿起办公桌上的电话,打 10020 问一下当天的天气。

那么

hosts 就是 ,你办公桌旁边有张纸条,写了“今天晴天”。

dig 就是你拿起话筒,转拨号盘,打 10020 看看通了没。
957204459
2017-12-19 12:38:30 +08:00
差不多吧
kknd22
2017-12-19 12:43:03 +08:00
DNS 解析过程,可以搜一下,网上有,大概步骤
1 )先检查是不是本机
2 )检查浏览器缓存
3 )检查 DNS 缓存
4 )检查 hosts
5 )向主 DNS 服务器发起请求
6 )主 DNS 无响应则向副 DNS 服务器,如主 DNS 有响应则跳过该步骤
7 )两 DNS 服务器都不响应则检查 NETBIOS 缓存
8 ) WINS 服务器解析
9 )局域网广播
10 ) LMHOSTS 文件
kknd22
2017-12-19 12:44:03 +08:00
PS:开机后,如果 DNS 缓存服务开着,则自动把所有 hosts 文件内容加载到 DNS 缓存,这 94 为毛我都把 DNS 缓存关掉的缘故
WillTimeCondense
2017-12-19 13:35:29 +08:00
ipconfig /flushdns
Devin
2017-12-19 13:41:06 +08:00
@WillTimeCondense 试过,无效
julyclyde
2017-12-19 13:55:22 +08:00
/etc/hosts 里边
x.x.x.x Ahost Bhost
然后
ping x.x.x.x 的时候会显示 Pinging Ahost
goofool
2017-12-19 14:30:30 +08:00
windows 上你需要 ping examplehost.
linux 上不需要
Devin
2017-12-19 14:39:19 +08:00
@goofool 是这样没错

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/415919

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX