甲骨文云免费 VPS 如何配置 IPv6 地址访问谷歌?

文章导读
甲骨文云免费实例默认支持双栈网络,但需要同时在控制台和操作系统内启用 IPv6 才能生效,能否访问特定网站取决于区域路由策略。
📋 目录
  1. A 命令速用版
  2. B 为什么会这样
  3. C 分步处理
  4. D 怎么验证是否生效
  5. E 常见坑
A A

甲骨文云免费实例默认支持双栈网络,但需要同时在控制台和操作系统内启用 IPv6 才能生效,能否访问特定网站取决于区域路由策略。

先说结论:配置 IPv6 需要在云端控制台开启子网支持并放行安全列表,同时在系统内确认网卡获取了地址,但具体能否访问谷歌取决于所在区域的路由出口策略。

  • 适合:需要公网 IPv6 connectivity 的开发者或测试场景
  • 先准备:确认实例所在区域支持 IPv6 且子网未禁用
  • 验收:使用 curl 或 ping 测试外部 IPv6 地址连通性

命令速用版

如果你已经确认控制台配置完毕,只需在系统内快速检查状态,可以使用以下命令:

ip -6 addr show
ping6 -c 4 google.com
curl -6 -I https://www.google.com

为什么会这样

甲骨文云的免费实例虽然硬件支持 IPv6,但网络栈是分层的。第一层是虚拟云网络(VCN),默认可能只分配了 IPv4 地址;第二层是安全列表(Security List),即使有了地址,如果没有放行 IPv6 的出站规则,数据包也会被丢弃;第三层是操作系统内部,如果云初始化脚本没有正确配置网卡监听 IPv6 路由通告(RA),系统也不会生成全局单播地址。只有这三层都打通,才能对外发起 IPv6 连接。

分步处理

1. 控制台开启子网 IPv6

登录甲骨文云控制台,进入“虚拟云网络”,找到实例所在的子网。点击子网详情,查看是否已分配 IPv6 CIDR。如果没有,点击“编辑”开启 IPv6 支持。注意,部分老旧区域或特定可用区可能不支持免费实例的 IPv6,公开资料中没有看到可靠的量化数据说明哪些区域一定支持,需以控制台实际选项为准。

2. 检查安全列表出站规则

在子网详情页找到“安全列表”,点击对应的列表进入配置。查看“出站规则”,确保有一条允许目的为 ::/0 的规则。如果只有 IPv4 的 0.0.0.0/0,IPv6 流量会被默认拒绝。添加一条协议为 ICMPv6 或 ALL,目的为 ::/0 的放行规则。

3. 操作系统内确认地址

SSH 登录实例,运行 ip -6 addr。除了 ::1 和链路本地地址(fe80 开头),应该能看到一个全局单播地址(通常以 2001 开头)。如果没有,尝试重启网络服务或重启实例,让 cloud-init 重新获取元数据。

4. 系统防火墙放行

检查系统内部防火墙。如果是 Ubuntu 默认未开启防火墙,可跳过;如果是 Oracle Linux 或开启了 firewalld/iptables,需确认 IPv6 出站未被拦截。例如 firewalld 可运行 firewall-cmd `--list-all` 查看 masquerade 和规则状态。

怎么验证是否生效

不要只看 IP 地址是否存在,要测试实际连通性。

1. Ping 测试

使用 ping6 google.comping6 ipv6.google.com。如果能收到回复,说明路由可达。如果出现“网络不可达”或超时,可能是安全列表未放行 ICMPv6。

2. HTTP 请求测试

使用 curl -6 -I https://www.google.com。如果返回 HTTP 200 或 301,说明 TCP 连接正常。如果卡住不动,通常是被中间网络策略拦截。

3. 本地出口检查

运行 curl -6 ifconfig.me 查看当前出口 IP 是否为刚才配置的 IPv6 地址,确认流量确实走了 IPv6 通道。

常见坑

1. 安全列表只配了入站

很多人只记得放行入站规则,忘了出站规则。甲骨文云默认的安全列表有时只允许特定端口,IPv6 出站需要显式添加 ::/0

2. 系统未启用 IPv6 转发

如果你打算用这台机器做网关,需要开启 net.ipv6.conf.all.forwarding=1。但如果是单纯访问,默认关闭即可,开启反而可能增加风险。

3. 区域路由限制

部分区域的免费实例虽然能获取 IPv6 地址,但出口路由可能受限,导致无法访问某些特定域名。这不是配置错误,而是网络策略问题,公开资料中没有看到可靠的量化数据说明哪些区域受限,建议换区域测试。

4. 云初始化失败

偶尔 cloud-init 未能正确应用网络配置,导致网卡缺少 IPv6 地址。此时重启实例通常比手动修改配置文件更安全,因为手动修改可能在下次重启后被覆盖。