Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

我的ipv6成功启用历程 #7000

Open
ylwszb opened this issue Oct 8, 2017 · 85 comments
Open

我的ipv6成功启用历程 #7000

ylwszb opened this issue Oct 8, 2017 · 85 comments

Comments

@ylwszb
Copy link

ylwszb commented Oct 8, 2017

我的ipv6成功启用历程

昨天下午才看到的由“lon91ong”发布的“无法启用IPv6的朋友看过来”帖子,决定照此贴流程设置ipv6试试,因为以前从来没成功开启过。

经过不断的反复的尝试,最终总结流程如下:

(1)首先把本地连接IPV6地址计算后都填好

打开“http://ip-lookup.net/conversion.php”网站,把自己的ipv4的IP地址(内网最好用固定IP)填入框内,计算成ipv6地址,再把计算出来的“6 to 4 address”结果填入本地连接ipv6地址内,子网前缀长度是48,DNS填下面几个,首选Google的

google ipv6 dns:
2001:4860:4860::8888
2001:4860:4860::8844

opendns ipv6 dns:
2620:0:ccc::2
2620:0:ccd::2

HE ipv6 dns:
2001:470:20::2

都弄���点“确定”退出,这样本地连接IPV6地址就设置完了。

(2)再把下面的命令保存成ipv6.bat文件并执行(执行后如有问题请到“无法启用IPv6的朋友看过来”帖子中询问作者“lon91ong”,看看哪里出现问题)

@echo off
net start "ip helper"
netsh interface ipv6 show teredo
netsh interface teredo set state default
netsh interface 6to4 set state default
netsh interface isatap set state default
netsh interface teredo set state server=teredo.remlab.net
netsh interface ipv6 set teredo enterpriseclient
netsh int ter set state enterpriseclient
ipconfig /all
netsh int ipv6 show int
netsh int ipv6 show route
netsh int ipv6 show teredo
route DELETE ::/0
netsh int ipv6 add route ::/0 "Teredo Tunneling Pseudo-Interface"
netsh int ipv6 show prefix
netsh int ipv6 set prefix 2002::/16 30 1
netsh int ipv6 set prefix 2001::/32 5 1
route print
netsh interface ipv6 show address
netsh interface ipv6 show route
cmd

(3)每次重启计算机后在cmd中再执行一次如下命令

netsh int ipv6 add route ::/0 "Teredo Tunneling Pseudo-Interface"

(4)到“http://test-ipv6.com/”网站测试ipv6连接,“测试项目”中有关ipv6的测试都是“成功”就OK了。我是在内网win7系统下根据流程设置成功的(其他系统未测试)。下面是测试结果。

非常感谢“lon91ong”发布的“无法启用IPv6的朋友看过来”帖子,取经成功,感谢!

@ylwszb
Copy link
Author

ylwszb commented Oct 8, 2017

您在公网上的 IPv4 地址是 42.

您在公网上的 IPv6 地址是 2001:0:
您的 IPv6 服务似乎是.: Teredo

您的互联网服务提供商(ISP)看起来是 CHINATELECOM-TJ-AS-AP ASN for TIANJIN Provincial Net of CT, CN

您的IPv6连接似乎正在使用Teredo,一种使用公共网关的IPv4/IPv6转换器。您的特定teredo配置只是不得已的协议。当访问同时提供IPv4和IPv6的站点时,IPv4将被优先考虑。

To ensure the best Internet performance and connectivity, ask your ISP about native IPv6. [更多信息]

您的DNS服务器(通常由您的网络服务商提供)已经可以接入IPv6互联网了。

使用 IPv4 域名记录进行测试
成功 (2.040s) 使用 ipv4
使用 IPv6 域名记录进行测试
成功 (2.026s) 使用 ipv6 Teredo
使用双栈域名记录进行测试
成功 (2.023s) 使用 ipv4
双栈域名和大封包测试
成功 (1.986s) 使用 ipv4
不使用域名的 IPv4 测试
成功 (2.027s) 使用 ipv4
不使用域名的 IPv6 测试
成功 (1.939s) 使用 ipv6 Teredo
IPv6 大封包测试
成功 (1.976s) 使用 ipv6 Teredo
测试您 ISP 的域名服务器是否使用 IPv6
成功 (2.042s) 使用 ipv4
查找IPv4服务提供商
成功 (1.531s) 使用 ipv4 ASN 17638
查找IPv6服务提供商
成功 (1.994s) 使用 ipv6 Teredo

@ylwszb
Copy link
Author

ylwszb commented Oct 8, 2017

全部是成功状态

@ngsaam
Copy link

ngsaam commented Oct 8, 2017

表示每次设定号ipv6地址后一退出来就重新变成自动获取,这怎么办?

@ylwszb
Copy link
Author

ylwszb commented Oct 8, 2017

我也遇到过此问题,暂时只能手动在改一遍

@ylwszb
Copy link
Author

ylwszb commented Oct 8, 2017

内网一定要用固定ip,以免ipv4自动换ip时,ipv6就变成自动获取ip 或者 ipv6设置失灵

@ngsaam
Copy link

ngsaam commented Oct 8, 2017

@ylwszb 我用的是校园网,每天ipv6都会刷新,这....

@ngsaam
Copy link

ngsaam commented Oct 8, 2017

执行完了你给的ipv6.bat的命令还是不是全部成功,而且还是失败
1

@onplus
Copy link
Collaborator

onplus commented Oct 8, 2017

连在路由器192.168.1.1下面,可以固定ipv4成192.168.1.xxx

@ylwszb
Copy link
Author

ylwszb commented Oct 8, 2017

ipv6的地址是根据ipv4的ip地址换算出来的,如果ipv4的地址是自动获取,那么ipv4每变一次,ipv6就要重新换算一次。

@ylwszb
Copy link
Author

ylwszb commented Oct 8, 2017

重启计算机再试试

@ylwszb
Copy link
Author

ylwszb commented Oct 8, 2017

执行完“ipv6.bat”后,再执行一遍
netsh int ipv6 add route ::/0 "Teredo Tunneling Pseudo-Interface"

@ylwszb
Copy link
Author

ylwszb commented Oct 8, 2017

把计算机的系统防火墙关停,再试。

@ngsaam
Copy link

ngsaam commented Oct 8, 2017

@ylwszb 还是不行...

@ylwszb
Copy link
Author

ylwszb commented Oct 8, 2017

疑难问题只能回原贴问lon91ong,可能网络环境和系统环境和我的不一样,有可能就会不成功。

@ngsaam
Copy link

ngsaam commented Oct 8, 2017

@ylwszb 好吧,谢谢了

@ylwszb
Copy link
Author

ylwszb commented Oct 8, 2017

我的网络用的是天津电信
我的系统用的是32位win7系统

@ylwszb
Copy link
Author

ylwszb commented Oct 8, 2017

内网模式,路由器似乎没有ipv6功能

@ngsaam
Copy link

ngsaam commented Oct 8, 2017

卧槽,刚刚改了下ipv6地址又可以了,刚刚开成功了.....

@ngsaam
Copy link

ngsaam commented Oct 8, 2017

我系统也是win7 64位

@ngsaam
Copy link

ngsaam commented Oct 8, 2017

广东电信校园网

@ngsaam
Copy link

ngsaam commented Oct 8, 2017

我知道问题出在哪了,我一关了“本地连接 属性”后ip就不断地掉,看来是被重置了用自动获取ipv6地址了,这怎么办?

@onplus
Copy link
Collaborator

onplus commented Oct 8, 2017

teredo能不能开 和 路由器&运营商 没有什么关系

@ngsaam
Copy link

ngsaam commented Oct 8, 2017

@onplus @ylwszb
嗯,必须要用“管理员的身份运行”才行,我老忘了,然后不用固定的ipv6也可以,我换回了自动获取ipv6了,只要端口开了就行

