随着互联网的不断发展,当今的IPv4制式已渐渐满足不了应用,往下一代IPv6的转换也悄悄开始了。
早在去年11月,台湾的电信运营商即开始正式启用IPv6;今年2月份,国际互联网从IPv4向IPv6转移也已启动;而四天前,Google也开通了IPv6网络专访的网址。
一切动作显示,向IPv6的转换的脚步是越来越快了。
虽然我们还不知道什么时候会转向IPv6,但是看完了本文,你就可以在Linux下享受IPv6!
—–
本文是对bones7456兄写的的“ipv6”进行的扩充,并在Ubuntu 8.04下试验成功。其他Linux发行版类似,只需要安装好相关开发包即可。
原理简介
利用現有 IPv4 網路,透過二端建立起一條 隧道(Tunnel) ,Server端透過這個 Tunnel 發送一組 IPv6 位址給另一端,使兩端可以使用 IPv6 封包在 Tunnel 內傳遞,如同現行很熱門的 VPN應用,是同相道理,使用者在外可使用公司內部私人網路,一樣是透過 Tunnel 建立,公司內部網段 IP 在 Tunnel 內傳遞,只不過這時換成 IPV6 封包。
0、先决条件
在编译这个软件前,首先确保你的Linux系统准备好了以下开发包,以顺利进行编译:gcc,g++,libc6-dev,libssl-dev
1、下载软件
先下载这个包,解压至任意位置,如桌面。其中tspc-advanced/INSTALL文件内有详细的安装说明。
2、编译并安装
进入tspc-advanced,执行make target=linux编译:
cd ~/Desktop/gw6c/tspc-advanced/
make target=linux
然后执行下面的命令安装:
sudo make target=linux installdir=/usr/local/gw6c install
3、修改配置文件
sudo gedit /usr/local/gw6c/bin/gw6c.conf
然后找到server=那行,修改为: server=tb.ipv6.apol.com.tw,保存退出。
4、运行
cd /usr/local/gw6c/bin/ 然后执行 sudo ./gw6c ,如果看到类似:
Gateway6 Client v5.0-RELEASE build May 16 2008-12:30:00
Connection to tb.ipv6.apol.com.tw established.
这样的输出,就表示连接成功了。这时,软件会在后台运行,需要注意的是,每次电脑启动后都需要手动加载。假如你需要自动连接,可以将/usr/local/gw6c/bin/gw6c写入/etc/init.d/rc.local文件。
5、测试效果
这时如果你在终端下运行ifconfig,可以发现多了一个项目,比如我是:sit1 Link encap:IPv6-in-IPv4。
你也可以使用ping命令的ipv6版来ping Google的主页:ping6 ipv6.google.com,测试是否能通。
当然,最重要的目的,当然是上网了。
你可以访问Google的IPv6版,也可以通过sixxs.org来访问Wikipedia,无需任何代理。下面可是用普通网络不能访问的唷!而且速度更不是普通代理所能达到的。
http://zh.wikipedia.org.sixxs.org
所有的IPv4网站,都可以以http://(URL).sixxs.org的形式进行访问。
下图是我用Firefox访问这两个网站的截图:
不知道朋友们还知道什么有关IPv6的应用,这样就能好好发挥我们的“IPv6”了!
参考资料: http://www.apol.com.tw/ipv6/ipv6-tb-1.html (windows及其他平台的方法也请看这里)
感谢bones7456的原始文章。


强烈推荐大家使用IPv6,也期待运营商早日提供原生的IPv6支持…就不用搞这个什么隧道了…
回复
2008年05月20日 星期二 5:41 下午
呵呵,好东西。
回复
2008年05月20日 星期二 6:09 下午
谢谢~安装很顺利~
ps.google的ipv6链接地址错了哦。
回复
2008年05月20日 星期二 6:10 下午
为什么我make target=linux时出现下面错误?已经安装libc6-dev libssl-dev gcc g++到最新版。
tsp_auth_passdss.c: 在函数‘AuthPASSDSS_3DES_1’中:
tsp_auth_passdss.c:466: 警告: 传递参数 2 (属于‘nt->netsend’) 给指针时,目标与指针符号不一致
tsp_auth_passdss.c:504: 警告: 传递参数 2 (属于‘nt->netsendrecv’) 给指针时,目标与指针符号不 一致
tsp_auth_passdss.c:504: 警告: 传递参数 4 (属于‘nt->netsendrecv’) 给指针时,目标与指针符号不 一致
tsp_auth_passdss.c:561: 警告: 传递参数 2 (属于‘buffer_get_string’) 给指针时,目标与指针符号 不一致
tsp_auth_passdss.c:603: 警告: 传递参数 2 (属于‘buffer_get_string’) 给指针时,目标与指针符号 不一致
tsp_auth_passdss.c:634: 警告: 传递参数 1 (属于‘DH_compute_key’) 给指针时,目标与指针符号不一致
tsp_auth_passdss.c:640: 警告: 传递参数 1 (属于‘BN_bin2bn’) 给指针时,目标与指针符号不一致
tsp_auth_passdss.c:782: 警告: 传递参数 7 (属于‘HMAC’) 给指针时,目标与指针符号不一致
tsp_auth_passdss.c:834: 警告: 传递参数 2 (属于‘nt->netsendrecv’) 给指针时,目标与指针符号不 一致
tsp_auth_passdss.c:834: 警告: 传递参数 4 (属于‘nt->netsendrecv’) 给指针时,目标与指针符号不 一致
回复
2008年05月20日 星期二 6:45 下午
@xinzhi,谢谢提醒,改回来了。
@kaccess,警告是正常的,不是错误的话就可以继续下面的步骤来安装完成。
回复
2008年05月20日 星期二 6:50 下午
编译安装都很顺利
也出现
Gateway6 Client v5.0-RELEASE build May 20 2008-18:50:02
Connection to tb.ipv6.apol.com.tw established.
但是ipconfig信息不一样
Link encap:UNSPEC
而且无法链接给的地址
回复
2008年05月20日 星期二 7:06 下午
成功了
回复
2008年05月20日 星期二 7:10 下午
参照那些在线代理,自动修改网址结尾。例如下面这个,加到书签里,可按一下就自动改网址为.sixxs.org了。
javascript:void((function(){location.href=location.href.replace(/^http\:\/\/([^\/\@]+)\/(?:)/,%22http://%22+%22$1%22.replace(%22\:%22,%22.%22)+%22.sixxs.org/%22);})())
回复
2008年05月20日 星期二 7:18 下午
tun Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet6 addr: 2001:f10:5001:6da::2/128 Scope:Global
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1280 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:0 (0.0 B) TX bytes:288 (288.0 B)
这个tun不到1分钟就自己消失了。。。。奇怪
回复
2008年05月20日 星期二 7:27 下午
速度很慢
回复
2008年05月20日 星期二 7:32 下午
教育网内部早就可以享受完全的ipv6服务了~~
提供一个ipv6代理,可以通过该代理来访问ipv6网站,下载速度能达到150K
proxy.ipv6.uni-leipzig.de:3128
回复
2008年05月20日 星期二 7:39 下午
与楼上Wool相似……能ping通,但是显示不了……
tun Link encap:未指定 硬件地址 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet6 地址: 2001:f10:5001:6f1::2/128 Scope:Global
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1280 跃点数:1
接收数据包:60 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:57 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:500
接收字节:5704 (5.5 KB) 发送字节:5568 (5.4 KB)
回复
2008年05月20日 星期二 7:43 下午
我在windows下也是类似情况
连连上
但是很快掉线
回复
2008年05月20日 星期二 8:07 下午
跟大家分享一下 Arch 下的相应操作方法,在终端中依次输入以下三个命令即可:
sudo modprobe tun
sudo yaourt -S gw6c
sudo gw6c
10秒钟搞定,呵呵。不过连 ipv6.google.com 的速度还好,使用 sixxs.org 上其他网站实在太慢……
回复
2008年05月20日 星期二 8:10 下午
make[1]: 没有什么可以做的为 `all’。
郁闷啊
不过要谢谢yegle给的代理地址
回复
2008年05月20日 星期二 8:41 下午
我也是arch,但是不能成功。
2008/05/20 21:26:04 I gw6c: Gateway6 Client v5.1-RELEASE build May 16 2008-18:32:10
2008/05/20 21:26:04 I gw6c: Built on ///Linux NJBD 2.6.24-ARCH #1 SMP PREEMPT Sun Mar 30 11:40:06 CEST 2008 i686 Intel(R) Pentium(R) 4 CPU 2.80GHz GenuineIntel GNU/Linux///
2008/05/20 21:26:05 I gw6c: Connection to tb.ipv6.apol.com.tw established.
2008/05/20 21:26:06 E gw6c: No IPv6 support found.
2008/05/20 21:26:06 E gw6c: Try “modprobe ipv6″.
2008/05/20 21:26:06 I gw6c: Done.
回复
2008年05月20日 星期二 9:33 下午
server=tb.ipv6.apol.com.tw 改为下面的应该也可以吧?
http://linux.chinaunix.net/docs/2007-09-05/4590.shtml
1. 上海交通大学( http://ipv6.sjtu.edu.cn/news/041231.php ),无需申请,可以直接使用。
2. 泰国的NECTEC( http://tb.ipv6.nectec.or.th/tb/index.php ),免费申请,立即生效。
3. Hurricane Electric ( http://tunnelbroker.net/tunnel_detail.php ),以下简称HENET,免费申请,申请24小时后生效。
回复
2008年05月20日 星期二 10:00 下午
IPv6有什么特性?
回复
2008年05月21日 星期三 1:58 上午
“这时,软件会在后台运行,需要注意的是,每次电脑启动后都需要手动加载。假如你需要自动连接,可以将/usr/local/gw6c/bin/gw6c写入/etc/init.d/rc.local文件。”
发现此法子无效
另外,发现sudo /usr/local/gw6c/bin/gw6c命令无法启动程序,提示:
Last error is 15: INVALID_CONFIG_FILE.
但是一旦cd到/usr/local/gw6c/bin目录下
sudo /usr/local/gw6c/bin/gw6c就可以正确启动程序了。
综上,怀疑是gw6c打开配置文件是指定当前目录下的,故在默认的/home/user/空间中运行时,会出现读配置文件出错。而cd到/usr/local/gw6c/bin/下后,就可以正常打开配置文件了。
所以,在系统启动脚本里加入/usr/local/gw6c/bin/gw6c是没有用的,因为会出现读取配置文件出错的情况。
回复
2008年05月21日 星期三 3:03 上午
骨头的动作还快哟!LDCN刚刚发布就来占SF了!
回复
2008年05月21日 星期三 8:23 上午
就这些描述如何体现“畅快”两字?
回复
2008年05月21日 星期三 9:31 上午
done
回复
2008年05月21日 星期三 11:01 上午
tunnel broker可选地址:
60.199.0.228
tb.ipv6.apol.com.tw
goipv6.seed.net.tw
都比较慢,看教育网的iptv很卡。
回复
2008年05月21日 星期三 1:03 下午
感覺在linux下應該有更簡單的方法,
比如建個tunnel,再進制一些什麽設置,
應該不用另外安裝什麽工具了吧
回复
2008年05月21日 星期三 1:31 下午
按照这个地址我居然成功了
http://www.idalin.cn/2008/05/16/ipv/
回复
2008年05月21日 星期三 1:52 下午
[...] 在这里看到了 Linux 下提前体验 IPv6 ,留言中提到了 Archlinux 下的方法,非常的简单: sudo modprobe tun sudo yaourt -S gw6c sudo gw6c [...]
2008年05月23日 星期五 8:26 下午
ubuntu下可以安装tspc,比较方便
回复
2008年05月28日 星期三 11:58 下午
麻烦搂主给我看一下,怎么回事。 我的不能连接。但是又提示安装成功。就是Gateway6 Client v5.0-RELEASE build May 16 2008-12:30:00
Connection to tb.ipv6.apol.com.tw established.
上面这个信息是有的。但是连接不上。谢谢。
lycsm@lycsm-laptop:~$ ifconfig
ath0 Link encap:以太网 硬件地址 00:19:7d:17:80:51
inet6 地址: fe80::219:7dff:fe17:8051/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
接收数据包:0 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:0 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:0
接收字节:0 (0.0 B) 发送字节:0 (0.0 B)
eth0 Link encap:以太网 硬件地址 00:16:d3:38:8a:57
inet 地址:192.168.0.12 广播:192.168.0.255 掩码:255.255.255.0
inet6 地址: fe80::216:d3ff:fe38:8a57/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
接收数据包:34601 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:30102 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:37145751 (35.4 MB) 发送字节:3244969 (3.0 MB)
中断:20
lo Link encap:本地环回
inet 地址:127.0.0.1 掩码:255.0.0.0
inet6 地址: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 跃点数:1
接收数据包:2730 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:2730 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:0
接收字节:157775 (154.0 KB) 发送字节:157775 (154.0 KB)
tun Link encap:未指定 硬件地址 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet6 地址: 2001:f10:5001:ebaf::2/128 Scope:Global
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1280 跃点数:1
接收数据包:25 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:19 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:500
接收字节:2376 (2.3 KB) 发送字节:1672 (1.6 KB)
wifi0 Link encap:未指定 硬件地址 00-19-7D-17-80-51-50-01-00-00-00-00-00-00-00-00
UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
接收数据包:0 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:1735 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:199
接收字节:0 (0.0 B) 发送字节:79810 (77.9 KB)
中断:21
回复
2008年09月23日 星期二 2:21 下午
為什麼執行make target=linux出現錯誤訊息
mkdir -p bin
mkdir -p objs
Building gw6c-config module in ../gw6c-config/
make[1]: Entering directory `/home/kevin/Desktop/gw6c-5_1-RELEASE-src/gw6c-config’
make[2]: Entering directory `/home/kevin/Desktop/gw6c-5_1-RELEASE-src/gw6c-config’
g++ -c -I. -O2 -Wall -DNDEBUG -o objects/namevalueparser.o src/namevalueparser.cc
src/namevalueparser.cc: In member function ‘virtual bool gw6cconfig::NameValueParser::ReadConfigurationData(const std::string&)’:
src/namevalueparser.cc:136: error: ‘memset’ was not declared in this scope
src/namevalueparser.cc:177: error: ‘strtok’ was not declared in this scope
src/namevalueparser.cc: In member function ‘virtual bool gw6cconfig::NameValueParser::WriteConfigurationData(const std::string&)’:
src/namevalueparser.cc:259: error: ‘strlen’ was not declared in this scope
src/namevalueparser.cc:259: error: ‘strncmp’ was not declared in this scope
make[2]: *** [objects/namevalueparser.o] Error 1
make[2]: Leaving directory `/home/kevin/Desktop/gw6c-5_1-RELEASE-src/gw6c-config’
make[1]: *** [export] Error 2
make[1]: Leaving directory `/home/kevin/Desktop/gw6c-5_1-RELEASE-src/gw6c-config’
make: *** [check-gw6cconfig] Error 2
回复
2008年12月25日 星期四 4:30 下午
我和上面出现一样的情况了。g++,gcc,libc6-dev,libssl-dev都更新到最新了。编译错误。我的系统是8.10的。
回复
2009年07月18日 星期六 1:59 下午
和上面一样的问题….
回复
2009年09月29日 星期二 7:16 下午
和上面一样的问题,ubuntu 9.04 amd64
回复
2009年10月18日 星期天 7:24 下午
ipv6 模块没有加载。在运行 gw6c 之前先运行:
sudo modprobe ipv6
回复
2009年11月09日 星期一 9:07 上午