曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 10021|回复: 1
打印 上一主题 下一主题

使用 teredo 隧道突破 GFW

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34395
跳转到指定楼层
楼主
发表于 2011-6-23 00:10:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Teredo  英文原意是 “蛀船虫”,计算机术语上又称 面向 IPv6 的 IPv4 NAT 网络地址转换穿越,是一项 IPv6/IPv4 过渡技术,在 IPv6/IPv4 主机位于一个或多个 IPv4 NAT 之后时,用来为单播 IPv6 连接提供地址分配和主机间自动隧道。为能够通过 IPv4 NAT, IPv6 数据包作为基于 IPv4 的用户数据包协议(UDP) 消息发送出去。

teredo 的设置幸运的话,或许不复杂,但是在具体的网络环境中又会遇到这样那样的问题,导致建立隧道失败,如经常会碰到 “客户端在对称NAT之后” 这样的失败提示。

下面以 Windows XP/Vista/7 以及 Linux 为例,说明详细的设置步骤以及解决可能遇到的问题:

1. 设置 teredo
如果系统是 XP,首先确保安装 IPv6 协议栈,如果还未安装,则运行下面的命令安装并设置:
netsh interface ipv6 install
netsh interface ipv6 set teredo client teredo.remlab.net.
注意上面的服务器地址  teredo.remlab.net 后一个点符号。

对于 Vista/Win7 已经默认安装 IPv6 协议栈,所以直接设置:
netsh int teredo set state client teredo.remlab.net.

对于 Debian/Ubuntu Linux 的安装与设置:
sudo apt-get install miredo      //安装软件包
vi /etc/miredo.conf  //编辑配置文件
注释原来所有的 ServerAddress 段(在前面加上#号),然后增加下面的语句:
ServerAddress <服务器地址>
然后重启服务:
#service miredo restart

对于 Redhat/Fedora Linux: 的安装与设置:
yum install miredo
service miredo-client start
像上边一样,同样编辑 miredo.conf 文件,并添加服务器地址,然后重启:
service miredo-client restart

一般家庭或一个小型办公环境里,都会通过路由上网,像上面的普通设置可能会失败,那么请尝试使用
netsh interface ipv6 set teredo enterpriseclient 代替 netsh interface ipv6 set teredo client 。即使用 enterpriseclient  代替 client  。

如果到此处还不成功 -- 不管你怎么设置重启换服务器都可能看到 “客户端在对称NAT之后” 这样的错误提示,那么请到路由里设置虚拟服务器,如在我的 TP-LINK 里是这么设置的:
ID     服务端口     IP地址     协议     状态     编辑
1    34567    192.168.1.104    ALL    生效    编辑 删除
最后,再设置一下 teredo :
netsh interface ipv6>set teredo enterpriseclient teredo.remlab.net. 60 34567
确定。
这里,给它指定一个 34567 的端口号,这样 teredo 客户端就能和外界通信了;或许还应该一并关掉系统中的防火墙。成功时会看到:
netsh interface ipv6>show teredo state
Teredo 参数
---------------------------------------------
类型                    : enterpriseclient
服务器名称              : teredo.remlab.net.
客户端刷新间隔          :60 秒
客户端口                : 34567
状态                    : qualified
类型                    : teredo client
网络                    : unmanaged
NAT                     : cone
在上面的状态中看到 qualified 字样时表示和服务器已经建立了连接。

但到此为止,我们还可能只是连上纯的 IPv6 服务器,比如谷歌的 http://ipv6.google.com ,而 ping  www.youtube.com 时看到的还是 IPv4 的地址,那么可以往下设置(往往是 XP 环境出现此问题):
netsh int ipv6 set prefix ::1/128 50 0
netsh int ipv6 set prefix ::/0 40 1
netsh int ipv6 set prefix 2002::/16 30 1
netsh int ipv6 set prefix ::/96 20 3
netsh int ipv6 set prefix ::ffff:0:0/96 10 4
netsh int ipv6 set prefix 2001::/32 5 1

最后,修改下 hosts 文件,使能够访问 IPv6 的服务器,这里可参考:http://www.groad.net/bbs/read.php?tid-3851.html

再 ping 一下 www.youtube.com 会看到:
C:\Documents and Settings\l4nneret>ping www.youtube.com

Pinging youtube-ui-china.l.google.com [2404:6800:8005::65] with 32 bytes of data
:

Reply from 2404:6800:8005::65: time=1737ms
Reply from 2404:6800:8005::65: time=461ms
Reply from 2404:6800:8005::65: time=459ms

Ping statistics for 2404:6800:8005::65:
    Packets: Sent = 3, Received = 3, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 459ms, Maximum = 1737ms, Average = 885ms
表示已经成功,当然也可以用浏览器进行检验。

下面是一组 teredo 服务器的地址:
* teredo.remlab.net / teredo-debian.remlab.net (法国) (Miredo 默认设置)
* teredo.autotrans.consulintel.com (西班牙)
* teredo.ipv6.microsoft.com (美国 雷蒙德) (Windows XP/2003/Vista/7/2008 系统默认设置)
* teredo.ngix.ne.kr (韩国)
* teredo.managemydedi.com (美国 芝加哥)
* teredo.trex.fi

0

主题

1

帖子

0

积分

初学弟子

积分
0
沙发
发表于 2011-10-2 03:21:31 | 只看该作者
谢谢!楼主提供!好样的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-5-4 20:13 , Processed in 0.061339 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表