V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Devin
V2EX  ›  DNS

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

  •  1
     
  •   Devin · 2017-12-19 11:16:31 +08:00 · 5383 次点击
    这是一个创建于 2291 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    第 1 条附言  ·  2017-12-19 13:16:45 +08:00

    换个问法好了:

    dns server在局域网内的PC1架设,自己的电脑PC2把dns设置改为PC1的IP

    如果A记录是这样的

    examplehost.com IN A 123.123.123.123

    则PC2直接ping examplehost.com 会显示IP地址123.123.123.123

    -----------------------------------------------------------------------------------------------------------

    如果A记录改成这样

    examplehostA IN A 123.123.123.123

    则PC2直接ping examplehost 不会显示IP地址,会提示Ping request could not find host testabc. Please check the name and try again.

    -----------------------------------------------------------------------------------------------------------

    但是在PC2的hosts文件添加

    123.123.123.123 examplehost

    PC2直接ping examplehost 会显示IP地址123.123.123.123

    第 2 条附言  ·  2017-12-19 14:09:03 +08:00
    第 3 条附言  ·  2017-12-19 14:22:32 +08:00
    https://superuser.com/questions/134057/can-ping-ip-address-and-nslookup-hostname-but-cannot-ping-hostname-temporarily-i

    这个应该是答案了

    When you use this command:

    ping icecream

    It uses WINS server since you have used icecream not icecream.my.domain.
    16 条回复    2017-12-19 14:39:19 +08:00
    b821025551b
        1
    b821025551b  
       2017-12-19 11:23:20 +08:00
    ping 是会先查找本地 host 的,但是走的 ICMP 协议,所以有时候目标服务器防火墙禁掉就 ping 不通了。
    7DLNU56W
        2
    7DLNU56W  
       2017-12-19 11:28:08 +08:00
    hosts 属于缓存,系统会优先通过 hosts 解析的,这里面查不到才会提交给递归服务器。
    nullcoder
        3
    nullcoder  
       2017-12-19 11:30:54 +08:00
    不光是 ping,本地有 host 先按 host 连
    ping 不通可能是 ICMP 被服务器禁掉的原因,你设 Host 之后能 ping 通了?
    dig 是什么?会不会有 DNS 生效时间的问题?
    Mutoo
        4
    Mutoo  
       2017-12-19 11:50:02 +08:00
    hosts 是在互联网初期还没有 DNS 的时候使用的域名 /IP 映射文件,后来随着互联网壮大,以文件方式管理太麻烦了,所以产生了 DNS 服务。但是 hosts 依然被保留使用,且优先级比 DNS 高。
    Devin
        5
    Devin  
    OP
       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
        6
    Devin  
    OP
       2017-12-19 12:03:37 +08:00
    @Devin 这里修改的是 dns server 的 A 记录
    Devin
        7
    Devin  
    OP
       2017-12-19 12:27:11 +08:00
    貌似写成 examplehost 形式的话,不会通过 dns server 解析
    局域网内同网段的主机名不会通过 dns server 解析,类似 localhost 也不会通过 dns server 解析
    ahhui
        8
    ahhui  
       2017-12-19 12:30:02 +08:00
    假如你每天要拿起办公桌上的电话,打 10020 问一下当天的天气。

    那么

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

    dig 就是你拿起话筒,转拨号盘,打 10020 看看通了没。
    957204459
        9
    957204459  
       2017-12-19 12:38:30 +08:00 via iPhone
    差不多吧
    kknd22
        10
    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
        11
    kknd22  
       2017-12-19 12:44:03 +08:00
    PS:开机后,如果 DNS 缓存服务开着,则自动把所有 hosts 文件内容加载到 DNS 缓存,这 94 为毛我都把 DNS 缓存关掉的缘故
    WillTimeCondense
        12
    WillTimeCondense  
       2017-12-19 13:35:29 +08:00 via Android
    ipconfig /flushdns
    Devin
        13
    Devin  
    OP
       2017-12-19 13:41:06 +08:00
    @WillTimeCondense 试过,无效
    julyclyde
        14
    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
        15
    goofool  
       2017-12-19 14:30:30 +08:00   ❤️ 1
    windows 上你需要 ping examplehost.
    linux 上不需要
    Devin
        16
    Devin  
    OP
       2017-12-19 14:39:19 +08:00
    @goofool 是这样没错
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3245 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 13:10 · PVG 21:10 · LAX 06:10 · JFK 09:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.