第一次介绍的HE的隧道代理(tunnel broker)不能用于NAT环境(通俗点讲就是内网),第二次介绍的gogoNET的服务(以及这个和这个)又速度很慢,难道只能放弃了吗?
其实,在第一篇里提到过微软的Teredo,本质上这也是一种隧道的方式,虽然微软不推荐,但是现在找到一种免费的、能穿透NAT的、速度又比较快的IPv6接入方式实在是太难了,所以还是说说吧!
Windows Vista/Windows 7
既然Teredo是微软搞的技术,微软自然很热衷地支持了,在Windows Vista/7里,不用作任何配置,默认就是启用的。你可以在命令行下输入ipconfig /all
看看,是否类似如下内容:
隧道适配器 本地连接*:
连接特定的 DNS 后缀 . . . . . . . :
描述. . . . . . . . . . . . . . . : Teredo Tunneling Pseudo-Interface
物理地址. . . . . . . . . . . . . : 00-00-00-00-00-00-00-E0
DHCP 已启用 . . . . . . . . . . . : 否
自动配置已启用. . . . . . . . . . : 是
IPv6 地址 . . . . . . . . . . . . : 2001:0:4137:9e76:2d:40ff:c275:2cbd(首选)
本地链接 IPv6 地址. . . . . . . . : fe80::2d:40ff:c275:2cbd%12(首选)
默认网关. . . . . . . . . . . . . : ::
TCPIP 上的 NetBIOS . . . . . . . : 已禁用
如果IPv6地址一项是以2001开头,那就连接成功了。
还不放心,那么可以在命令行键入命令netsh interface teredo show state
,看看结果是不是类似:
Teredo 参数
---------------------------------------------
类型 : client
服务器名称 : teredo.ipv6.microsoft.com.
客户端刷新间隔 : 30 秒
客户端端口 : unspecified
状态 : qualified
客户端类型 : teredo client
网络 : unmanaged
NAT : restricted
NAT 特殊行为 : UPNP: 是,PortPreserving: 否
本地映射 : 192.168.11.2:61007
外部 NAT 映射 : 61.138.211.66:48896
如果状态是qualified的话,那么恭喜你,你已经有IPv6的环境了!
Windows XP
Windwos XP就麻烦一点了,因为默认并没有启用IPv6支持。不过只要一步一步来,也不是没有办法。
1、安装IPv6协议
很简单,打开命令行输入ipv6 install
就行了。提示Succeeded就成功了。
或者可以通过图形界面来安装。打开网络连接,随便选个连接打开连接的状态窗口,然后点击属性打开属性窗口,点击安装,然后选择协议、确定,最后找到Microsoft TCP/IP 版本 6然后确定即可,等一会就会在属性窗口中见到了。如果出错了,那除了重装系统,我不知道该给你什么更有建设性的建议。
2、配置Teredo
配置Teredo就完全需要在命令行下操作了。
我们在命令行下输入netsh
就可以进入netsh的提示符,就像这样:
netsh>
在netsh提示符下我们可以使用help
来获取帮助。
不过这次我们就直奔主题,直接输入命令interface ipv6 set teredo type=client servername=<服务器地址>
(也可以不进入netsh提示符,直接在命令行下输入netsh interface ipv6 set teredo type=client servername=<服务器地址>
),服务器地址见本文后面。显示确定就表示成功了。
3、检查Teredo
和Windows Vista/7类似,使用ipconfig /all
来查看状态:
Tunnel adapter Teredo Tunneling Pseudo-Interface:
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Teredo Tunneling Pseudo-Interface
Physical Address. . . . . . . . . : 00-00-DB-7F-C2-75-2C-BD
Dhcp Enabled. . . . . . . . . . . : No
IP Address. . . . . . . . . . . . : 2001:0:4137:9e76:0:db7f:c275:2cbd
IP Address. . . . . . . . . . . . : fe80::ffff:ffff:fffd%4
Default Gateway . . . . . . . . . : ::
NetBIOS over Tcpip. . . . . . . . : Disabled
如果获取了2001开头的IP Address那么就表示已经连接上了。
使用命令netsh interface ipv6 show teredo
来查看:
Teredo 参数
---------------------------------------------
类型 : client
服务器名称 : teredo.ipv6.microsoft.com
客户端刷新间隔 :default
客户端口 : default
状态 : qualified
类型 : teredo client
网络 : unmanaged
NAT : restricted
状态是qualified就表示连接上了。
Linux (Ubuntu)
虽然Teredo是微软的东西,但是开源的力量是很伟大的。在Linux下同样有软件可以连接Teredo,这就是Miredo!Ubuntu下只需要使用有超级牛力的APT就行了:
sudo apt-get install miredo
等安装完后,编辑配置文件/etc/miredo.conf
,将ServerAddress
后面的内容为Teredo服务器的地址就行了(注意ServerAddress
前面不要有#啊,#代表这行被注释掉了)。
然后只要重启Miredo服务就行了:
sudo service miredo restart
然后通过命令ifconfig
看看是否有类似如下的内容:
teredo Link encap:未指定 硬件地址 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet6 地址: fe80::ffff:ffff:ffff/64 Scope:Link
inet6 地址: 2001:0:4137:9e76:3c73:8929:c275:2cbd/32 Scope:Global
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1280 跃点数:1
接收数据包:0 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:1 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:500
接收字节:0 (0.0 B) 发送字节:48 (48.0 B)
如果有的话,并且有2001开头的后面注明Scope:Global的地址,那么就成功连接上了。
其他
此方法连接上之后仍然无法直接访问IPv6网站,因为没有相应的DNS解析。可以去找一个支持AAAA记录(也就是IPv6的地址解析)DNS服务器来替换掉默认的DNS服务器,或者修改hosts文件。
下面给出几个Teredo服务器的地址:
如果你处于公网,不建议使用这种方法,可以直接连到各大学的ISATSP,这样极快又方便。
谨以此文庆祝世界IPv6日(2011年6月8日)!