随着 IPv6 的浪潮席卷全球,其卓越的性能、高效的路由以及无缝的兼容性正成为云计算领域的核心优势。对于运行在 Oracle Cloud Infrastructure (OCI) 上的计算实例(VPS)而言,启用 IPv6 不仅能优化网络体验,更能为您的应用拓展无限可能。本指南将带您步步深入,解锁 OCI 服务器的 IPv6 功能。

🎯 本指南速览:
无论您是初次配置还是已有基础,本指南将覆盖 IPv6 启用的所有关键环节:
- VCN 和子网配置: 在 OCI 虚拟云网络中分配 IPv6 CIDR。
- 地址分配: 为您的 VPS 分配专属 IPv6 地址。
- 路由表设置: 确保 IPv6 流量能够顺畅访问互联网。
- 安全规则配置: 精准控制 IPv6 流量的进出。
- 实例 VNIC 地址: 在 OCI 控制台层面将 IPv6 地址绑定到您的网络接口。
- 操作系统内部配置: 让您的 Linux 实例识别并使用 IPv6。
- 连接性验证与排障: 确认一切就绪,并提供常见问题解决方案。
✅ 准备就绪:
在您开始之前,请确保满足以下条件:
- OCI 账户: 拥有一个活跃的 Oracle Cloud 账户(本次演示使用付费账户)。
- Redwood 预览控制台: 本指南基于此控制台版本。如果您使用的是旧版,请在控制台右下角启用 Redwood 预览。
- 计算实例: 确保您已创建或准备好一个 OCI 计算实例(VPS),并已完成其默认设置。
- 虚拟云网络 (VCN): 已有配置好的 VCN。
- 子网 (Subnet): VCN 中已创建好子网。
一、赋能 VCN:启用 IPv6 支持 🌐
首先,我们需要为承载您实例的 虚拟云网络 (VCN) 分配一个 IPv6 CIDR 块。OCI 通常会慷慨地提供一个 /56
的 IPv6 块。
1、登录 OCI 控制台。
2、左上角导航至 “网络 (Networking)” -> “虚拟云网络 (Virtual Cloud Networks)”。
3、选择目标 VCN。如下所示,您可能已有多个 VCN。

4、在 VCN 详情页面,找到 “IP管理” -> “CIDR 块 / 前缀” 部分。

5、点击 “编辑 (Edit)” 或 “添加 IPv6 CIDR 块 (Add IPv6 CIDR Block)”。
6、勾选 “分配 Oracle 分配的 IPv6 /56 前缀 (Assign an Oracle allocated /56 prefix)” 选项。这是最常见且推荐的方式。
最后点击 “添加 CIDR 块”。

✨ 小贴士: OCI 会自动为您的 VCN 分配一个全局单播地址 (GUA) 的 /56
前缀。
二、子网腾飞:分配 IPv6 CIDR 🚀
接下来,我们需要从 VCN 分配的 IPv6 块中,为您的实例所在的子网划出一个 IPv6 CIDR 块,通常是 /64
。
- 仍在 VCN 详情页面,点击菜单中的 “子网 (Subnets)”。
- 选择目标子网。
- 在子网详情页面,点击 “IP管理”。
- 向下滚动找到 “IPv6 前缀”,点击 “添加 IPv6 前缀”,勾选 “分配 Oracle 分配的 IPv6 /64 前缀”。
- 在 “IPv6 CIDR 块 (IPv6 CIDR Block)” 字段,输入两个十六进制字符(
00-FF
)。例如,您可以输入BB
。 - 点击 “添加 IPv6 前缀”。

三、路由指引:配置 IPv6 互联网访问 🛣️
为了让您的 IPv6 流量能够畅游互联网,需要为子网关联的路由表添加一条规则,将所有外部 IPv6 地址(::/0
)的流量指向互联网网关。
1、在 VCN 详情页面,点击菜单中的 “路由 (Route Tables)”。
2、选择子网默认关联的路由表。

3、接着选择 “路由规则”,点击 “添加路由规则 (Add Route Rules)”。

