阿里云IPv6公网IP配置

前言

之前说过我现在这个项目技术上其实并不复杂,复杂的是网络。因为我们系统和外部系统交互,而无论是外部系统还是内部系统都有各种安全限制,其中不乏通过防火墙、IP白名单等来进行限制的。当然这是常规操作,然而集团有个系统需要我们提供H5页面嵌入到他们的app上,坑爹的是他们要求你必须支持IPv6。

好啦!坑爹事情就开始了,测试环境不提供公网IP,集团要求我们提供公网IPv6地址。没办法了只能用厂商那边的测试环境了,因为他们提供公网IP,但是他们提供的测试环境不支持IPv6。我度娘了一下,我草IPv6要找运营商申请...

于是就想了一下是否自费申请一个阿里云ECS服务器IPv6公网IP,然后使用nginx代理出去,于是就开始造。

操作

前提

已经购买的ECS服务器

操作系统CentOS 7.6

操作参考

搜索了好一阵没有看到配置公网IPv6的文档,只找到配置ECS实例的IPv6地址 文档。幸运的在步骤三中是开通IPv6公网带宽 的内容,地址如下:help.aliyun.com/zh/ecs/user...

实际操作

1、为已有实例分配IPv6地址时

检查自己的实例支持IPv6后,VPC开通IPv6和交换机开通IPv6。

进入控制台-专有网络,我们选择自己ECS所在的地域后发现专有网络已经存在,这一步可以跳过。

直接进入下一步,为已有VPC开通IPv6网段 ,直接开通IPv6

点击开通IPv6

确定后专有网络IPv6网段字段信息如下:

2、为已有实例分配IPv6地址

登录ECS管理控制台,进入实例,选择地域后,在需要开通IPv6的实例后打开网络和安全组

找到其下的管理辅助私网IP

进入找到IPv6地址,点击分配新IP

默认自动分配,直接确定

分配完了怎么查看你的IPv6地址?ECS管理控制台,选择实例与镜像 > 实例 ,找到目标实例,单击实例ID进入实例详情 页面,在绑定资源区域。

3、开通IPv6公网带宽

专有网络管理控制台,公网访问 > IPv6网关,点击id

进入IPv6网关的详情页面,点击开通公网带宽

按自己需要进行购买带宽流量

开通后这里显示就变了

4、配置IPv6地址

远程登录你自己的ecs服务,使用阿里云提供工具命令的自动配置IPv6地址(非CentOS参考文档自行获取相应的地址)

bash 复制代码
wget https://ecs-image-utils.oss-cn-hangzhou.aliyuncs.com/ipv6/rhel/ecs-utils-ipv6
#使用管理员权限执行以下命令,运行ecs-util-ipv6工具。
chmod +x ./ecs-utils-ipv6
./ecs-utils-ipv6

执行后结果如下

检查是否安装了多网卡配置工具,如果没安装就不用管了,如果安装了参照文档操作即可

bash 复制代码
#以下命令二选一
ls /sbin/eni-ifscan
systemctl cat eni.service

结果我的没有安装

5、添加IPv6安全组规则

ECS管理控制台,选择网络与安全 > 安全组 ,在操作 列中,单击管理规则 ,选择入方向出方向

配置安全组

添加80端口和8080端口的出入安全组,一般配入就行

6、测试IPv6的连通性

使用ipv6访问外部测试
ping -6 aliyun.com
使用ipv6从外部访问
从外部使用telent访问ipv6和端口

按照结果连通性是没问题了,接下来测试一下安全组的端口80和8080,找一台能访问公网支持IPV6的ecs。

端口不通,各种方法试了一天,突然找到一条信息"端口需要监听"。

然后发现是因为对应的端口没有服务监听,然后马上安装nginx将80和8080端口配置上。

ini 复制代码
server {
      listen       8080;
      #这个是配置ipv6端口监听的配置,80也一样
      listen [::]:8080;
      server_name localhost;
​
      location / {
          root   html;
          index index.html index.htm;
      }
  }

安装后再使用telnet -6结果就通了

ipv6网站访问

上述我们配置好了IPv6已经相应的端口,但是当我们使用本地想要访问IPV6的ip地址时需要注意格式为:

ruby 复制代码
http(s)://[ipv6]:port/path1/path2

当然,这还不是最主要的,你可能使用了上述的格式也访问不了。

因为能否使用ipv6的地址访问网站还需要你所在的网络和系统都支持ipv6,检测方式如下:

objectivec 复制代码
要判断本地电脑是否支持IPv6的网站访问,可以采取以下几种方法:
1、使用第三方测试网站:可以访问一些专门用于测试IPv6支持的网站,如http://test-ipv6.com/,如果能够正常访问并显示测试结果,则说明本地电脑支持IPv6。
2、使用命令行工具:在Windows系统中,可以打开命令提示符(CMD),然后输入"ping6 ::1",如果能够正常响应,则说明本地电脑支持IPv6。在Linux或Mac OS系统中,可以使用"ping6"命令进行类似的测试。
3、检查网络适配器设置:在Windows系统中,可以打开网络和共享中心,查看本地网络连接的状态,如果IPv6协议已经启用,则说明本地电脑支持IPv6。
4、使用浏览器测试:可以在浏览器地址栏输入"http://ipv6test.google.com/",如果能够正常访问并显示测试结果,则说明本地电脑支持IPv6。
***需要注意的是,即使本地电脑支持IPv6,也需要相应的网络设备和ISP提供IPv6服务才能正常使用。因此,在进行测试时需要确保网络连接正常,并且ISP已经提供了IPv6服务。***

访问test-ipv6.com/结论是网络都不支持

打开我的mac电脑系统偏好设置查看

markdown 复制代码
1、打开"系统偏好设置"并选择"网络"。
2、在左侧栏中选择你的网络接口(例如以太网或Wi-Fi),然后点击"高级"按钮。
3、在弹出的窗口中选择"TCP/IP"选项卡。
4、查找"IPv6地址"或"IPv6 配置"部分,这里会显示你的Mac的IPv6地址。
***也可以在终端使用命令ipconfig getifaddr en0***

呵呵,没戏!

收获

其实ipv6这个东西早好几年就听说过了,最近在这个公司做项目也遇到过好几次分配资源的给我们弄了个IPv6的服务器。然后被我果断拒绝了,引入从来没有接触过的东西绝对坑爹,毕竟我是菜鸡。

没想到这次因为一个bug,各种环境不相通导致自己不得不尝试接触ipv6,果然又让自己踩了个坑。

这样也好至少自己对ipv6这东西有点底了,反正后面有人想再让我ipv4转成ipv6,我肯定会弄死他。

这东西还没完全普及,在没有强大团队和领导支持下,不要轻易在生产上尝试很危险。

总结

1、阿里云的IPv6配置和申请,照着文档来就行,仔细点就不会错;

2、阿里云的服务器看型号,大多都是支持IPv6的,配置后使用另外一台测试可以测试连通性;

3、如果要telnet端口需要启动对应服务监听,监听IPv6的端口这里用nginx做了个简单的演示,确实可行;

4、就算部署了IPv6的网站,想要访问需要客户端的系统和网络以及其运营商支持;

5、如非必要,生产上"不要轻易尝试放纵的滋味,你可知这样会让你心碎";

虽然因为各种原因,公司提供给人集团不合规,但也算是一种学习。

本文只是粗浅的记录了一下自己遇到的 ipv6 的情况,如果你觉得本文描述不对或者你对 ipv6 有更好的理解,也希望能指正或者指教一下,感谢!

相关推荐
DY009J13 分钟前
深度探索Kali Linux的精髓与实践应用
linux·运维·服务器
程序员-珍24 分钟前
虚拟机ip突然看不了了
linux·网络·网络协议·tcp/ip·centos
什么鬼昵称1 小时前
Pikachu- Over Permission-垂直越权
运维·服务器
码农小白1 小时前
linux驱动:(22)中断节点和中断函数
linux·运维·服务器
4647的码农历程1 小时前
Linux网络编程 -- 网络基础
linux·运维·网络
魏大橙2 小时前
linux RCE本地/公网测试
网络·网络协议·udp
醉颜凉2 小时前
银河麒麟桌面操作系统V10 SP1:取消安装应用的安全授权认证
运维·安全·操作系统·国产化·麒麟·kylin os·安全授权认证
C++忠实粉丝2 小时前
Linux环境基础开发工具使用(2)
linux·运维·服务器
康熙38bdc3 小时前
Linux 环境变量
linux·运维·服务器
鄃鳕3 小时前
HTTP【网络】
网络·网络协议·http