利用IPv6动态域名和CDN实现优雅的网站访问

在中国,许多用户的电脑只能获得公网IPv6地址,而且常常会遇到80和443端口被屏蔽的问题。这意味着,如果你想用这样的IPv6地址搭建网站,用户只能通过支持IPv6的设备,并且还得加上端口号才能访问——这显然不够优雅。

但是,有了动态域名系统(DDNS)和内容分发网络(CDN),我们可以解决这个问题。

腾讯云EdgeOne

IPv6示意图

为什么需要DDNS+CDN

公网IPv6地址的动态性: 大多数家庭和小型企业的IPv6地址不是固定的,而是会不时变化的。

端口限制问题: 即使你有一个公网IPv6地址,国内的ISP通常会屏蔽80和443端口,这两个端口是HTTP和HTTPS的标准端口。

访问限制: 没有IPv6的用户将无法访问仅有IPv6地址的网站,而且即使可以访问,带端口号的URL也不够友好。

Python官网

CDN回源解决方案

幸运的是,国内的CDN平台支持IPv6和非标准端口回源。

我们可以编写一个脚本,每隔10秒检测服务器的IPv6地址是否发生变化。如果地址改变了,脚本就会调用腾讯云Edge One的API来实时更新CDN回源的IPv6地址。如果地址没有变,脚本就不做任何操作。

DDNS流程

这样做的好处:

GitHub源码

配置与使用

系统要求

配置文件格式

[DEFAULT]
SecretId = 您的SecretId
SecretKey = 您的SecretKey
ZoneId = 您的ZoneId
DomainName = 您的域名1,您的域名2
InterfaceName = 您的网络接口名称

运行脚本

pip install -r requirements.txt
python ddns+edge one.py

脚本将开始监控IPv6地址的变化,并在必要时更新腾讯云TEO上的域名记录。日志会直接输出到控制台,包括当前的IPv6地址、检测到的变化,以及更新请求状态。

GitHub源码


免责声明: 此脚本与腾讯云官方无关,使用前确保您有权限使用腾讯云API管理您的域名。此脚本可自由使用并可进行二次开发。