4、按照下图所示填写规则信息:
目标类型 (Target Type): 选择 “互联网网关 (Internet Gateway)”。
目标 CIDR 块 (Destination CIDR Block): 输入 ::/0 (代表互联网上的所有 IPv6 地址)。
目标互联网网关 (Target Internet Gateway): 从下拉列表中选择已附加到您 VCN 的互联网网关。
(可选) 添加描述,例如 “允许 IPv6 互联网访问”。

5、点击 “添加路由规则 (Add Route Rules)”。
四、安全门卫:配置 IPv6 流量规则 🚨
您需要更新与实例 VNIC 关联的 安全列表 (Security List) 或 网络安全组 (Network Security Group, NSG)。默认情况下,OCI 使用安全列表。如果您使用了 NSG,也请确保配置相应的规则。
1、在 VCN 详情页面,点击菜单中的 “安全 (Security Lists)”。
2、选择默认的安全列表。

3、切换到 “安全规则”。在这里,您可以添加入站 (Ingress) 和出站 (Egress) 规则。通常,只需添加必要的 IPv6 流量。默认情况下,所有出站协议都是允许的,但我们仍需明确配置。向下滚动点击 “添加出站规则”:

放行所有出站 IPv6 流量(确保服务器能访问 IPv6 互联网):
目的地类型: CIDR
目的地 CIDR: ::/0
IP协议: 所有协议
最后点击 “添加出站规则”。

允许 ICMPv6 (用于 Ping 测试等):
源类型: CIDR
源 CIDR: ::/0
IP协议: IPv6-ICMP
最后点击 “添加入站规则” (这里通常为入站规则,让外部能够Ping通您的服务器)。
Ping是网络管理员用来测试主机之间网络连接的常用工具。 然而,出于安全考虑,有时我们需要禁止Ping请求。 Ping 依赖于 ICMP(Internet Control Message Protocol)协议,通过禁用 ICMP Echo Requests,可以有效减少不必要的网络流量并增强服务器的安全性。 本文将详细介绍如何在不同的 Linux 发行版中禁止和开启IPv4与IPv6 Ping。
⚠️ 重要提示: 仔细检查安全规则的 源/目标 CIDR (::/0
代表所有 IPv6 地址)、协议和端口设置,以确保安全性。
五、身份标识:为实例 VNIC 分配 IPv6 地址 🏠
这是关键一步:为您的计算实例的 网络接口 (VNIC) 分配一个具体的 IPv6 地址。
1、导航至 “计算 (Compute)” -> “实例 (Instances)”。
2、选择目标实例。
在实例详情页面,菜单栏切换到 “网络”,向下滚动到 “附加的 VNIC (Attached VNICs)” 部分,点击实例的主 VNIC。

3、在 VNIC 详情页面,点击菜单栏中的 “IP管理”,然后点击 “分配 IPv6 地址”。

4、点击 “分配 IPv6 地址 (Assign IPv6 Address)” 按钮后:
为了便于管理和记忆,您可以选择手动输入一个子网 /64 范围内的特定地址的后半部分(接口标识符),确保该地址未被占用。
最后点击 “分配”。

📝 请注意: 至此,OCI 控制台的操作已全部完成。请记下您刚刚分配的 IPv6 地址。
六、系统觉醒:配置实例操作系统识别 IPv6 💻
完成控制台操作后,您需要登录到实例内部,让操作系统识别并正确使用这个 IPv6 地址。
方法一:使用 DHCPv6 (推荐)
许多 Linux 发行版能够通过 DHCPv6 自动获取 OCI 分配的 IPv6 地址。
对于 Debian / Ubuntu 系统:
- 查看网卡名称:Bash
ip add show
- 临时获取 IPv6 地址(将
enp0s3
替换为您的实际网卡名):Bashsudo dhclient -6 enp0s3
- 验证:Bash
ip -6 addr show enp0s3
通常到这一步,IPv6 就已可用。要使其永久生效,您需要修改网络配置文件:- 对于 Ubuntu 18.04+ (使用 Netplan): 编辑
/etc/netplan/*.yaml
文件,在对应网卡配置下添加或确保dhcp6: true
。 然后运行sudo netplan apply
。 - 对于 Debian 11+
- 使用
/etc/network/interfaces
(传统方式) - 如果你正在使用或倾向于使用
/etc/network/interfaces
文件来管理网络(这是 Debian 11 默认安装时常见的情况,尤其是在服务器版中),你可以按照以下步骤配置 DHCPv6: - 确定你的网卡名称: 首先,你需要知道你的网络接口名称。通常是
eth0
或enpXsY
这样的形式。你可以通过运行ip add show
命令来查看。 - 编辑网络接口配置文件: 打开
/etc/network/interfaces
文件进行编辑:Bashsudo nano /etc/network/interfaces
- 添加或修改 IPv6 配置: 找到你的网卡配置部分(例如
auto eth0
和iface eth0 inet dhcp
)。在该部分下方,添加或修改为以下内容,其中eth0
替换为你的实际网卡名称:auto eth0 iface eth0 inet dhcp iface eth0 inet6 auto
iface eth0 inet6 auto
会告诉系统为eth0
接口自动配置 IPv6 地址,这通常包括通过 DHCPv6 获取地址。- 如果你想更明确地指定 DHCPv6,也可以使用
iface eth0 inet6 dhcp
。在大多数情况下,auto
已经足够。
- 保存并退出文件。
- 重启网络服务(或重启系统): 为了使更改生效,你需要重启网络服务。最稳妥的方法是重启整个系统:Bash
sudo reboot
或者,你也可以尝试重启networking
服务(这可能导致短暂的网络中断):Bashsudo systemctl restart networking
- 对于 Ubuntu 18.04+ (使用 Netplan): 编辑
对于 Oracle Linux / CentOS / RHEL 系统:
- 临时获取 IPv6 地址(将
ensX
替换为您的实际网卡名):Bashsudo dhclient -6 ensX
- 验证:Bash
ip -6 addr show ensX
要使其永久生效:- 使用 NetworkManager:Bash
nmcli connection modify <连接名> ipv6.method auto nmcli con down <连接名> && nmcli con up <连接名>
- 使用 network-scripts (适用于较旧的系统或特定配置): 编辑
/etc/sysconfig/network-scripts/ifcfg-ensX
文件,确保以下行存在并设置正确:IPV6INIT=yes IPV6_AUTOCONF=yes # 或 DHCPV6C=yes
然后重启网络服务:Bashsudo systemctl restart network
- 使用 NetworkManager:Bash
您的网卡(例如 enp0s6
)现在应该已经显示了刚才手动配置的 IPv6 地址。

七、连接性验证 ✅
完成上述所有步骤后,是时候进行最终的 IPv6 连接性验证了:
- 在实例内部检查 IP 地址:Bash
ip -6 addr show
确认您看到之前分配的全局 IPv6 地址。 - 测试出站 IPv6 连接 (Ping):Bash
ping6 bing.com # 或者 ping -6 google.com
成功收到回复表明您的实例可以访问外部 IPv6 网络。 - 测试出站 IPv6 连接 (Curl/Wget):Bash
curl -6 ifconfig.co # 或者 curl -6 ip.sb
确认显示的出口 IP 是您分配的 IPv6 地址。
💡 常见错误与排错提示:
- 防火墙检查: 仔细检查 OCI 的安全规则 (安全列表/NSG) 以及实例操作系统内部的防火墙设置(如
ufw
或firewalld
)。 - 配置持久化: 确认您已正确配置了操作系统级别的网络设置,以确保在重启后 IPv6 地址依然有效。
- 网络接口名称: 使用
ip link
或ip add show
命令确认实例上的正确网络接口名称,避免使用错误的网卡名。 - 路由检查: 确认操作系统内部存在正确的 IPv6 默认路由 (
ip -6 route
)。DHCPv6 通常会自动配置,但手动配置时务必注意添加。 - OCI 官方文档: OCI 控制台界面和具体选项可能会随着更新而略有变化,但核心步骤通常保持一致。遇到问题时,查阅最新的 OCI 官方文档是最好的解决途径。
结语
恭喜您!通过本指南,您已成功在 OCI 服务器上启用了 IPv6,并配置了相应的安全规则以放行流量。希望这篇超详细的图文教程能够帮助您顺利实现网络升级。别忘了收藏本页面,以备不时之需!
在配置过程中,您遇到任何问题或有其他关于 OCI 网络优化的问题吗?