[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"$fw2r06pjn1264":3},"\u003Cp>﻿# \u003Cspan style=\"background-color: #b95442;color: white;font-size: 0.43em;border-radius: 5px;padding: 2px 5px;\">转载\u003C\u002Fspan> 网站开启 IPv6 的三种方式\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"#1-nginx-%E5%A6%82%E4%BD%95%E5%BC%80%E5%90%AF-ipv6\">1.Nginx 如何开启 IPv6\u003C\u002Fa>\n\u003Cul>\n\u003Cli>\u003Ca href=\"#%E5%89%8D%E7%BD%AE%E6%9D%A1%E4%BB%B6\">前置条件\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#11-%E5%90%AF%E5%8A%A8%E7%9B%91%E5%90%AC-ipv6-%E5%9C%B0%E5%9D%80%E7%9A%84-nginx\">1.1 启动监听 IPv6 地址的 Nginx\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#12-%E6%9C%8D%E5%8A%A1%E5%99%A8%E9%AA%8C%E8%AF%81-ipv6-%E8%AE%BF%E9%97%AE\">1.2 服务器验证 IPv6 访问\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#13-%E5%AE%89%E5%85%A8%E7%BB%84%E5%AF%B9-ipv6-%E6%9D%A5%E6%BA%90%E5%9C%B0%E5%9D%80%E6%8E%88%E6%9D%83%E8%AE%BF%E9%97%AE\">1.3 安全组对 IPv6 来源地址授权访问\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#14-%E6%9C%AC%E5%9C%B0%E7%94%B5%E8%84%91%E9%AA%8C%E8%AF%81-ipv6-%E8%AE%BF%E9%97%AE\">1.4 本地电脑验证 IPv6 访问\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#15-%E5%9F%9F%E5%90%8D%E6%B7%BB%E5%8A%A0-ipv6-%E5%9C%B0%E5%9D%80%E8%A7%A3%E6%9E%90\">1.5 域名添加 IPv6 地址解析\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#16-ipv6-%E7%BD%91%E7%AB%99%E5%BC%80%E5%90%AF%E9%AA%8C%E8%AF%81\">1.6 IPv6 网站开启验证\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#2-k8s-%E5%A6%82%E4%BD%95%E5%BC%80%E5%90%AF-ipv6\">2. K8S 如何开启 IPv6\u003C\u002Fa>\n\u003Cul>\n\u003Cli>\u003Ca href=\"#21-%E5%88%9B%E5%BB%BA-ipv6-nat64-%E7%89%88%E6%9C%AC%E7%9A%84-ingress\">2.1 创建 IPv6 NAT64 版本的 Ingress\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#22-%E9%AA%8C%E8%AF%81-ipv6-%E7%BD%91%E7%AB%99%E6%98%AF%E5%90%A6%E5%BC%80%E5%90%AF\">2.2 验证 IPv6 网站是否开启\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#3-istio-%E6%9C%8D%E5%8A%A1%E7%BD%91%E6%A0%BC%E5%A6%82%E4%BD%95%E5%BC%80%E5%90%AF-ipv6\">3. Istio 服务网格如何开启 IPv6\u003C\u002Fa>\n\u003Cul>\n\u003Cli>\u003Ca href=\"#31-%E5%88%9B%E5%BB%BA-ipv6-%E8%BE%B9%E7%BC%98%E4%BB%A3%E7%90%86%E7%BD%91%E5%85%B3\">3.1 创建 IPv6 边缘代理网关\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#32-%E5%88%9B%E5%BB%BA-ipv6-gateway\">3.2 创建 IPv6 Gateway\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#33-%E5%88%9B%E5%BB%BA-ipv6-virtual-service\">3.3 创建 IPv6 Virtual Service\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"#34-%E9%AA%8C%E8%AF%81-ipv6-%E7%BD%91%E7%AB%99%E6%98%AF%E5%90%A6%E5%BC%80%E5%90%AF\">3.4 验证 IPv6 网站是否开启\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>从传统二进制部署的 Nginx，到云原生部署的 K8S、Istio，分别介绍网站开启 IPv6 的三种方式。\u003C\u002Fp>\n\u003Ch2 id=\"1nginx-如何开启-ipv6\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#1nginx-如何开启-ipv6\">\u003Cspan>1.Nginx 如何开启 IPv6\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh2>\n\u003Ch3 id=\"前置条件\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#前置条件\">\u003Cspan>前置条件\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"\u002Fdoc\u002Fserver\u002Ftencent_cloud_cvm_ipv6\">服务器已开启 IPv6\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3 id=\"11-启动监听-ipv6-地址的-nginx\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#11-启动监听-ipv6-地址的-nginx\">\u003Cspan>1.1 启动监听 IPv6 地址的 Nginx\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>默认 Nginx 的配置文件（\u002Fetc\u002Fnginx\u002Fnginx.conf）已经开启 IPv6 访问，启动 Nginx。\u003C\u002Fp>\n\u003Cpre class=\"shiki vitesse-dark\" style=\"background-color:#121212;color:#dbd7caee\" tabindex=\"0\">\u003Ccode class=\"language-text\">\u003Cspan class=\"line\">\u003Cspan>    server {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>        listen       80;\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>        listen       [::]:80;  ## 监听 IPv6 的 80 端口\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>        ...\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>    }\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>可以看到 Ngnix 同时监听在 IPv4 和 IPv6 地址上。\u003C\u002Fp>\n\u003Cpre class=\"shiki vitesse-dark\" style=\"background-color:#121212;color:#dbd7caee\" tabindex=\"0\">\u003Ccode class=\"language-text\">\u003Cspan class=\"line\">\u003Cspan># netstat -ntlp | grep nginx\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      138362\u002Fnginx: maste\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>tcp6       0      0 :::80                   :::*                    LISTEN      138362\u002Fnginx: maste\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3 id=\"12-服务器验证-ipv6-访问\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#12-服务器验证-ipv6-访问\">\u003Cspan>1.2 服务器验证 IPv6 访问\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>在服务器上通过 curl 命令可以验证 IPv6 访问情况\u003C\u002Fp>\n\u003Cpre class=\"shiki vitesse-dark\" style=\"background-color:#121212;color:#dbd7caee\" tabindex=\"0\">\u003Ccode class=\"language-text\">\u003Cspan class=\"line\">\u003Cspan># curl -g http:\u002F\u002F[2402:4e00:1013:e500:0:9671:f018:4947] -I\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>HTTP\u002F1.1 200 OK\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>Server: nginx\u002F1.20.1\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>Date: Sat, 04 Dec 2021 13:58:37 GMT\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>Content-Type: text\u002Fhtml\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>Content-Length: 4833\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>Last-Modified: Fri, 16 May 2014 15:12:48 GMT\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>Connection: keep-alive\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>ETag: \"53762af0-12e1\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan>Accept-Ranges: bytes\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3 id=\"13-安全组对-ipv6-来源地址授权访问\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#13-安全组对-ipv6-来源地址授权访问\">\u003Cspan>1.3 安全组对 IPv6 来源地址授权访问\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>接下来在 `安全组` 中对 监听在 IPv6 地址上的 80 端口授权访问。\u003C\u002Fp>\n\u003Cp>\u003Cimg src=\"\u002Fdoc\u002FsecurityGroupEnableIPv6.png\" alt=\"安全组-IPv6\">\u003C\u002Fp>\n\u003Ch3 id=\"14-本地电脑验证-ipv6-访问\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#14-本地电脑验证-ipv6-访问\">\u003Cspan>1.4 本地电脑验证 IPv6 访问\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>如果 \u003Ca href=\"\u002Fdoc\u002Fuser\u002Fenable_ipv6\">本地网络已开启 IPv6访问\u003C\u002Fa>，接下来参照 \u003Ca href=\"\u002Fdoc\u002Fuser\u002Fview_ipv6_adress_url\">浏览器访问 IPv6 地址\u003C\u002Fa>，在本地电脑通过浏览器可以验证 IPv6 访问。\u003C\u002Fp>\n\u003Ch3 id=\"15-域名添加-ipv6-地址解析\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#15-域名添加-ipv6-地址解析\">\u003Cspan>1.5 域名添加 IPv6 地址解析\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"\u002Fdoc\u002Fserver\u002Fipv6_domain_record\">给域名添加 IPv6 解析记录（AAAA）\u003C\u002Fa>\u003Cimg src=\"\u002Fdoc\u002Fipv6_domain_resolve.png\" alt=\"IPv6 解析记录（AAAA)\">\u003C\u002Fp>\n\u003Cp>添加完后可以通过 \u003Ca href=\"https:\u002F\u002Fipw.wsmdn.top\u002Fdns\u002F\">IPv6 在线域名解析工具\u003C\u002Fa> 对其解析验证。\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>同一个主机名可以同时解析 IPv4（A 记录） 和 IPv6（AAAA 记录)，本地浏览器一般 IPv6 优先访问。\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch3 id=\"16-ipv6-网站开启验证\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#16-ipv6-网站开启验证\">\u003Cspan>1.6 IPv6 网站开启验证\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>通过 \u003Ca href=\"https:\u002F\u002Fipw.wsmdn.top\u002Fipv6webcheck\u002F\">网站IPv6开启验证工具\u003C\u002Fa> 来验证 IPv6 是否开启成功。\u003C\u002Fp>\n\u003Ch2 id=\"2-k8s-如何开启-ipv6\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#2-k8s-如何开启-ipv6\">\u003Cspan>2. K8S 如何开启 IPv6\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>在 K8S 中对 Web 服务来说，一般通过 Ingress 对用户提供流量访问，所以 K8S 中开启 IPv6，就是 Ingress 支持 IPv6。\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>此处以 腾讯云容器服务为例，介绍如何开启 IPv6。\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>参照文章 \u003Ca href=\"\u002Fdoc\u002Fserver\u002Ftencent_cloud_cvm_ipv6\">腾讯云 cvm 开启 IPv6\u003C\u002Fa> ，提交 IPv6 内测申请。\u003C\u002Fp>\n\u003Ch3 id=\"21-创建-ipv6-nat64-版本的-ingress\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#21-创建-ipv6-nat64-版本的-ingress\">\u003Cspan>2.1 创建 `IPv6 NAT64` 版本的 Ingress\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>创建 `IPv6 NAT64` 版本的 Ingress。\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>IPv6 NAT64：用户与 `IPv6 NAT64` 的 LB 之间是 IPv6 访问，`IPv6 NAT64` 的 LB 与后端 Service、Pod 通信是 IPv4。 优点：业务程序无需改造网络，可支持 IPv6 网络访问。 缺点： 无法获取客户端真实 IPv6 地址。\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>\u003Cimg src=\"\u002Fdoc\u002Fk8s-ipv6-ingress.png\" alt=\"K8S 如何开启 IPv6\">\u003C\u002Fp>\n\u003Cp>接下来参照上文，对该 Ingress 背后的负载均衡器添加对来源 IPv6 地址访问的安全组策略即可。\u003C\u002Fp>\n\u003Ch3 id=\"22-验证-ipv6-网站是否开启\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#22-验证-ipv6-网站是否开启\">\u003Cspan>2.2 验证 IPv6 网站是否开启\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>验证方法同上，此处不再赘述。\u003C\u002Fp>\n\u003Ch2 id=\"3-istio-服务网格如何开启-ipv6\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#3-istio-服务网格如何开启-ipv6\">\u003Cspan>3. Istio 服务网格如何开启 IPv6\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh2>\n\u003Cp>服务网格 istio，比 K8S 原生的 Ingress 管理流量更方便，如果你使用了服务网格，就不需要对 K8S 的 ingress 开启 IPv6 访问，直接在服务网格中开启 IPv6 访问。\u003C\u002Fp>\n\u003Ch3 id=\"31-创建-ipv6-边缘代理网关\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#31-创建-ipv6-边缘代理网关\">\u003Cspan>3.1 创建 IPv6 边缘代理网关\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>创建边缘代理网关时，选择提前创建好 IPv6 LB。 \u003Cimg src=\"\u002Fdoc\u002Fistio-ingress-ipv6.png\" alt=\"创建 IPv6 边缘代理网关\">\u003C\u002Fp>\n\u003Ch3 id=\"32-创建-ipv6-gateway\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#32-创建-ipv6-gateway\">\u003Cspan>3.2 创建 IPv6 Gateway\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>创建 IPv6 Gateway 时，关联刚创建的 IPv6 边缘代理网关。 \u003Cimg src=\"\u002Fdoc\u002Fistio-gateway-ipv6.png\" alt=\"istio-gateway-ipv6\">\u003C\u002Fp>\n\u003Cp>如果开启 HTTPS 访问，则添加好证书即可。 \u003Cimg src=\"\u002Fdoc\u002Fistio-gateway-ipv6-https.png\" alt=\"istio-gateway-ipv6-https\">\u003C\u002Fp>\n\u003Ch3 id=\"33-创建-ipv6-virtual-service\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#33-创建-ipv6-virtual-service\">\u003Cspan>3.3 创建 IPv6 Virtual Service\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>创建 IPv6 Virtual Service，挂载上面创建的 IPv6 Gateway。\u003C\u002Fp>\n\u003Ch3 id=\"34-验证-ipv6-网站是否开启\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#34-验证-ipv6-网站是否开启\">\u003Cspan>3.4 验证 IPv6 网站是否开启\u003C\u002Fspan>\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>验证方法同上，此处不再赘述。\u003C\u002Fp>\n\u003Cp>IPv6 大势所趋，广大站长赶紧行动吧。\u003C\u002Fp>\n",1787918413301]