我们使用He提供IPv6的隧道代理,可以达到流畅访问Google等支持IPv6的网站。前面我也介绍过gogoc(原gw6c),但是这个访问速度有些慢,He提供的这个IPv6隧道代理速度还是不错。步骤如下:
1.注册免费的HE IPv6 Tunnel Broker
注册地址:http://tunnelbroker.net/
点击左边的“Register”开始注册,过程就不说啦,很简单的。注册好之后会收到一封he.net发来的邮件,里面有用户名和密码。
2.开通HE IPv6 Tunnel Broker
登陆tunnelbroker.net点击左侧的“Create Regular Tunnel”,在“IPv4 endpoint”填入你的当前的外网IP(我用的是ADSL上网,就是ppp0的IP,而不是eth0的IP),HE会根据你的浏览器的IP地址帮你选择服务器,但并不一定是最好的,你要根据你的实际连接速度(例如ping一下),选择延迟最小的服务器的地址,点击“Override”可选择服务器,或者直接选择服务器。最后点击“Submit”按钮提交,IPv6 Tunnel Broker就建立好啦。
3.查看你独有的IPv6地址和相关信息
回到HE IPv6 Tunnel Broker的首页,点击刚刚建立的Tunnel,如图:
会有这个Tunnel的详细信息:
记下User ID、Tunnel ID、routed /64、Server IPv4 Address、Server IPv6 Address、Client IPv6 Address 这些地址,后面要用到。
4.Ubuntu 建立启动脚本(ADSL用户,已测)
首先你要把防火墙的IPv6功能打开,否则连不上,这里只说一下UFW的,因为这是Ubuntu系统自带的,修改/etc/default/ufw文件,将里面的“IPV6=no”改为“IPV6=yes”即可。
建立启动脚本he-ipv6-up.sh(名字随便起),需要root权限运行,内容如下:
#!/bin/sh USER_ID='填入User ID' TUNNEL_ID='填入Tunnel ID' PASS='填入密码' #将密码转换成MD5值 PASS_MD5=$(echo -n $PASS | md5sum | cut -f1 -d ' ') IPV4_SERVER='填入Server IPv4 Address' IPV6_SERVER='填入Server IPv6 Address' URL='https://ipv4.tunnelbroker.net/ipv4_end.php' #我用的是ADSL拨号上网,所以设备名是ppp0 IPV4_LOCAL=$(ip -4 addr show dev ppp0 | awk '/inet / {print $2}' | cut -d/ -f1) IPV6_LOCAL='填入Client IPv6 Address' #等待15秒,以完成ADSL拨号 sleep 15 wget -nv -4 --spider --no-check-certificate "${URL}?ip=$IPV4_LOCAL&pass=${PASS_MD5}&apikey=${USER_ID}&tid=${TUNNEL_ID}" #以下是he.net网站给出的配置命令 modprobe ipv6 ip tunnel add he-ipv6 mode sit remote $IPV4_SERVER local $IPV4_LOCAL ttl 255 ip link set he-ipv6 up ip addr add $IPV6_LOCAL/64 dev he-ipv6 ip route add ::/0 dev he-ipv6 ip -f inet6 addr exit
如果你的外网IP是固定的,那就直接点击页面上的“Example Configurations”,然后选择“Linux-route2”,把下面的代码复制到终端中即可,或者把这些代码写到脚本中,然后双击执行,都可以。
5.Ubuntu 建立启动脚本(局域网用户,已经测试成功)
防火墙设置和radvd.conf设置同第4步,这里需要安装curl软件,Ubuntu软件源中有。建立启动脚本he-ipv6-up.sh(名字随便起),需要root权限运行,内容如下:
#!/bin/sh USER_ID='填入User ID' TUNNEL_ID='填入Tunnel ID' PASS='填入密码' #将密码转换成MD5值 PASS_MD5=$(echo -n $PASS | md5sum | cut -f1 -d ' ') IPV4_SERVER='填入Server IPv4 Address' IPV6_SERVER='填入Server IPv6 Address' URL='https://ipv4.tunnelbroker.net/ipv4_end.php' #获取外网IP IPV4_WAN=$(curl ifconfig.me/ip) #内网IP IPv4_LAN='填入你的内网IP' IPV6_LOCAL='填入Client IPv6 Address' #等待15秒,以完成ADSL拨号 sleep 15 wget -nv -4 --spider --no-check-certificate "${URL}?ip=$IPV4_WAN&pass=${PASS_MD5}&apikey=${USER_ID}&tid=${TUNNEL_ID}" #这是he.net网站给出的配置命令 modprobe ipv6 ip tunnel add he-ipv6 mode sit remote $IPV4_SERVER local $IPV4_LAN ttl 255 ip link set he-ipv6 up ip addr add $IPV6_LOCAL/64 dev he-ipv6 ip route add ::/0 dev he-ipv6 ip -f inet6 addr exit
6.Windows Vista/7 下的启动脚本(ADSL用户,已测)
首先要下载Curl软件(http://curl.haxx.se/download.html),自己挑选合适的版本。建立启动脚本he-ipv6-up.bat(名字随便起),需要管理员权限运行,运行时需要关闭一下防火墙,或者允许自ipv4.tunnelbroker.net网站的ping。启动脚本要和curl.exe放在一起,内容如下:
set USER_ID=填入User ID set TUNNEL_ID=填入Tunnel ID set PASS_MD5=填入你密码的MD5值,网上可以算出来 set URL=https://ipv4.tunnelbroker.net/ipv4_end.php set IPV4_SERVER=填入Server IPv4 Address set IPV6_SERVER=填入Server IPv6 Address set IPV6_LOCAL=填入Client IPv6 Address set IPV6_DNS=2001:470:20::2 for /f %%i in ('curl ifconfig.me') do set IPV4_LOCAL=%%i curl -k "%URL%?ip=%IPV4_LOCAL%&pass=%PASS_MD5%&apikey=%USER_ID%&tid=%TUNNEL_ID%" netsh interface teredo set state disabled netsh interface ipv6 add v6v4tunnel IP6Tunnel %IPV4_LOCAL% %IPV4_SERVER% netsh interface ipv6 add address IP6Tunnel %IPV6_LOCAL% netsh interface ipv6 add route ::/0 IP6Tunnel %IPV6_SERVER% netsh interface ipv6 add dnsservers "IP6Tunnel" %IPV6_DNS% netsh interface ipv6 set prefix ::1/128 50 0 netsh interface ipv6 set prefix ::/0 40 1 netsh interface ipv6 set prefix 2002::/16 30 1 netsh interface ipv6 set prefix ::/96 20 3 netsh interface ipv6 set prefix ::ffff:0:0/96 10 4 netsh interface ipv6 set prefix 2001::/32 5 1
7.Windows Vista/7 下的启动脚本(局域网用户,已测)
首先要下载Curl软件(http://curl.haxx.se/download.html),自己挑选合适的版本。建立启动脚本he-ipv6-up.bat(名字随便起),需要管理员权限运行,运行时需要临时关闭一下防火墙,或者允许自ipv4.tunnelbroker.net网站的ping。启动脚本要和curl.exe放在一起,内容如下:
set USER_ID=填入User ID set TUNNEL_ID=填入Tunnel ID set PASS_MD5=填入你密码的MD5值,网上可以算出来 set URL=https://ipv4.tunnelbroker.net/ipv4_end.php set IPV4_SERVER=填入Server IPv4 Address set IPV6_SERVER=填入Server IPv6 Address set IPV4_LAN=填入你的内网IP set IPV6_LOCAL=填入Client IPv6 Address set IPV6_DNS=2001:470:20::2 for /f %%i in ('curl ifconfig.me') do set IPV4_WAN=%%i curl -k "%URL%?ip=%IPV4_WAN%&pass=%PASS_MD5%&apikey=%USER_ID%&tid=%TUNNEL_ID%" netsh interface teredo set state disabled netsh interface ipv6 add v6v4tunnel IP6Tunnel %IPV4_LAN% %IPV4_SERVER% netsh interface ipv6 add address IP6Tunnel %IPV6_LOCAL% netsh interface ipv6 add route ::/0 IP6Tunnel %IPV6_SERVER% netsh interface ipv6 add dnsservers "IP6Tunnel" %IPV6_DNS% netsh interface ipv6 set prefix ::1/128 50 0 netsh interface ipv6 set prefix ::/0 40 1 netsh interface ipv6 set prefix 2002::/16 30 1 netsh interface ipv6 set prefix ::/96 20 3 netsh interface ipv6 set prefix ::ffff:0:0/96 10 4 netsh interface ipv6 set prefix 2001::/32 5 1
8.Windows XP 下的启动脚本(局域网和ADSL用户,未测)
首先要下载Curl软件(http://curl.haxx.se/download.html),自己挑选合适的版本。建立启动脚本he-ipv6-up.bat(名字随便起),需要管理员权限运行,运行时需要关闭一下防火墙,或者允许来自ipv4.tunnelbroker.net网站的ping。
Windows XP需要先安装IPv6协议在命令提示符下输入如下命令安装:
ipv6 install
启动脚本要和curl.exe放在一起,内容如下:
set USER_ID=填入User ID set TUNNEL_ID=填入Tunnel ID set PASS_MD5=填入你密码的MD5值,网上可以算出来 set URL=https://ipv4.tunnelbroker.net/ipv4_end.php set IPV4_SERVER=填入Server IPv4 Address set IPV6_SERVER=填入Server IPv6 Address set IPV6_LOCAL=填入Client IPv6 Address for /f %%i in ('curl ifconfig.me') do set IPV4_LOCAL=%%i curl -k "%URL%?ip=%IPV4_LOCAL%&pass=%PASS_MD5%&apikey=%USER_ID%&tid=%TUNNEL_ID%" ipv6 rtu ::/0 2/::%IPV4_SERVER% pub ipv6 adu 2/%IPV6_LOCAL%
9.修改Host文件
Ubuntu的Host文件位于“/etc/hosts”,Windows的Host文件在“C:windowssystem32driveetc”,然后在“Google和各种网站的IPv6服务hosts”找到你需要走IPv6的网址,填入进去,保存退出,不用重启系统哦~
10.关闭IPv6隧道(Linux用户)
脚本如下:
#!/bin/sh ip route del ::/0 dev he-ipv6 ip tunnel del he-ipv6
11.关闭IPv6隧道(Windows Vista/7 用户)
脚本如下:
set IPV6_LOCAL=填入Client IPv6 Address set IPV6_SERVER=填入Server IPv6 Address set IPV6_DNS=填入IPv6的DNS netsh interface ipv6 delete route ::/0 IP6Tunnel %IPV6_SERVER% netsh interface ipv6 delete address "IP6Tunnel" %IPV6_LOCAL% netsh interface ipv6 delete interface "IP6Tunnel" netsh interface ipv6 delete dnsservers "IP6Tunnel" %IPV6_DNS% 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 2 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 5
当时我弄得时候就是卡在ADSL的IP地址总是会变,而网页上的”Client IPv4 Address”地址必须与当前外网IP相同,不知道怎么弄,翻了几篇国外的资料才知道,期间撞墙无数次,真是浪费时间啊。
September 9th, 2016 at 1:15 am
[…] ? […]