@ngsaam
Copy link

ngsaam commented Oct 8, 2017

不过好像ip数在慢慢地掉

@ngsaam
Copy link

ngsaam commented Oct 8, 2017

不过还是谢谢大佬了,没有大佬写出来的这个我根本就摸不到

@ylwszb
Copy link
Author

ylwszb commented Oct 8, 2017

重启计算机,
把系统防火墙关了,
把ipv4的IP变成固定ip,
换算ipv4的固定ip填入ipv6内,添加子网前缀和DNS,
执行ipv6.bat后再执行一遍netsh int ipv6 add route ::/0 "Teredo Tunneling Pseudo-Interface",
到ipv6测试网站做测试,如果都是成功状态就是最完美的

@ylwszb
Copy link
Author

ylwszb commented Oct 8, 2017

自己要慢慢摸索,才能找出问题所在

@ylwszb
Copy link
Author

ylwszb commented Oct 8, 2017

Ipv6用的人多了,封的也就越严重了。

@ylwszb
Copy link
Author

ylwszb commented Oct 8, 2017

每次重启计算机都要执行一遍
netsh int ipv6 add route ::/0 "Teredo Tunneling Pseudo-Interface"

@ylwszb
Copy link
Author

ylwszb commented Oct 11, 2017

@zhl111 经测试ipv4的ip地址是不是固定的或者是自动获取,根本不会影响到ipv6的ip地址,因为ipv6的ip地址也是自动获取的。主要是看命令执行后有无报错,以及teredo服务器是否ping的通。

@ylwszb
Copy link
Author

ylwszb commented Oct 11, 2017

提示:经测试在执行完上面新的CMD批处理后,还有连不上ipv6的可能,请再次打开CMD窗口,再重新执行一遍下面的命令,成功几率会上升。

netsh int ipv6 show teredo
netsh int teredo set state default
netsh int 6to4 set state default
netsh int isatap set state default
netsh int teredo set state server=teredo.remlab.net
netsh int ipv6 set teredo enterpriseclient
netsh int ter set state enterpriseclient
ipconfig /all
netsh int ipv6 show int
netsh int ipv6 show route
netsh int ipv6 show teredo
route DELETE ::/0
netsh int ipv6 add route ::/0 "Teredo Tunneling Pseudo-Interface"
netsh int ipv6 show prefix
netsh int ipv6 set prefix 2002::/16 30 1
netsh int ipv6 set prefix 2001::/32 5 1
route print
netsh int ipv6 show address
netsh int ipv6 show teredo
netsh int ipv6 show route
netsh int ipv6 show int
netsh int ipv6 add route ::/0 "Teredo Tunneling Pseudo-Interface"

