• 关于windows服务器修改hosts文件不生效的问题原因分析


    今天笔者修改一台windows Server服务器的C:\Windows\System32\drivers\etc\hosts文件

    新添加了几条记录-(当然不是手打,也是从其他地方复制过去的),如下:

    172.16.1.211  ssm.cn-north-1.amazonaws.com.cn
    172.16.1.212  ssmmessages.cn-north-1.amazonaws.com.cn
    172.16.1.213  ec2messages.cn-north-1.amazonaws.com.cn

    但添加后,在cmd中使用ping命令测试,却总还是解析到了公有IP上,也就是说根据dns进行解析的,根本没有读hosts文件解析

    C:\Users\qq5201351>ping -n 2 ssm.cn-north-1.amazonaws.com.cn
    
    Pinging ssm.cn-north-1.amazonaws.com.cn [54.222.20.96] with 32 bytes of data:
    Reply from 54.222.20.96: bytes=32 time=33ms TTL=238
    Reply from 54.222.20.96: bytes=32 time=36ms TTL=238
    
    Ping statistics for 54.222.20.96:
        Packets: Sent = 2, Received = 2, Lost = 0 (0% loss),
    Approximate round trip times in milli-seconds:
        Minimum = 33ms, Maximum = 36ms, Average = 34ms
    
    C:\Users\qq5201351>

    那就有点奇怪了,按理说对于域名解析,本地hosts的优先级会高于dns的呢、怀疑有缓存

    于是使用ipconfig /flushdns清除dns缓存后,效果依然一样

    又静下来想了一下,难道复制后,有特殊字符,于是看了一下中间两个空格的十六进编码0Xc2a0

    去UTF-8 encoding table and Unicode characters中看了一下、这两个组合在一起即是utf-8中特殊的NO-BREAK SPACE

    翻译过来就是非中断空格,看来这种特殊的空格影响到了windows对hosts条目的读取,于是改成标准的0X20空格

    也就是正常的敲几个空格即可,最后再次解析,果然正常的先读取了hosts中的条目~

     

    最后总结一下:如果遇到上面的问题,可以通过如下方法快否的定位和解决

    1、直接删除空格,手工输入1个或者多个空格

    2、可以将文本复制到notepad++中,然后显示全部字符,正常的空格会显示成一个点. 如果是0xC2A0则依然会显示成空格

    3、可以通过xxd或者其他notepad++下的HexEditor进行进行十六进制编码查看

    尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/16732270.html

  • 相关阅读:
    CentOS创建vsftp进行读写操作的简单方法
    [知乎]经典古诗词
    js仿手机端九宫格登录功能
    Android Studio 小技巧合集
    Android MVPR 架构模式
    剖析OkHttp缓存机制
    Java Observable 模式
    使用Rxjava缓存请求
    ThreadPoolExecutor使用和思考(上)-线程池大小设置与BlockingQueue的三种实现区别
    ThreadPoolExecutor使用介绍
  • 原文地址:https://www.cnblogs.com/5201351/p/16732270.html
Copyright © 2020-2023  润新知