宝塔面板+AnyNode免费开启并绑定IPv6地址-实现网站ip6访问

宝塔面板3字数 2766阅读模式

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

如果不会可以看图,下面的步骤也是如此:

宝塔面板+AnyNode免费开启并绑定IPv6地址-实现网站ip6访问

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了。如图:

宝塔面板+AnyNode免费开启并绑定IPv6地址-实现网站ip6访问

二:申请免费的IPv6地址

Tunnel broker 为He.net旗下的产品,提供免费的IPv6地址和隧道,你可以利用它在自己的VPS主机上绑定一个新的IPv6地址。注册一个TunnelBroker账号有he.net的账号也不用注册了通用,然后选择“Creat Regular Tunnel”,如图:

申请网址:https://www.tunnelbroker.net

宝塔面板+AnyNode免费开启并绑定IPv6地址-实现网站ip6访问

根据需要选择访问速度最快的服务器,你只需要填写你自己的VPS的公网IP,点击最下方的“Creat Tunnel”就完成了。如图:

宝塔面板+AnyNode免费开启并绑定IPv6地址-实现网站ip6访问

在Tunnel的详情界面,可以看到申请到的IPv6的详细信息。

宝塔面板+AnyNode免费开启并绑定IPv6地址-实现网站ip6访问

有几点要用到的信息说明如下:

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-route2Linux-net-tools。

宝塔面板+AnyNode免费开启并绑定IPv6地址-实现网站ip6访问

然后直接复制命令在自己的VPS主机上运行。如下图:

宝塔面板+AnyNode免费开启并绑定IPv6地址-实现网站ip6访问

执行ifconfig命令可以查看到IPv6地址已经添加成功了。

宝塔面板+AnyNode免费开启并绑定IPv6地址-实现网站ip6访问

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.daniao.org
    ……

之后我们需要用域名访问的话需要设置好AAAA记录解析,当让也可以http://[ipv6地址]就可以打开默认的网站。AAAA记录解析如图:

宝塔面板+AnyNode免费开启并绑定IPv6地址-实现网站ip6访问

AAAA记录可以和A记录并存,实现双栈访问,但不能与CNAME并存。各大DNS解析服务基本上都支持,也就是网站可以同时支持ipv4和ipv6访问。

五:总结

这篇文章其实意义不是很大,随着时间的推移,越来越多的商家会开通对于ipv6的支持,ipv4迟早会耗尽。其实大鸟说了这么多,最核心的是就是要知道,AAAA记录是支持ipv6解析的,网站如果要同时支持两者就需要做AAAA解析和解析。了解这个就足够了。

当然,对于目前想折腾的同学来说,可以作为一种参考!

weinxin
我的微信
微信公众号
关注大鸟博客公众号
 
大鸟
评论  3  访客  2  作者  1
    • 缙哥哥
      缙哥哥 7

      不能与cname并存?这个让我放弃了测试了……

      • msi
        msi 1

        楼主为啥最后永久生效,提示错误,是有什么错误吗、我用的第二种方法,填的ip地址要/64吗 我两个都试了还是错的

          • 大鸟
            大鸟

            @ msi 应该是你那里做弄对吧。

        匿名

        发表评论

        匿名网友

        :?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

        确定