为 OCI 计算实例启用 IPv6

为已有 OCI VCN 分配 IPv6 /56、给子网分配 /64、给 VNIC 分配地址并配置路由和安全规则。

#type / howto #status / growing #tech / network #resource / oracle-cloud #platform / server

[!warning] IPv6 没有 IPv4 NAT 的心理缓冲 Oracle 分配的 GUA 是全球可路由地址。启用前必须准备 IPv6 路由、OCI 安全规则和主机防火墙;不要只配置地址后就认为安全。

为 OCI 计算实例启用 IPv6

目标

实例同时具备 IPv4 和 IPv6,能够通过 IPv6 访问互联网;只有明确允许的 IPv6 入站端口可达。

前置条件

  • 实例已有可用 SSH 或控制台恢复入口;
  • VCN、子网和 VNIC 的关系已理解;
  • 子网是允许互联网通信的公有子网;
  • Internet Gateway 已创建;
  • 主机 UFW/nftables 会处理 IPv6。

配置链

VCN 获得 Oracle /56 GUA
  -> 子网从 /56 获得 /64
  -> VNIC 从 /64 获得 IPv6 地址
  -> 路由表添加 ::/0 -> Internet Gateway
  -> NSG/Security List 添加最小 IPv6 规则
  -> 主机防火墙添加对应 IPv6 规则

步骤

1. 给 VCN 添加 IPv6 前缀

进入 Networking -> Virtual Cloud Networks -> 目标 VCN -> CIDR blocks/IPv6 prefixes,选择 Oracle-allocated IPv6 /56 前缀。

记录该 /56。添加后通常不能随意编辑,先确认选中的是正确 VCN。

2. 给子网添加 /64

进入目标 Subnet -> IPv6 prefixes,从 VCN /56 中选择一个 /64。OCI 的 IPv6 子网固定为 /64

确认子网的 Public/Private 属性符合预期。私有子网即使获得 GUA,也不会自动允许互联网通信。

3. 给 VNIC 分配 IPv6

进入 Compute instance -> Attached VNICs -> Primary VNIC -> IPv6 addresses,选择自动分配或指定地址。

记录完整 IPv6 地址。不要把截图中的地址直接公开。

4. 添加 IPv6 默认路由

在子网关联的 Route Table 中添加:

Destination type: CIDR block
Destination: ::/0
Target type: Internet Gateway
Target: 当前 VCN 的 Internet Gateway

IPv4 的 0.0.x.x/0 不会代替 IPv6 的 ::/0

5. 添加最小 IPv6 安全规则

若 Web 服务需要公开:

Source: ::/0
Protocol: TCP
Destination ports: 80,443

SSH 应优先限制为可信 IPv6 /128 或网段,不要直接开放 ::/0。如果本地网络没有稳定 IPv6,继续用受限 IPv4 SSH。

6. 检查主机防火墙

Debian/Ubuntu 使用 UFW 时:

grep '^IPV6=' /etc/default/ufw
sudo ufw status verbose

应为 IPV6=yes,并显示相应 (v6) 规则。修改前备份配置,不要在远程会话中直接 reset。

7. 检查操作系统地址与路由

ip -6 address show scope global
ip -6 route
ping -6 -c 3 2606:4700:4700::1111
curl -6 --fail --max-time 10 https://ifconfig.co

预期:有全局 IPv6 地址、存在默认路由、外部看到的地址与 VNIC 分配一致。

8. 从外部验证入站

从另一台有 IPv6 的设备执行:

curl -6 -I https://your-domain.example
ssh -6 -v user@your-ipv6

只测试预期公开的端口。可通过 DNS AAAA 记录绑定域名,但应在服务和防火墙验证后添加。

常见问题

实例有 IPv6,但不能访问互联网

依次检查子网公有属性、::/0 路由、Internet Gateway、VNIC 地址和操作系统默认路由。

IPv6 出站正常,入站超时

检查 NSG/Security List、UFW (v6) 规则、服务是否监听 [::],以及本地测试网络是否真的有 IPv6。

开放 IPv4 端口后 IPv6 仍不通

OCI IPv4 与 IPv6 安全规则分别使用 IPv4/IPv6 CIDR,必须各自配置。

回滚

先删除 DNS AAAA,再撤销入站规则和 VNIC IPv6 地址。移除前缀或路由前确认没有其他实例使用它。

创建于 2026/7/20 更新于 2026/7/20