甲骨文云 VPS 默认不一定开启 IPv6,需要在控制台为子网和实例网卡分配地址,并在操作系统内配置网络接口及安全策略,才能实现双栈访问。
先说结论:控制台分配是前提,系统配置是关键,安全列表放行是保障。
- 适合:需要对外提供 IPv6 服务或测试 IPv6 连通性的场景。
- 先准备:确认区域支持 IPv6,备份当前网络配置。
- 验收:使用外部 IPv6 环境测试 ping 和端口访问。
控制台获取 IPv6 信息
在配置系统前,需先从控制台获取准确的 IPv6 地址和网关。
1. 查看 VNIC 地址:登录控制台,进入“实例详情” -> “主 VNIC 附件”。点击 VNIC 链接,在"IPv6 地址”栏复制已分配的地址(若未分配,需在子网中启用 IPv6 并分配)。
2. 获取网关地址:在 VNIC 详情页点击所属“子网”链接。在子网详情中找到"IPv6 网关”地址,通常格式为 xxxx:xxxx::1,复制备用。
操作系统网络配置
Ubuntu 20.04+ 使用 netplan。注意新版 netplan 已废弃 gateway6 参数,需使用 routes 配置。若子网未开启 DHCPv6,建议关闭 dhcp6 使用静态配置。
network:
version: 2
ethernets:
eth0:
dhcp4: true
dhcp6: false
addresses:
- 你的 IPv6 地址/64
routes:
- to: default
via: 你的 IPv6 网关
nameservers:
addresses:
- 2620:106:4000:4000::2
- 2620:106:4000:4000::1应用配置:
sudo netplan try
sudo netplan apply若使用 Oracle Linux 8+/CentOS 8+,可通过 nmcli 配置,确保 ipv6.method 设置为 manual 并添加地址和网关。
云平台安全列表配置
在 VCN 下的“安全列表”中添加入站规则。协议选择 TCP/UDP 或 ICMPv6。
注意:源地址填写 ::/0 会允许全球 IPv6 访问,生产环境建议限制特定 IP 段或仅开放必要端口(如 80/443/22),避免暴露服务。
系统防火墙放行
云平台放行后,还需检查系统内部防火墙。
UFW (Ubuntu):
sudo ufw status
sudo ufw allow from any to any port 22 proto tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp确保 /etc/default/ufw 中 IPV6=yes。
Firewalld (CentOS/Oracle Linux):
sudo firewall-cmd `--permanent` `--add-port`=22/tcp
sudo firewall-cmd `--permanent` `--add-port`=80/tcp
sudo firewall-cmd `--reload`验证与排查
检查地址和路由:
ip -6 addr
ip -6 route测试连通性(使用 ping -6 替代废弃的 ping6):
ping -6 -c 4 ipv6.google.com测试外部可见性:
curl -6 ifconfig.me若不通,检查安全列表规则顺序及系统防火墙日志。
常见风险与建议
- 地址类型:临时地址实例停止后可能变化,生产环境建议使用保留(Reserved)IPv6 地址。
- 区域支持:部分旧区域或可用域可能不支持 IPv6,创建前需确认文档。
- DHCPv6 依赖:若子网未开启 DHCPv6 服务,系统配置
dhcp6: true将无法获取地址,建议静态配置。
参考来源
- Oracle Cloud Infrastructure Documentation, "Overview of IPv6", https://docs.oracle.com/en-us/iaas/Content/Network/Concepts/ipv6.htm
- Oracle Cloud Infrastructure Documentation, "Managing IPv6 Addresses", https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/managingipv6.htm