这两年随着国家的大力支持,三大运营商已经开始普及IPv6,ipv6 的成本越来越低,为了紧跟时代步伐,不少网站已开启 IPv6 访问

开启 IPv6,本期来讲讲如何为不支持 ipv6 的网站增加 ipv6 支持

若你使用的是服务器且服务器支持ipv6

一、分配 IPv6 地址

如果你的服务器支持 IPv6 ,但是在创建的时候没有添加 IPv6 地址,请先添加后再操作。

不同服务器厂商添加方法可能不一样,可咨询客服。

有 IPv6 地址后,Linux系统在终端输入 ip addr, 会有类似输出:

1
2
3
4
5
6
7
8
9

inet6 240b:4001:1:400:e72d:dab:c902:b662/64 scope global

valid_lft forever preferred_lft forever

inet6 fe80::216:3eff:fe01:c27b/64 scope link

valid_lft forever preferred_lft forever

也可以在服务器运营商后台查看,比如 Vultr 直接查看服务器详细信息 settings 就可以找到

根据IPv6 规范,必须要有两个 IPv6 地址,其中 global 是公网访问的, 而 link 是本地的地址。如果没有输出 global,说明没有公网IPv6 地址,请咨询 vps 运营商帮忙处理。

二、开启 IPv6 监听

配置 web 服务器 (Nginx 、Apache) 监听 IPv6 流量

以 Nginx 为例,编辑网站配置文件

查找

1
2
3
4
5

listen 80;

listen 443 ssl http2;

替换为

1
2
3
4
5
6
7
8
9

listen 80;

listen [::]:80;

listen 443 ssl http2;

listen [::]:443 ssl http2;

重启 Nginx

三、添加 AAAA 解析指向 ipv6 地址

若你使用的是服务器但服务器不支持ipv6

参考 Cloudflare WARP 教程:给 VPS 额外添加“原生” IPv4/IPv6 双栈网络出口

若你使用的是不支持 ipv6 的托管平台

比如我使用的是 vercel ,之前有人曾在 vercel 官方讨论区提到过 支持 ipv6 但官方最后找了个理由搪塞过去了(https://github.com/orgs/vercel/discussions/47)

于是便发现 netifly 与 cloudflare 支持 ipv6

测速发现 netifly 有七个节点支持

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

2406:da18:b3d:e201::64 (新加坡)

2406:da18:880:3800::c8 (新加坡)

2406:da18:880:3802::c8 (新加坡)

2406:da18:b3d:e202::64 (新加坡)

2406:da18:880:3801::c8(新加坡)

2406:da18:b3d:e200::64(新加坡)

2600:1f1c:471:9d01::c8(美国旧金山)

速度还算可以,附图

Screenshot_20240504_231918.jpg

随后添加AAAA解析

Screenshot_20240504_232240.jpg

最后效果:

Screenshot_20240504_215326.jpg

CF Pages ipv6 节点

测速附图:

Screenshot_20240504_232932.jpg

Screenshot_20240504_233021.jpg

目前我找到的只有两个节点,欢迎大佬补充

1
2
3
4
5

2606:4700:310c::ac42:2ca5(估计是美国)

2606:4700:310c::ac42:2f5b(估计是美国)

cf workers 测试后发现节点在中国大陆几乎是墙的状态,节点来自脸书/美国

暂时不推荐这种方法推荐使用netifly或pages服务

检测网站ipv6支持情况:

https://ipw.cn/ipv6webcheck/?site=ipw.cn

https://www.itdog.cn/http_ipv6/

ipv6解析速度较慢,出现解析失败请耐心等待

这样你的静态网站就支持ipv6了(¯▽¯)~

补充:CF ipv6 节点列表

https://stock.hostmonit.com/CloudFlareYesV6