执行完两遍命令后,请把所有的浏览器全部关闭,再重新打开一个浏览器,登录ipv6测试网站(http://test-ipv6.com/),进行测试,返回的结果有可能会连上teredo,也有可能会连上6to4。如果能连上6to4,大家就可以在不运行XX的情况下直接打开Google。
拼人品的时候到了,祝大家好运。

@ych5318
Copy link

ych5318 commented Oct 11, 2017

@ylwszb
C:\WINDOWS\system32>netsh int ipv6 add route ::/0 "Teredo Tunneling Pseudo-Interface"
文件名、目录名或卷标语法不正确。
执行这条命令时出现错误 是什么问题呢 win10 专业版

@chenmiao1991
Copy link

根据楼主启发,linux下也成功了,给需要的人参考
https://chenmiao2016.github.io/2017/10/12/fedora%E5%BC%80%E5%90%AFIPV6/

@tylerrrkd
Copy link

成功了。谢谢lz

@ylwszb
Copy link
Author

ylwszb commented Oct 12, 2017

@ych5318
经测试,因win10与win7系统的差异,执行部分命令时是不支持的。
可咨询 “无法启用IPv6的朋友看过来 #6918” 帖子的作者 “lon91ong”

@ych5318
Copy link

ych5318 commented Oct 12, 2017

@ylwszb 本人小白 我理解了下Teredo Tunneling Pseudo-Interface 是不是应该改成特定的东西比如teredo.ipv6.microsoft.com ?

@ylwszb
Copy link
Author

ylwszb commented Oct 14, 2017

@ych5318

有些Teredo是ping不通的,ping不通就用不了,现在还能ping通也能用的有以下几个,试试吧……

netsh interface teredo set state server=teredo.remlab.net
netsh interface teredo set state server=teredo-debian.remlab.net
netsh interface teredo set state server=teredo.trex.fi

@ylwszb
Copy link
Author

ylwszb commented Oct 15, 2017

排错指南:

10

如在执行 “netsh int ipv6 add route ::/0 "Teredo Tunneling Pseudo-Interface"” 命令后,出现 “文件名、目录名或卷标语法不正确。” 提示的,请检查Teredo隧道适配���是否出现了问题,修复命令如下:

netsh interface Teredo set state disable
netsh interface Teredo set state type=default
netsh interface Teredo set state default

@ngsaam
Copy link

ngsaam commented Oct 16, 2017

由于学校问题,我用了无线上网方式,但又不行了,于是找回来这贴发现有新的楼主放了新的方式,试了下不行。
我看了下,明明自己的网络中心里面都能看到自己的ipv6地址了,但是就是死活连不上,ipv6测试测了几次最后出现了我的ipv6设置有问题的字样了,这怎么办...

@ylwszb
Copy link
Author

ylwszb commented Oct 16, 2017

@ngsaam

到这个网站做下测试,http://test-ipv6.com/
然后把截图发一下,我看看

@ngsaam
Copy link

ngsaam commented Oct 18, 2017

@ylwszb
Copy link
Author

ylwszb commented Oct 18, 2017

@ngsaam

很明显是Teredo或6to4网络没连上,Teredo适配器是否正常?可以修复一下:#7000 (comment)

我看你说的是在学校上网,学校用的是教育网吗?如果是教育网大部分都自带IPV6,不应该连不上。
还有,使用的系统是什么系统,是WIN7吗?在执行批处理时是否有报错信息等等,都要逐一排查。
执行批处理后的正确显示,请参考:#7241 (comment)

如果有问题再发截图过来,继续帮你分析。

@ngsaam
Copy link

ngsaam commented Oct 18, 2017

执行ipv6的最新的那行代码吗?@ylwszb

@ngsaam
Copy link

ngsaam commented Oct 18, 2017

@echo off
net start "ip helper"
netsh int ipv6 reset
netsh int ipv6 show teredo
netsh int teredo set state default
netsh int 6to4 set state default
netsh int isatap set state default
netsh int teredo set state server=teredo.remlab.net
netsh int ipv6 set teredo enterpriseclient
netsh int ter set state enterpriseclient
ipconfig /all
netsh int ipv6 show int
netsh int ipv6 show route
netsh int ipv6 show teredo
route DELETE ::/0
netsh int ipv6 add route ::/0 "Teredo Tunneling Pseudo-Interface"
netsh int ipv6 show prefix
netsh int ipv6 set prefix 2002::/16 30 1
netsh int ipv6 set prefix 2001::/32 5 1
route print
netsh int ipv6 show address
netsh int ipv6 show teredo
netsh int ipv6 show route
netsh int ipv6 show int
netsh int ipv6 add route ::/0 "Teredo Tunneling Pseudo-Interface"
Reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Dnscache\Parameters /v AddrConfigControl /t REG_DWORD /d 0
cmd

用了这行代码全部成功了

@ngsaam
Copy link

ngsaam commented Oct 18, 2017

2
不,差一个...

@ngsaam
Copy link

ngsaam commented Oct 18, 2017

default
不过能上就行,谢谢你了,又帮我解决了一次难题,真的是太感谢了,文科生对这种东西真的无从下手,只能靠你们专业的,谢谢!

@ylwszb
Copy link
Author

ylwszb commented Oct 18, 2017

@ngsaam

能用就行!

@dancorpse
Copy link

@ylwszb 执行代码的时候 netsh int ipv6 add route ::/0 "Teredo Tunneling Pseudo-Interface" 下面显示 找不到元素。我设备管理器里的 Teredo Tunneling Pseudo-Interface就是黄色感叹号,另还有一个Microsoft ISATAP Adapter也是黄色感叹号,组策略已经启用ISATAP状态,Teredo默认限定,Teredo服务器名称,Teredo名称。

@ylwszb
Copy link
Author

ylwszb commented Dec 5, 2017

@dancorpse

Teredo适配器:
(1)把设备管理器中的所有Teredo适配器全部删除,重启电脑,自动识别驱动,自动重新安装。
(2)手动安装Teredo适配器(打开有点慢):#7241 (comment)

IPV6隧道:
IPV6的隧道有Teredo、6to4、isatap,不知道你用哪个?
如果是内网就用Teredo,外网可考虑用6to4,教育网就用isatap。
如果用Teredo,就请把6to4和isatap停用,用哪个开哪个,三个隧道不要同时都开,互相会有影响。

@dancorpse
Copy link

@ylwszb 拆装很多遍还是没用,我后来改了一个注册表值,HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TCPIP6\Parameters 把 DisabledComponents 的值改为0 ,就正常了,这通折腾,顺便问一下,看到有人说teredo有好几个服务器,一个不行就改另一个,是如何改的?直接在gpedit里面的teredo服务器输入还是需要用到cmd命令?

@dancorpse
Copy link

问题出在xx-net ipv6_tunnel 文件夹下面的enable ipv6批处理文件! 我一运行它,然后重启电脑,teredo适配器就会出现黄色感叹号!然后我又去改注册表,才恢复适配器的。有人碰到过同样情况么?

@ghost
Copy link

ghost commented Dec 5, 2017

#8620 tertdo.bat自动选用更好的服务器
用3.7.11版的enable ipv6批处理

@ylwszb
Copy link
Author

ylwszb commented Dec 13, 2017

@dancorpse

修改注册表是一方面。批处理文件中有很多命令,其实在不开启6to4和isatap的情况下,要运行的命令其实很少。批处理文件中的命令不用全部都执行。

net start "ip helper"
netsh int teredo set state server=teredo.trex.fi
netsh int ipv6 set teredo client teredo.trex.fi
netsh int ipv6 set teredo enterpriseclient
route DELETE ::/0
netsh int ipv6 add route ::/0 "Teredo Tunneling Pseudo-Interface"

以上是开启teredo隧道必须要执行的命令。

然后查一下teredo状态:

netsh int ipv6 show teredo
netsh int ipv6 show route
netsh int ipv6 show int
netsh int ipv6 show address

可能还需要修复一下网络:

ipconfig /flushdns
ipconfig /registerdns
netsh winsock reset
netsh int ip reset
netsh int ipv6 reset

运行命令一定要用“管理员身份运行”。

选择teredo服务器,可以用“ #8620 tertdo.bat自动选用更好的服务器 ”

@ghost
Copy link

ghost commented Dec 13, 2017

#8915 tertdo.bat自动或手动优选服务器,文件解压放在 XX-Net 程序的根目录
#8961 保持运行某批处理,或许能更稳定(不再偶尔中断)?

@6tu-git
Copy link

6tu-git commented Apr 16, 2018

连接 teredo 就需要这几条命令,先连接到 服务器,然后用参数 enterpriseclient 指定为内网,设置ipv6的DNS就完事了。 chrome 44 版本后对teredo 不支持

netsh interface teredo set state default
netsh interface teredo set state server=teredo.remlab.net
netsh interface ipv6 set teredo enterpriseclient

route add ::/0 "Teredo Tunneling Pseudo-Interface"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet