AnyNode VPS是不自带IPV6地址的,所以,我们如果需要,需自己去申请,但是比如Linode、vultr就比较好,会赠送一个IPV6,并且VPS创建成功后会自动启用IPv6地址。
当然了,不自带IPV6,大部分原因是因为IPV6普及程度不高造成的,如果我们需要给自己VPS绑定一个IPV6地址应该怎么做呢,这篇文章大鸟说说给AnyNode VPS申请IPv6,并绑定使用,当然环境是基于Centos 7 宝塔面板6.8.9。
一:开启IPV6支持
1.1配置network文件
打开 /etc/sysconfig/network,添加如下:
NETWORKING_IPV6=yes
如果不会可以看图,下面的步骤也是如此:
1.2编辑网卡
配置:/etc/sysconfig/network-scripts/ifcfg-eth0(有也可能是ifcfg-eth1),开启IPv6支持。
IPV6INIT=yes IPV6_AUTOCONF=yes
1.3/etc/sysctl.conf
打开:/etc/sysctl.conf ,开启IPv6支持(没有就添加,有的话要保证是0)。
net.ipv6.conf.all.disable_ipv6 = 0 net.ipv6.conf.default.disable_ipv6 = 0 net.ipv6.conf.lo.disable_ipv6 = 0
1.4测试支持
执行命令:ifconfig | grep -i inet6,看到有输出就表示你的VPS主机支持IPv6了。如图:
二:申请免费的IPv6地址
Tunnel broker 为He.net旗下的产品,提供免费的IPv6地址和隧道,你可以利用它在自己的VPS主机上绑定一个新的IPv6地址。注册一个TunnelBroker账号有he.net的账号也不用注册了通用,然后选择“Creat Regular Tunnel”,如图:
申请网址:https://www.tunnelbroker.net
根据需要选择访问速度最快的服务器,你只需要填写你自己的VPS的公网IP,点击最下方的“Creat Tunnel”就完成了。如图:
在Tunnel的详情界面,可以看到申请到的IPv6的详细信息。
有几点要用到的信息说明如下:
Server IPv4 Address 服务端IPv4地址(用于通过IPv4连接隧道)
Server IPv6 Address 服务端IPv6地址(用于IPv6网关地址)
Client IPv4 Address 本地IPv4地址(用于让服务器允许连接)
Client IPv6 Address 本地IPv6地址(作为本地IPv6地址使用)
这样就完成了IPV6的申请,过程还是很简单的。
三:VPS手动绑定IPv6地址
3.1绑定IPv6
在Tunnel页面有一个选项卡为Example Configuration,这里有Tunnel broker自动生成的配置命令,对于CentOS、Ubuntu和Debian可以选择linux-route2或Linux-net-tools。
然后直接复制命令在自己的VPS主机上运行。如下图:
执行ifconfig命令可以查看到IPv6地址已经添加成功了。
3.2 重启后仍有效
按照上面的命令绑定好了IPv6后,如果你重启服务器后就会丢失。一种方法是重启服务器再次运行该命令,当然我们可以利用Linux重启后自动执行脚本的功能,命令如下:
vim /mycmd/getipv6.sh #添加以下内容(替换你自己的) ifconfig sit0 up ifconfig sit0 inet6 tunnel ::66.220.18.42 ifconfig sit1 up ifconfig sit1 inet6 add 2001:470:c:98a::2/64 route -A inet6 add ::/0 dev sit1 #添加可执行权限 chmod +x /mycmd/getipv6.sh #编辑rc.local vim /etc/rc.d/rc.local #在最后一行加入 sh /mycmd/getipv6.sh
另一种方法就是手动将IPv6地址绑定到已有了网卡中,命令如下:
#启用IPv6和设置默认设备为sit1 vim /etc/sysconfig/network #添加以下内容 NETWORKING_IPV6=yes IPV6_DEFAULTDEV="sit1" #设定IPv6网关地址 cd /etc/sysconfig/network-scripts ls #编辑现有的网卡配置文件(如网卡为eth0,则编辑ifcfg-eth0),加入(或修改为)以下内容 IPV6ADDR=服务端IPv6地址 #在/etc/sysconfig/network-scripts文件夹内,新建文件ifcfg-sit1并编辑,写入以下内容: DEVICE=sit1 ONBOOT=yes BOOTPROTO=none IPV6INIT=yes IPv6TUNNELIPV4=服务端IPv4地址 IPV6TUNNELIPV4LOCAL=本地IPv4地址 IPV6ADDR=本地IPV6地址
最后一步要特别注意,若本地IPv4地址为内网地址(如腾讯云),请在此处配置文件里面应填写内网地址,不要直接写公网地址。配置文件写完后,执行service network restart重启网络服务,此时Tunnel应能够正常工作,且重启后不会丢配置。
四:Nginx 设置IPv6
找到你的Nginx网站配置文件,添加IPv6监听,然后重启Nginx就可以了。代码如下:
{ listen 80; listen [::]:80; #或者 listen [::]:80 ipv6only=on; # listen [::]:80 default ipv6only=on; 只监听IPV6 # listen [3608:f0f0:3002:31::1]:80;监听指定IPV6地址 listen 443 ssl http2; listen [::]:443 ssl http2; server_name www.vps100.net ……
之后我们需要用域名访问的话需要设置好AAAA记录解析,当让也可以http://[ipv6地址]就可以打开默认的网站。AAAA记录解析如图:
AAAA记录可以和A记录并存,实现双栈访问,但不能与CNAME并存。各大DNS解析服务基本上都支持,也就是网站可以同时支持ipv4和ipv6访问。
五:总结
这篇文章其实意义不是很大,随着时间的推移,越来越多的商家会开通对于ipv6的支持,ipv4迟早会耗尽。其实大鸟说了这么多,最核心的是就是要知道,AAAA记录是支持ipv6解析的,网站如果要同时支持两者就需要做AAAA解析和解析。了解这个就足够了。
当然,对于目前想折腾的同学来说,可以作为一种参考!