甲骨文云实例没有直接的“屏蔽互联网访问”开关,需通过配置安全列表(Security List)或移除公网 IP 实现,适合需要隔离生产环境或防止外部扫描的场景。
先说结论:本质是控制网络出入口权限。建议先通过安全列表限制 IP 范围,确认无误后再考虑移除公网 IP。
- 先判断:确认当前实例是否依赖公网 IP 进行维护或业务通信。
- 优先做:在安全列表中删除允许 0.0.0.0/0 的入站规则,而非寻找不存在的“拒绝规则”。
- 再验证:根据操作类型选择验证方式,确保策略生效且未误伤管理通道。
核心机制说明
甲骨文云的网络隔离基于虚拟云网络(VCN)模型。实例能否被互联网访问,取决于两个条件:一是虚拟网卡是否绑定了公网 IP,二是子网的安全列表或网络安全组(NSG)是否放行了外部流量。
注意:OCI 安全列表是白名单机制,不存在“拒绝规则”类型。若要屏蔽流量,必须移除对应的“允许规则”,而非添加拒绝规则。
方法一:通过安全列表限制访问(推荐)
适合仍需保留公网 IP 但需限制来源 IP 的场景,操作可逆。
控制台操作步骤
- 登录甲骨文云控制台,顶部菜单选择“ Networking ” -> “ Virtual Cloud Networks ”。
- 点击实例所在的 VCN,进入详情页后点击左侧“ Subnets ”。
- 点击实例所属子网,找到“ Security Lists ”部分,点击关联的安全列表名称。
- 点击“ Ingress Rules ”(入站规则),找到源 CIDR 为 0.0.0.0/0 的规则(如 SSH 22 端口)。
- 点击右侧操作菜单,选择“ Delete ”删除该规则,或编辑规则将源 CIDR 修改为你的管理 IP。
CLI 查看与配置
修改安全列表规则建议通过控制台操作以避免 JSON 格式错误,但可通过 CLI 查看当前规则:
oci network security-list get `--security-list-id` <security_list_ocid>
方法二:移除公网 IP(彻底隔离)
适合完全不需要外部入口的场景,操作后实例将无法通过公网直接访问。
控制台操作步骤
- 进入“ Compute ” -> “ Instances ”,点击目标实例名称。
- 在实例详情页下方,点击“ Attached VNICs ”。
- 点击虚拟网卡名称进入详情页,找到“ Public IP Address ”部分。
- 点击“ Edit ”,勾选“ Remove Public IP ”或点击“ Unlink ”释放公网 IP。
CLI 操作步骤
使用 CLI 移除公网 IP 更为快捷,需先获取 VNIC OCID:
oci network vnic update `--vnic-id` <vnic_ocid> `--remove-public-ip` true
验证方法
根据采取的措施不同,验证方式有所区别:
- 场景 A(仅限制安全列表):实例仍保留公网 IP。使用另一台不在白名单内的设备,执行
telnet <公网 IP> <端口>。若连接超时,说明屏蔽生效。 - 场景 B(已移除公网 IP):实例无公网 IP。直接在控制台实例详情页确认“ Public IP ”字段为空。此时外部 Ping 或 Telnet 将因无法解析或无路由而失败。
常见风险与排查
- 把自己锁在外面:修改安全列表时未保留自己的管理 IP,导致 SSH 断开且无法恢复。对策:修改前务必添加当前管理 IP 的允许规则,或使用云控制台自带的“ SSH in Browser ”功能作为备用。
- 系统更新失败:屏蔽了出站流量后,yum 或 apt 无法连接源。对策:若需保留出站能力,需配置 NAT 网关并在安全列表放行出站规则,或配置内部 yum/apt 源。
- 多网卡遗漏:若实例绑定了多个虚拟网卡,需逐一检查每个网卡关联的安全规则及公网 IP 状态。
- 验证方法无效:移除公网 IP 后仍尝试 Ping 该 IP。对策:IP 已释放,应通过控制台状态确认,或验证新申请的 IP 是否连通。
参考来源
- Oracle Cloud Infrastructure Documentation, "Security Lists", https://docs.oracle.com/en-us/iaas/Content/Network/Concepts/securitylists.htm
- Oracle Cloud Infrastructure Documentation, "Managing Public IP Addresses", https://docs.oracle.com/en-us/iaas/Content/Network/Tasks/managingpublicIPs.htm