默认情况下阿里云ECS禁用了IPV6的支持,首先要开启系统的IPV6功能
修改/etc/sysconfig/network
文件使NETWORKING_IPV6=yes
删除/etc/modprobe.d/disable_ipv6.conf
到tunnelbroker.net注册账户并创建一个 Regular Tunnel,需要填写服务器的公网IP
注册完成后到Example Configurations中找到系统自动生成的脚本,这里我们选择Linux-route2,先不要着急拿去执行
注意页面下的这段提醒
NOTE: When behind a firewall appliance that passes protocol 41, use the IPv4 address you get from your appliance’s DHCP service instead of the IPv4 endpoint you provided to our broker.
这里需要使用的是内网IP,而不是公网IP
所以我们要执行的代码应该是这样子的
modprobe ipv6 ip tunnel add he-ipv6 mode sit remote 0.0.0.0 local <你的内网IP> ttl 255 ip link set he-ipv6 up ip addr add 00:00:00:00::2/64 dev he-ipv6 ip route add ::/0 dev he-ipv6 ip -f inet6 addr
执行完毕之后就可以在ifconfig
中看到这个he-ipv6了,随便ping6一个地址测试一下看看是否畅通
需要注意的是重启服务器后he-ipv6就会消失,需要把这段代码添加到自启动中去,例如/etc/rc.d/rc.local
。
另外还注意到一个问题,不知道是不是个例,阿里云ECS CentOS中/etc
、/usr/bin
目录没有写权限,很奇怪的设定,不过默认PATH中/usr/local/bin
的位置比/usr/bin
靠前,所以放到/usr/local/bin
中的文件会“覆盖”掉系统原来的文件,但是很多自动化的脚本就无法运行了,甚至很多程序都无法正常编译。 PS:我只是想升级一下CURL版本而已…