前几个月刚把AWS的云服务器的IP换成了IPv6,这不手又痒痒了。决定把手里的一台Oracle Cloud(甲骨文云服务器)也改成IPv6,虽然Oracle没有明确提出非要转到IPv6,
不过毕竟已经是2024年了,谁还不想跟上时代呢。
过程1: 创建IPv6 CIDR块
IPv6 CIDR块
- 打开Oracle 虚拟云网络控制台
- 选择需要添加IPv6的VCN
- 点击左侧菜单栏中的CIDR Blocks/Prefixes
- 点击右侧界面中的 Add CIDR Block/IPv6 Prefix
- 勾选Assign an Oracle allocated IPv6 /56 preflx,并点击添加CIDR按钮
- 稍等一会后,你会发现在CIDR Blocks界面中多出了一个 /56 的 IPv6 段了
将IPv6 CIDR块与子网关联
- 打开Oracle 虚拟云网络控制台
- 点击页面左侧边栏的 子网
- 选择使用中的子网
- 在做侧边栏中找到IPv6 Prefixes 进入并在右侧界面中点击Add IPv6 Prefix。
- 在弹出的界面中勾选Assign an Oracle allocated IPv6 /64 prefix 在下面的输入框中输入2位16进制的代码
过程2:更新安全列表规则
要使实例能够通过 IPv6 发送和接收流量,您必须更新安全组规则以包含 IPv6 地址的规则。比如你的网站 80端口
更新入站安全组规则
- 打开Oracle 虚拟云网络控制台
- 点击页面左侧边栏的 安全列表 并选择正在使用的列表。
- 在入站规则选项卡中,选择编辑入站规则。
- 对于允许 IPv4 流量的每条规则,选择添加规则并配置该规则以允许相应的 IPv6 流量。例如,要添加允许通过 IPv6 的所有 HTTP 流量的规则,请为“类型 ”和“源”选择HTTP。::/0
- 保存规则。
过程3:更新路由表
更新公有子网的路由表
- 打开Oracle 虚拟云网络控制台
- 点击页面左侧边栏的 路由表。选择正在使用的路由表。
- 选择路由表。选择添加路由规则。
- 选择添加路线。选择::/0目的地 。
- 保存更改。
为实例分配IPv6地址
- 打开实例控制台
- 进入需要改为IPv6的实例详情页面
- 找到左侧边栏里的附加的 VNIC,并点击右侧的VNIC
- 选择左侧边栏里的IPv6 地址后选择右侧的分配IPv6地址,在弹出的页面中选择自动从 IPv6 前缀中分配
现在我们回到实例的管理面板,查看主机的详细信息,就会发现已经被分配了新的IPv6地址了。
分配了IPv6地址不算完,Apache2也需要修改
ports.conf 增加你的监听端口
修改/etc/apache2/ports.conf
添加或修改以下内容
1 | Listen [::]:80 |
注意如果原来是Listen 80
的话,请直接修改此处,或使用#
注释掉
查看Apache2是否开启IPv6
使用netstat -tln
结果中出现tcp6 :::80
就算成功了。
接下来重新启动Apache2。我们可以去看看是否能够正常显示网站了。
查看vsftpd是否开启IPv6
使用less /etc/vsftpd.conf
查看最前面的几行,
1 | #listen=YES |
是否是这样,不是改成这样,并在AWS服务器的EC2管理面板的安全组中添加 ::/0
入站规则
Nginx的设置
如果你是新版的nginx(我的是1.24)的话,可以省略此步,如果不是,需要先给Nginx添加 --with-ipv6
的模块
重新编译并安装,替换原来的nginx
在网站设置文件 xxx.conf中添加
1 | listen 80; |
重启Nginx即可。