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

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

  •  1
     
  •   Devin · 208 天前 · 1908 次点击
    这是一个创建于 208 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    第 1 条附言  ·  208 天前

    换个问法好了:

    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

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

    那么

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

    dig 就是你拿起话筒,转拨号盘,打 10020 看看通了没。
        9
    957204459   208 天前 via iPhone
    差不多吧
        10
    kknd22   208 天前
    DNS 解析过程,可以搜一下,网上有,大概步骤
    1 )先检查是不是本机
    2 )检查浏览器缓存
    3 )检查 DNS 缓存
    4 )检查 hosts
    5 )向主 DNS 服务器发起请求
    6 )主 DNS 无响应则向副 DNS 服务器,如主 DNS 有响应则跳过该步骤
    7 )两 DNS 服务器都不响应则检查 NETBIOS 缓存
    8 ) WINS 服务器解析
    9 )局域网广播
    10 ) LMHOSTS 文件
        11
    kknd22   208 天前
    PS:开机后,如果 DNS 缓存服务开着,则自动把所有 hosts 文件内容加载到 DNS 缓存,这 94 为毛我都把 DNS 缓存关掉的缘故
        12
    WillTimeCondense   208 天前 via Android
    ipconfig /flushdns
        13
    Devin   208 天前
    @WillTimeCondense 试过,无效
        14
    julyclyde   208 天前
    /etc/hosts 里边
    x.x.x.x Ahost Bhost
    然后
    ping x.x.x.x 的时候会显示 Pinging Ahost
        15
    goofool   208 天前   ♥ 1
    windows 上你需要 ping examplehost.
    linux 上不需要
        16
    Devin   208 天前
    @goofool 是这样没错
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   鸣谢   ·   实用小工具   ·   693 人在线   最高记录 3541   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 18ms · UTC 19:00 · PVG 03:00 · LAX 12:00 · JFK 15:00
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1