为 OCI 计算实例启用 IPv6
为已有 OCI VCN 分配 IPv6 /56、给子网分配 /64、给 VNIC 分配地址并配置路由和安全规则。
[!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 地址。移除前缀或路由前确认没有其他实例使用它。
Related notes
- 所属 MOC:甲骨文云服务器 MOC
- 网络模型:OCI VCN、子网、VNIC 与安全层
- 排障:OCI SSH 与端口连通性排查