解决win10系统中ping localhost被解析为 ::1的问题

ping 127.0.0.1 是有返回的,而ping localhost 返回的却是::1 。遇到有些程序需要使用本地ip127.0.0.1时。就会发现获取到的地址不对。这里介绍下怎么修改!

网上说的修改host文件,和修改注册表,试了试,没改动成功!

这里介绍一下修改IPV6的优先级!

1、按win徽标+X(或在徽标键上右键),打开管理员命令行窗口(就是用管理员权限打开cmd)

2、输入命令 netsh interface ipv6 show prefixpolicies 查看IPv6优先级

请注意,以上可以看出,IPv6的优先级高于IPv4,即IPv6地址(::/0)优先于IPv4地址(::/96,::ffff:0:0/96),因此,我们可以制定策略,使IPv6不会比任何IPv4地址有利。其中,标签表示优先级,0表示优先级最高,依次类推。

🔉 番外:IPv6特殊用途地址

::/0,默认路由条目,不用于寻址;
::/128,未指定地址, 可作为源IP地址使用;
::1/128,IPv6主机回送地址,不用于发送出本地主机的数据中;
::ffff:0:0/96,IPv4映射地址, 这种地址不会出现在分组头部,只用于内部主机;
::{ipv4-address}/96,IPv4兼容地址,已过时,未使用;
2001::32,Teredo地址;
2001:10::/28,ORCHI(覆盖可路由加密散列标识符),这种地址不会出现在公共的Internet中;
2001:db8::32,用于文档和实例的地址范围,这种地址不会出现在公共的Internet中;
2002::16,6to4隧道中继的6to4地址;
3ffe::/16,用于6bone实验,已过时,未使用;
5f00::/16,用于6bone实验, 已过时,未使用;
fc00::/7,唯一的本地单播地址,不用于全球性的Inrternet;
fe80::/10,链路本地单播地址;
ff00::/8,IPv6组播地址, 仅为目的地址使用。

 

————————————————

::/128   ——即0:0:0:0:0:0:0:0,只能作为尚未获得正式地址的主机的源地址,不能作为目的地址,不能分配给真实的网络接口

::1/128  ——即0:0:0:0:0:0:0:1,回环地址,相当于ipv4中的localhost(127.0.0.1),ping locahost可得到此地址

3、设置优先级

现在需要设置使::/96::ffff:0:0/96的优先级高于::/0::1/128,在命令行中依次设置优先级

netsh int ipv6 set prefix ::/96 50 0
netsh int ipv6 set prefix ::ffff:0:0/96 40 1
netsh int ipv6 set prefix 2002::/16 35 2
netsh int ipv6 set prefix 2001::/32 30 3
netsh int ipv6 set prefix ::1/128 10 4
netsh int ipv6 set prefix ::/0 5 5
netsh int ipv6 set prefix fc00::/7 3 13
netsh int ipv6 set prefix fec0::/10 1 11
netsh int ipv6 set prefix 3ffe::/16 1 12

 

4、查看设置后的优先级

完了后输入命令netsh interface ipv6 show prefixpolicies查看优先级

可以看到,此时::/96,::ffff:0:0/96优先级高于::/0了

5、ping一下localhost

 

OK,配置完成!

未经允许不得转载:阿藏博客 » 解决win10系统中ping localhost被解析为 ::1的问题