大多数情况下,问题不在甲骨文云控制台的安全规则,而是实例内部的操作系统防火墙(如 firewalld、iptables)拦截了流量,或者子网层面的“安全列表”未放行。
先说结论:甲骨文云的网络访问控制是多层级的,控制台配置只是其中一层,必须同时检查实例内部防火墙和子网安全列表。
- 先确认:登录实例内部,检查操作系统自带的防火墙状态。
- 先处理:在控制台同时核对“安全列表”和“网络安全组”的入站规则。
- 再验证:使用外部工具或另一台机器测试端口连通性,不要只在本地 ping。
命令速用版
如果你能登录服务器,先执行以下命令快速定位是系统拦截还是云端拦截:
# 查看防火墙状态 (CentOS/RHEL)
sudo firewall-cmd `--state`
# 查看防火墙状态 (Ubuntu/Debian)
sudo ufw status
# 临时关闭防火墙测试 (仅用于排查,测试完请恢复)
sudo systemctl stop firewalld
# 或
sudo ufw disable
# 监听端口确认服务是否在运行
sudo netstat -tulpn | grep 端口号为什么会这样
甲骨文云(OCI)的网络防护是分层设计的,数据包从互联网到达你的应用,至少要经过三道关卡:
- 子网级别:由“安全列表”(Security Lists)控制,作用于整个子网内的所有实例。
- 实例网卡级别:由“网络安全组”(NSG)控制,只作用于绑定该组的特定网卡。
- 操作系统级别:由实例内部的 iptables、firewalld 或 ufw 控制。
很多用户习惯只配置控制台里的“网络安全组”,却忽略了子网默认的“安全列表”可能依然阻塞流量,或者系统内部防火墙默认策略是拒绝。此外,甲骨文云的术语中对应 AWS“安全组”的概念主要是“网络安全组”,但旧版文档或习惯称呼容易混淆,配置时需确认具体作用范围。
分步处理
按照从内到外的顺序排查,避免在控制台反复修改规则却无效。
1. 检查操作系统内部防火墙
这是最常见的拦截点。即使云端规则全开,系统防火墙也会丢弃数据包。
- CentOS 7/8/9:检查 firewalld 是否运行,确认是否添加了永久规则。
- Ubuntu:检查 ufw 状态,确认是否允许了特定端口。
- 操作:如果不确定,可临时停止防火墙服务测试连通性。若停止后通了,说明需要配置系统防火墙规则而非修改云端设置。
2. 检查子网安全列表 (Security Lists)
登录甲骨文云控制台,进入“虚拟云网络” -> 选择你的 VCN -> 点击“安全列表”。
- 确认点:查看实例所在子网关联的安全列表。
- 操作:确保“入站规则”中存在允许该端口协议(TCP/UDP)和源 CIDR(如 0.0.0.0/0 或你的 IP)的规则。
- 注意:即使你绑定了 NSG,子网安全列表依然生效,两者是“并集”关系,任一拦截都会导致不通。
3. 检查网络安全组 (NSG)
进入“网络安全组”,确认该组已关联到实例的 VNIC(虚拟网卡)。
- 确认点:规则方向必须是“入站”,源类型和端口范围需匹配。
- 操作:如果未关联 NSG,实例仅受安全列表控制;如果已关联,需同时满足 NSG 和安全列表的允许规则。
4. 检查路由表与公网 IP
如果端口监听正常且防火墙已关,但仍无法从外网访问,需检查路由。
- 公网 IP:确认实例是否绑定了公共 IP( ephemeral 或 reserved)。
- 路由表:子网关联的路由表必须包含指向“互联网网关”(Internet Gateway)的路由规则,目标 CIDR 为 0.0.0.0/0。
怎么验证是否生效
修改规则后,不要只依赖控制台的状态显示,需通过实际流量验证。
- 外部测试:使用本地电脑的
telnet IP 端口或nc -zv IP 端口命令。 - 在线工具:使用第三方端口扫描工具(如 yougetsignal.com 的端口检查器)测试。
- 抓包确认:在服务器内部运行
sudo tcpdump -i any port 端口号,如果外部发起请求时服务器能看到 SYN 包,说明云端规则已放行,问题在系统内部;如果完全看不到包,说明流量在云端就被丢弃了。
常见坑
- 源地址限制过严:测试时建议先将源 CIDR 设为 0.0.0.0/0 排除 IP 白名单问题,通后再限制特定 IP。
- ICMP 与 TCP 混淆:能 ping 通不代表端口通。Ping 使用的是 ICMP 协议,而网页或数据库使用的是 TCP/UDP,需分别配置规则。
- 状态性规则误解:甲骨文云的安全列表和 NSG 默认是状态化的(Stateful),配置了入站规则后,出站响应流量会自动允许,无需额外配置出站规则,除非你显式配置了状态无状态规则。
- 多网卡场景:如果实例有多个 VNIC,每个网卡可能关联不同的 NSG,需确认流量走向的具体网卡。
参考来源
- Oracle Cloud Infrastructure Documentation, "Overview of Security Lists", https://docs.oracle.com/en-us/iaas/Content/Network/Concepts/securitylists.htm
- Oracle Cloud Infrastructure Documentation, "Overview of Network Security Groups", https://docs.oracle.com/en-us/iaas/Content/Network/Concepts/networksecuritygroups.htm