我在 Windows 7 上有一个 hosts 文件,其中包含一个 IP 地址,后面跟着 10 个不同的主机名别名。我可以 ping 前九个,但如果我尝试 ping 第十个,我会得到:
Ping request could not find host tenth. Please check the name and try again.
我尝试切换第九和第十个条目,以防它与特定主机名有关,在每种情况下,都是列出的第十个我无法联系的条目。
一行中列出的主机名数量是否有限制?如果有,是否有办法绕过此限制?
编辑:hosts文件此行的长度小于150个字符。
答案1
Windows 允许每行最多 9 个别名。如需更多,请添加另一行。
之前(h10
且未h11
解析):
127.0.0.1 h01 h02 h03 h04 h05 h06 h07 h08 h09 h10 h11
之后 (h10
并h11
解决):
127.0.0.1 h01 h02 h03 h04 h05 h06 h07 h08 h09
127.0.0.1 h10 h11
我在 Windows 7、Windows 10 和 Windows Server 2008 R2 上确认了这种行为和解决方法。
虽然我找不到微软的引文,但以下文章声称第三方实用程序 Hosts Optimizer 会“将最多九个主机名放在一行中,如果它们指向同一个 IP 地址”。
http://www.ghacks.net/2010/05/23/windows-hosts-file-optimizer
答案2
微软似乎对 hosts 文件的处理不一致。虽然你无法 ping 超过第九个 hosts 项,但你仍然可以在浏览器中导航到超过第十个 hosts 项的 hosts。
找到相关文档:https://technet.microsoft.com/en-us/library/bb727005.aspx?f=255&MSPPError=-2147217396#EDAA
您只需添加额外的行即可。
127.0.0.1 myreallylonghostname
127.0.0.1 myotherreallylonghostname