前言
前段时间入手了阿里云国际的小鸡,但是在访问谷歌的时候总是出现验证码,本人对此不胜其烦,于是决定使用IPV6来访问谷歌,这样可以避免平时正常使用时出现的大量验证码。由于阿里云的小鸡本身没有IPV6地址,这里采用HE.NET旗下https://www.tunnelbroker.net提供的隧道。
获取IPV6地址
阿里云小鸡本身是没有IPV6地址的,这里需要在https://www.tunnelbroker.net/注册帐号,然后申请IPV6的地址。
注册帐号之后选择左侧的Create Regular Tunnel。
在IPv4 Endpoint (Your side):当中输入你的小鸡的IP地址。在下面选择一个和你小鸡最近的节点,可用ping命令进行测速。
点击下方Creater Tunnel即可成功申请IPV6地址,建立隧道(此步骤可能会需要较长的等待时间,不要着急,耐心等待)。
设置IPV6隧道
阿里云等支持直接设置的小鸡
在阿里云配置开启IPV6,修改 /etc/sysctl.conf ,添加(修改)如下参数
net.ipv6.conf.all.disable_ipv6 = 0 net.ipv6.conf.default.disable_ipv6 = 0 net.ipv6.conf.lo.disable_ipv6 = 0
之后使用sysctl -p
启用这些设置。
现在很多发行版都有iproute2
工具,所以一般我们直接用iproute2的命令即可,将下文存为一个sh文件,如vi /root/ipv6.sh
。
modprobe ipv6 ip tunnel add he-ipv6 mode sit remote 216.218.221.6 local 你的IP ttl 255 ip link set he-ipv6 up ip addr add 你的IPV6地址::2/64 dev he-ipv6 ip route add ::/0 dev he-ipv6
执行
bash /root/ipv6.sh
此时ipv6隧道应该可以用了,用ping6 google.com
命令测试。
现在需要把这个脚本加入开机执行,以便每次重启之后都有V6的网络执行corntab -e
加入以下内容
@reboot bash /root/ipv6.sh
此时配置就完成了。
请注意,阿里云国际需要修改IPV4地址为内网IP,否则没有网络。
更多配置文件和方法查看Example Configureations,选择你的操作系统就可以看到相应的配置方法了。
不支持直接修改,或直接修改无效的小鸡
有一些OVZ的小鸡无法直接采用上面的办法来启用IPV6,这里可以使用tb-tun工具来启用。
此方法需要开通tun/tap,通过
cat /dev/net/tun
进行检测,如果返回File descriptor in bad state
,则说明tun/tap设备已经打开。如果该设备没有打开,则可以通过服务器的操作面板来打开,如果您的操作面板不支持直接开通,可以发送工单让客服人员协助开通,或者以下脚本“可能”有帮助
if ! [ -c /dev/net/tun ]; then mkdir -p /dev/net mknod -m 666 /dev/net/tun c 10 200 fi
保存为.sh后尝试执行一下再cat tun,如果正常则可以继续。
接着,安装tb-tun。
git clone https://github.com/acgrid/tb-tun.git #如果没有安装GIT,则使用 wget "https://codeload.github.com/acgrid/tb-tun/zip/master" -O /root/tb-tun.zip && unzip tb-tun.zip && mv tb-tun-master tb-tun cd tb-tun gcc tb_userspace.c -l pthread -o tb_userspace
设置开机启动,将下列代码放到 /etc/init.d/ipv6tb 中
#! /bin/sh ### BEGIN INIT INFO # Provides: ipv6 # Required-Start: $local_fs $all # Required-Stop: $local_fs $network # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts the ipv6 tunnel # Description: ipv6 tunnel start-stop-daemon ### END INIT INFO # /etc/init.d/ipv6tb touch /var/lock/ipv6tb case $1 in start) echo "Starting ipv6tb" setsid /root/tb-tun/tb_userspace tb HE的节点IPV4 服务器IPV4 sit > /dev/null 2>&1 & sleep 3s #ugly, but doesn't seem to work at startup otherwise ifconfig tb up ifconfig tb inet6 add HE的Client IPv6 Address ifconfig tb mtu 1480 /sbin/route -A inet6 add ::/0 dev tb /sbin/ip -6 route add default dev tb ip -6 route del default dev venet0 ;; stop) echo "Stopping ipv6tb" ifconfig tb down route -A inet6 del ::/0 dev tb killall tb_userspace ;; *) echo "Usage: /etc/init.d/ipv6tb {start|stop}" exit 1 ;; esac exit 0
添加执行权限
chmod +x /etc/init.d/ipv6tb
设置开机自启
CentOS
chkconfig –add ipv6tb chkconfig ipv6tb on
Ubuntu/debian
update-rc.d ipv6tb defaults
启动服务
/etc/init.d/ipv6tb start
测试IPV6
ping6 google.com
修改Hosts
这里使用一个位于github的开源项目。
这儿直接用现成的 ipv6-hosts 。
需要注意的是其中有很多其他网站的hosts,按需删除。
当然愿意自己修改也成,看wiki就好。
如果不修改的话。
直接
mv /etc/hosts /etc/hosts.bak wget "https://raw.githubusercontent.com/lennylxx/ipv6-hosts/master/hosts" -O /etc/hosts
更新:我发现有的时候修改了HOSTS也不能默认使用IPV6连上GOOGLE,这个时候可以用 ipv6.google.com 来解决问题。
参考链接:
https://xulog.com/2017/02/06/hkb_use_ipv6_to_avoid_google_recaptcha.html
https://www.itengli.com/openvz_ipv6/
https://blog.myxnova.com/archives/549
https://blog.foxsar.black/?p=277