Hi!请登陆

VPS主机免费开启IPv6地址-绑定IPv6地址让Nginx和Apache支持IPv6

2023-3-3 378 3/3

购买VPS主机一般来说会免费送一个IPv4地址(部分NAT VPS为共享IP,购买后会给你一个URL地址,例如CloudIPLC和Uovz VPS),也有部分VPS主机商(例如Linode、DigitalOcean)会赠送一个IPv6,并且VPS创建成功后会自动启用IPv6地址。

但是大部分VPS主机商还是没有提供IPv6地址,主要还是因为IPv6现在普及度不高,且IPv6的用户也可以使用IPv4,如果没有特别需要(据说IPv6网络很“畅通”),IPv4用于建站访问都是没有问题的。前一段时间有其云否主机的客户想要使用IPv6。

对于VPS主机没有配备IPv6地址,我们可以利用Tunnel broker (He.net旗下)给VPS主机免费开通IPv6地址访问,同时如果你想让你的Nginx或者Apache支持IPv6用户访问,只需要调整一下Nginx和Apache的配置文件即可。

VPS主机免费开启IPv6地址-绑定IPv6地址让Nginx和Apache支持IPv6

一、开启VPS对IPv6的支持

检查文件

/etc/modprobe.d/disable_ipv6.conf

,开启IPv6。

alias net-pf-10 off
options ipv6 disable=0

打开  /etc/sysconfig/network,添加如下:

NETWORKING_IPV6=yes

编辑网卡配置:

/etc/sysconfig/network-scripts/ifcfg-eth0

(有也可能是ifcfg-eth1),开启IPv6支持。

IPV6INIT=yes
IPV6_AUTOCONF=yes

打开:

/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

执行命令:

ifconfig | grep -i inet6

,看到有输出就表示你的VPS主机支持IPv6了。

二、申请免费的IPv6地址

网站:

  1. https://www.tunnelbroker.net

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

VPS主机免费开启IPv6地址-绑定IPv6地址让Nginx和Apache支持IPv6

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

VPS主机免费开启IPv6地址-绑定IPv6地址让Nginx和Apache支持IPv6

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

VPS主机免费开启IPv6地址-绑定IPv6地址让Nginx和Apache支持IPv6

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

Server IPv4 Address 服务端IPv4地址(用于通过IPv4连接隧道)

Server IPv6 Address 服务端IPv6地址(用于IPv6网关地址)

Client IPv4 Address 本地IPv4地址(用于让服务器允许连接)

Client IPv6 Address 本地IPv6地址(作为本地IPv6地址使用)

三、VPS手动绑定IPv6地址

3.1  绑定IPv6

在Tunnel页面有一个选项卡为Example Configuration,这里有Tunnel broker自动生成的配置命令,对于CentOS、Ubuntu和Debian可以选择linux-route2Linux-net-tools。

VPS主机免费开启IPv6地址-绑定IPv6地址让Nginx和Apache支持IPv6

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

VPS主机免费开启IPv6地址-绑定IPv6地址让Nginx和Apache支持IPv6

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

VPS主机免费开启IPv6地址-绑定IPv6地址让Nginx和Apache支持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和Apache支持IPv6

4.1  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 wzfou.com www.wzfou.com;
……

4.2  Apache IPv6

找到httpd.conf配置,修改成这样:

Listen 123.256.48.99:80
Listen [2400:6180:0:d0::1f33:d001]:80
#或者
Listen 0.0.0.0:80
Listen [::]:80

4.3  设置好AAAA记录解析

配置好了,现在你只需要到你的DNS处添加一个新的AAAA记录,记录值就是你的IPv6地址,这样IPv6用户就可以访问到你的Web服务器了。

VPS主机免费开启IPv6地址-绑定IPv6地址让Nginx和Apache支持IPv6

AAAA记录可以和A记录并存,实现双栈访问,但不能与CNAME并存。各大DNS解析服务基本上都支持AAAA记录,如果你的没有,请在这里找一个更好的:国内外免费DNS域名解析服务汇总列表。

五、总结

如果本地还没有开通原生的IPv6,我们可以通过以下方法开通IPv6,以Windows 10为演示,Win+X 打开CMD 或 Windows PowerShell(管理员),输入命令:

// 设置 Teredo 服务器,默认为:win10.ipv6.microsoft.com
netsh interface teredo set state enterpriseclient server=default
// 测试 IPv6 连接
ping -6 ipv6.test-ipv6.com
ping -6 [2001:470:1:18::125]
// 重置 IPv6 配置
netsh interface ipv6 reset

重启系统通过命令ipconfig /all 查看当前网络信息,看到 Teredo Tunneling Pseudo-Interface 有以 2001 开头的IPv6地址即可。 启动IE浏览器,访问 http://test-ipv6.com 或 http://ipv6.test-ipv6.com,如果选项卡 “测试项目” 下面的 “不使用域名的 IPv6 测试” 显示成功,则隧道建立成功。Chrome浏览器的测试结果可能和IE不一样,请注意。

VPS主机免费开启IPv6地址-绑定IPv6地址让Nginx和Apache支持IPv6

VPS绑定好了IPv6后,可以Ping测试一下IPv6网络是否通畅。Linux常用的命令是:ping6 ipv6.google.com。更多的Linux网络配置方法这里有:Linux手动设置IPv4和IPv6地址。

相关推荐