阿里云 Ubuntu 支持 IPv6 的完整步骤

piaoling  2017-12-08 12:15:10
使用 Hurricane Electric Free IPv6 Tunnel Broker 来让阿里云服务器支持 IPv6

前几天提交新版 iOS App 被拒,原因是在 IPv6 only 的环境下无法使用。但阿里云的 ECS 并不支持 IPv6,只提供 IPv4 的 IP。好在 Hurricane Electric (下文简称 HE)提供免费的 IPv6 通道,基本够用了。

先说下 ECS 的基本环境:

  • 操作系统:Ubuntu
  • 前端服务器:Nginx

启用 IPv6 的主要有四步:

  1. 注册并创建 IPv6 通道
  2. 配置 ECS 使其支持 IPv6
  3. 配置 Nginx 使其监听 IPv6 端口
  4. 配置 DNS 使其支持 IPv6 解析

第一步:注册并创建 IPv6 通道

  1. 注册 https://www.tunnelbroker.net/ (需要邮箱验证)
  2. 点击 Create Regular Tunnel
  3. 在IPv4 Endpoint (Your side)处填上 ECS 的 IPv4 地址
  4. 在Available Tunnel Servers中选择Hong Kong, HK(如果你面向海外用户,可以选择更接近目标用户的地区)
  5. 点击Create Tunnel后,通道就创建完成了

第二步:配置 ECS 使其支持 IPv6

  1. 编辑/etc/sysctl.conf,将以下三项的配置改成0

net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.lo.disable_ipv6 = 0
  1. 在/etc/network/interfaces底部加上以下内容(注:下面大写的处,需要替换成你在 HE 得到的Server IPv6 Address,但不包括最后的::1/64,如:2001:470:100:100)

  auto he-ipv6
  iface he-ipv6 inet6 v4tunnel
  address <IPV6>::2
  netmask 64
  remote <HE 的 Server IPv4 Address>
  local <阿里云的 IPv4 地址>
  endpoint any
  ttl 255
  gateway <IPv6>::1
  up ip -6 route add 2000::/3 via ::<HE 的 Server IPv4 Address> dev he-ipv6
  up ip -6 addr add <IPv6>::1:1/128 dev he-ipv6
  up ip -6 addr add <IPv6>::2:1/128 dev he-ipv6
  down ip -6 route flush dev he-ipv6

  1. 重启服务器
  2. 执行ifup he-ipv6确认 IPv6 已启用
  3. ping6 ipv6.baidu.com 测试ipv6是否生效,如果不生效,可以尝试将local改为阿里云服务器内网IP

第三步:配置 Nginx 使其监听 IPv6 端口


server {
  listen 80; // 监听 IPv4 的 80 端口
  listen [::]:80; // 监听 IPv6 的 80 端口
}

server {
  listen 443 ssl http2; // 监听 IPv4 的 443 端口
  listen [::]:443 ssl http2; // 监听 IPv6 的 443 端口
}

第四步:配置 DNS 使其支持 IPv6 解析

这步最简单,只需给相应的域名加上AAAA解析,值填 HE 里的Client IPv6 Address,去掉最后的/64即可,如2001:470:100:100::2

类别 :  默认(751)  |  浏览(9373)  |  评论(0)
发表评论(评论将通过邮件发给作者):

Email: