一、背景
如今很多产品,比如 Apple AppStore,需要 IPv6 地址才能继续开展业务,但是像国内很多如阿里云、华为云等主机商都不支持 IPv6,那么要如何才能支持 IPv6 呢?
二、申请 IPv6 地址
在 IPv6 推行时,为兼容现有的 IPv4 网络,过渡技术 – IPv6 协议隧道方法 应运而生,接下来介绍的由 HE.NET (Hurricane Electric) 推出的免费 IPv6 Tunnel Broker 便是利用这个技术,使仅有 IPv4 的主机支持 IPv6。
经实际测试目前支持的主机包括不限于 阿里云、华为云、微软 Azure、亚马逊 AWS EC2(目前 AWS 已可分配自己的 IPv6,参见《Amazon AWS EC2 如何安装 CentOS7、修改主机名(hostname)、开启 IPv6》)、拥有固定 IP 的家用电脑等。
其注册地址:Register 注册,全站英文,注册界面可参考下面截图:
登录后,点击控制面板左边的 Create Regular Tunnel
开始申请一个 IPv6 地址,界面大致如下:
申请前先确保自己的主机可以 ping 得通,否则无法创建,在 IPv4 Endpoint (Your side) 输入主机 IP:
然后选择离主机近的节点,HE.NET 四大洲都有接入点,但是不能看地址选择,正确的选择应是通过 ping
或 traceroute
来确定,比如 亚洲有新加坡、香港、日本三个接入点,地域上离大陆很近,然而延迟都非常高,并不适合。
创建后点击控制面板左侧的 Main Page,即可看到刚创建的隧道,至此,IPv6 申请完成。
三、打通 IPv6 隧道
点击刚创建的隧道的 Name
进入编辑模式,可以看到申请的 IPv6 地址,若要删除隧道则可以在此点击 Delete Tunnel
,在 Client IPv4 Address
可以修改 IP:
点击 Example Configurations
,下拉框选择主机的操作系统获取相应的配置代码:
如 Debian/Ubuntu
,登录主机命令行,编辑 /etc/network/interfaces
(PS:CentOS 是 /etc/sysconfig/network-scripts/ifcfg-eth0
),将刚才的配置代码复制进来:
注意,如果主机有私网地址,那么配置里的 [client ipv4 addr]
应该填私网地址。
另外如果系统比较新,可能需要额外安装 ifupdown
软件包。
使 IPv6 生效:
失效则是(不想用了记得删掉刚才的配置,否则重启后还是会自动启用):
测试一下:
四、排错
按步骤操作还是用不了:
1、配置里的 local x.x.x.x 配置对了吗?
有内网地址必须填内网地址。
2、系统禁用 IPv6 了吗?
主要出现在阿里云 ECS,修改 /etc/sysctl.conf ,将 disable_ipv6
相关字段参数都设为 0,大致是这样的(不同操作系统不同版本可能不同):
3、到 server ipv4 addr 通吗?
通过 ping 或 路由跟踪 取最佳节点(PS:国内不选香港、日本、新加坡接入点,延迟比美国还高。)
4、如何设置 IPv6 优先?
默认都是 ipv6 优先,Windows 可以执行以下命令查看:
五、配置实例
AWS
AWS 目前在 EC2 中已经全面开放 IPv6 了,但 Amazon Lightsail 中仍然不支持,因此下面以 LightSail 为例。
申请步骤都一样,就不赘述了,参考配置如下(Ubuntu):
GCE
GCP 平台自带的防火墙阻止流量通过,无法使用隧道,可以使用自带的负载均衡(需费用)。
Azure
还在研究中。
原文转载自:https://vircloud.net/
转载请注明:落伍老站长 » 申请 HE.NET IPv6 隧道以使主机支持 IPv6