甲骨文云安全组规则配置错误导致无法访问怎么办

文章导读
遇到甲骨文云实例无法访问,优先检查控制台安全列表(Security List)入站规则是否放行对应端口,其次排查实例内部操作系统防火墙。
📋 目录
  1. 命令速用版
  2. 为什么会这样
  3. 分步处理
  4. 怎么验证是否生效
  5. 常见坑
  6. 参考来源
A A

遇到甲骨文云实例无法访问,优先检查控制台安全列表(Security List)入站规则是否放行对应端口,其次排查实例内部操作系统防火墙。

先说结论:大部分无法访问问题源于云端安全规则与系统防火墙双重拦截,需按顺序排查。

  • 先确认:登录 OCI 控制台查看实例所属子网的安全列表入站规则。
  • 先处理:若云端规则无误,再登录实例检查内部防火墙(如 firewalld、ufw)状态。
  • 再验证:修改后使用 telnet 或 curl 从外网测试端口连通性。

命令速用版

若还能通过 SSH 或其他途径登录实例,可用以下命令快速检查本地监听与防火墙状态:

# 检查端口是否监听
netstat -tlnp | grep 端口号

# CentOS/RHEL 查看防火墙状态
systemctl status firewalld
firewall-cmd `--list-all`

# Ubuntu 查看防火墙状态
ufw status verbose

为什么会这样

甲骨文云的网络访问控制分为两层。第一层是虚拟云网络(VCN)层面的安全列表(Security Lists)或网络安全组(NSG),它相当于云厂商提供的虚拟硬件防火墙。第二层是实例操作系统内部的防火墙软件,如 Linux 的 iptables、firewalld 或 ufw。

即使控制台放行了端口,如果操作系统内部防火墙默认拒绝,外部请求依然会被丢弃。此外,OCI 的安全规则默认是有状态的(Stateful),即允许入站后,对应的出站响应流量会自动放行,无需额外配置出站规则,但很多用户会误以为需要双向配置。

分步处理

1. 检查控制台安全规则

甲骨文云安全组规则配置错误导致无法访问怎么办

登录甲骨文云控制台,进入“网络”->“虚拟云网络”,找到实例所在的子网。点击子网下的“安全列表”,检查“入站规则”。

确认是否存在允许对应协议(TCP/UDP)和端口(如 22、80、443)的规则,源 CIDR 通常需设置为 0.0.0.0/0 或你的特定 IP。若没有,点击“添加入站规则”并保存。

2. 检查操作系统防火墙

若能通过 VNC 或现有 SSH 连接登录实例,检查系统防火墙。对于 CentOS 7/8:

甲骨文云安全组规则配置错误导致无法访问怎么办
# 临时关闭防火墙测试(生产环境谨慎)
systemctl stop firewalld

# 或永久放行端口
firewall-cmd `--permanent` `--add-port`=80/tcp
firewall-cmd `--reload`

对于 Ubuntu:

# 查看状态
ufw status

# 允许端口
ufw allow 80/tcp

3. 检查服务是否运行

确认目标服务(如 Nginx、SSH)本身正在运行且监听正确接口。

systemctl status nginx
netstat -tlnp | grep :80

怎么验证是否生效

在本地电脑或另一台外网服务器上执行测试命令。不要仅在实例内部 curl 自己,那只能证明服务正常,不能证明网络通达。

# 测试 TCP 端口连通性
telnet 实例公网 IP 端口号

# 或使用 nc
nc -zv 实例公网 IP 端口号

# 测试 HTTP 服务
curl -I http://实例公网 IP

若 telnet 显示 Connected 或 curl 返回 HTTP 头信息,说明规则已生效。若一直显示 Trying 后超时,说明仍有拦截。

常见坑

  • 源地址限制过严:测试时若规则只写了特定 IP,但本地出口 IP 变动,会导致无法访问。测试阶段建议暂时开放 0.0.0.0/0,连通后再收紧。
  • ICMP 与 TCP 混淆:能 ping 通不代表端口能访问。Ping 使用的是 ICMP 协议,网页使用的是 TCP 协议,需在安全列表分别放行。
  • 默认安全列表干扰:新建 VCN 时若勾选了“创建默认安全列表”,其中可能包含拒绝所有入站的隐含规则,建议新建自定义安全列表并关联子网。
  • 状态误解:OCI 安全列表默认有状态,无需手动添加出站响应规则。若误删了所有出站规则,可能会影响实例主动访问外网(如 yum 更新),但不影响外部访问实例的响应流量。

参考来源

  • Oracle Help Center, "Security Lists", https://docs.oracle.com/en-us/iaas/Content/Network/Concepts/securitylists.htm
  • Oracle Help Center, "Network Security Groups", https://docs.oracle.com/en-us/iaas/Content/Network/Concepts/networksecuritygroups.htm