stannard 发表于 2011-6-10 17:00:31

同一网络内为什么XP可以直接上而win7不行?

在同一内网里,一台机子装XP,另一台装64位的WIN7,两台机子都通过teredo隧道方式接入IPv6,都得到了IPv6地址,都将DNS设置成了HE的DNS。装XP的机子没有对hosts进行任何修改,便可以直接访问IPv6网络,可以打开ipv6.google.com,也能使用sixxs.org。但是,装Win7的机子能ping通ipv6.google.com,却无法直接打页面,修改了hosts也不行,还是无法访问ipv6.google.com和sixxs.org。可是修改了hosts后,却能访问youtube,这说明IPv6网络是通的,但是为什么不能访问ipv6.google.com和sixxs.org呢?为什么两台机子用同一个路由上网,只是操作系统不一样,XP没有任何问题而win7就不行?亟待高手帮助!!!

满天星 发表于 2011-6-10 23:36:48

如果win7的teredo可以访问youtube的话则说明ipv6连接是没有问题的了,如果使用相同的hosts文件,则只能说明是其它问题,比如防火墙(但又可以打开youtube,这个可能性较小),或者网络连接速度较慢,导致超时,但youtube也属于google的服务器,比较诡异……
如果方便的话,你将xp与win7二台机器访问google的过程抓包,以及xp与win7下对应的ipconfig
/all信息和netsh interface ipv6 show route信息一起发给我看看……
地址是admin^ipv6bbs.cn(将^替换为@,比较被搜集为垃圾邮件地址)

满天星 发表于 2011-6-10 23:36:53

如果win7的teredo可以访问youtube的话则说明ipv6连接是没有问题的了,如果使用相同的hosts文件,则只能说明是其它问题,比如防火墙(但又可以打开youtube,这个可能性较小),或者网络连接速度较慢,导致超时,但youtube也属于google的服务器,比较诡异……
如果方便的话,你将xp与win7二台机器访问google的过程抓包,以及xp与win7下对应的ipconfig
/all信息和netsh interface ipv6 show route信息一起发给我看看……
地址是admin^ipv6bbs.cn(将^替换为@,比较被搜集为垃圾邮件地址)

stannard 发表于 2011-6-11 10:51:59

谢谢满天星的热情帮助。我按照http://bbs.ipv6home.cn/viewthread.php?tid=19454里的方法,已经可以打开ipv6.google.com了。

不过,原帖中第二步命令“set route ::/0 interface=12”(我的Teredo Tunneling Pseudo-Interface ID号是12),运行时总是提示“元素不存在”,无法给Teredo Tunneling Pseudo-Interface设定::/0的路由,所以我改成运行“add route ::/0 interface=12”,这样就添加了::/0的路由,ipv6.google.com能访问了。

只是还有问题,正如原帖里有一个网友所说,这样添加的::/0路由一重启系统就没了,还得手动重新添加。有什么办法能让它永久保存呢?

满天星 发表于 2011-6-11 19:23:03

貌似这个本身就是Microsoft操作系统的问题,采用这种这种方式是一个手工的解决办法……
原理大概如下:
1.手工在网卡上设置一个IPv6地址,操作系统会认为IPv6网络可用的,因此IPv6优先级将高于IPv4;
2.手工修改::/0的默认路由至Teredo隧道中;
3.根据需要调整一下IPv6前缀的优先级策略,就是netsh interface ipv6 set prefix 命令进行调整

默认路由之所以重启后就没了,应该是被新产生的路由给覆盖导致的,这个估计不大好永久保存……而且部分ADSL拨号的用户,公网IPv4地址也是会变的!
简单的就直接写个BAT文件,开机自动运行……

stannard 发表于 2011-6-13 13:13:43

感谢满天星的帮助。因为每次重启都得添加路由,只好写了个bat,开机时自动添加一个::/0路由给Teredo Tunneling Pseudo-Interface。把这个bat放在本地组策略的启动/关机中,可以解决用管理员权限运行的问题。现在可以正常返回ipv6.google.com的地址了。
方法大致为:
1、将内网的IPv4地址换算成IPv6地址,添加在本地网卡中。子网前缀为48,DNS用HE的。
2、用netsh int ipv6 add route ::/0 interface=(ID号)给Teredo Tunneling Pseudo-Interface添加一个路由。
3、用netsh interface ipv6 set prefix调整优先级。
4、写个bat文件,把bat存放的路径添加至本地组策略“计算机配置——Windows设置——脚本(启动/关机)”中。bat文件就一句:netsh int ipv6 add route ::/0 interface=(ID号)

满天星 发表于 2011-6-13 21:55:32

不错,感谢分享经验,希望有其他和你类似需求的人能够根据你的总结,来解决问题!
不过也仅仅适用于理解原理和流程的朋友们,新手们估计还得问了……

stannard 发表于 2011-6-17 17:26:40

又出问题啦!这两天手碎,没事重装了一遍系统,之后按照上述步骤配置了IPv6。现在IE和Chrome全都正常,可以访问ipv6.google.com,可是,可是,火狐竟然打不开页面了!ping了一下,完全没问题,能ping通,路由也是::/0,但是火狐就是无法访问。重装系统之前,完全没问题的,怎么重装了一次win7之后,火狐竟然不行了?版本和以前的都一样啊,都是64位win7和4.0.1的火狐。有人说,要设置火狐的network.dns.disableIPv6和network.dns.ipv4OnlyDomains两个参数。但是network.dns.disableIPv6无论是falseg还是true都无效,network.dns.ipv4OnlyDomains不知道该怎么设置。这个问题真让人头疼啊,难道说要想用ipv6就不能装win7吗?win7下使用ipv6怎么总是出这些莫名其妙的问题呢?

满天星 发表于 2011-6-17 19:17:20

这个需要多折腾的,只有善于折腾才能发现问题,学到经验嘛!
Win7的IPv6支持绝对比XP好的,只是你没有折腾到解决问题的方法上吧……
我也不晓得你到底在玩啥,IE和Chrome都正常,而FF不正常,则只能说明是FF设置的问题了,或者是插件……

stannard 发表于 2011-6-20 12:49:24

找到问题根源了,答案绝对出人意料。Firefox打不开ipv6.google.com的原因竟然是OneClick YonTube Downloader这个扩展的缘故,禁用了它一切都OK了。这个扩展是随着下载工具Orbit一起安装的,用了这么长时间也没有出现任何状况。不知道为什么最近的一次升级后,就让火狐4.0打不开IPv6的页面了。如果用3.6版的火狐,还会弹出TypeError: Components.classes is undefined的错误提示。
页: [1] 2
查看完整版本: 同一网络内为什么XP可以直接上而win7不行?