经过很长时间的摸索,折腾。终于解决了WIN10可以访问IP,但不能访问计算机名的问题。另外有才也把其他跟WIN10共享问题有关的解决方法发布到这里。在分析问题的时候,偶尔PING了一下计算机名,发现解析的IP竟然是IPV6,而看共享服务器的IPV6选项卡里面没有NETBIOS选项更别说WINS选项。所以我猜测可能IPV6的安全级别比较高,禁止了匿名共享或禁止了WINS,导致无法访问。而IPV4可以访问,证明了这个理论。
临时解决方法
通过在HOSTS里面强制将计算机名解析为IPV4,然后计算机名,搞定。
格式:IP 计算机名
1、修改注册表
打开注册表,找到键 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicescpip6Parameters ,添加类型为DWORD 名字为DisabledComponents 的项(已经有了的不用添加直接改值)。然后修改值为 20,值类型为16进制 。
2、终极解决办法:修改IPV4优先解析,经过本人测试可以禁用掉IPV6可以解决。去掉IPV6前面的勾,没有了IPV6,那么IPV4就直接优先了。
另贴上一则网上的其他解决办法:输入命令 netsh interface ipv6 show prefixpolicies,查询ipv6优先级。
请注意,IPv6地址(:: / 0)优先于IPv4地址(:: / 96,:: ffff:0:0/96),因此我们可以制定策略,使IPv6不会比任何IPv4地址有利。其中,标签表示优先级,0表示优先级最高,依次类推。
现在需要设置使::/96、::ffff:0:0/96的优先级高于::/0和::1/128,在命令行中依次设置优先级:(以下设置,除了IPV4和IPV6以外,其它有的都保持原样只是优先级换了一下。如果有没出现或多的,也加上去)
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
最后再看一下顺序,netsh interface ipv6 show prefixpolicies