Windows虚拟机连接Linux虚拟机Oracle数据库报ORA-12170超时问题咨询
Oracle跨虚拟机ORA-12170连接超时问题解决方案
1. 确认防火墙端口规则有效性
- 查看当前防火墙生效的端口配置,确认1521端口已永久放行:
firewall-cmd --list-all --permanent - 若未找到1521端口规则,重新添加并重载:
firewall-cmd --add-port=1521/tcp --permanent firewall-cmd --reload
- 若配置过富规则,检查是否存在优先级更高的拦截规则:
firewall-cmd --list-rich-rules
如有针对192.168.1.230或1521端口的拒绝规则,先删除对应规则。
2. 修正防火墙区域绑定配置
Linux 8默认使用firewalld的区域规则,网卡绑定区域错误会导致规则不生效:
- 查看当前网卡绑定的活动区域:
firewall-cmd --get-active-zones - 将虚拟机所在的内网段加入信任区域,跳过端口校验:
firewall-cmd --add-source=192.168.1.0/24 --zone=trusted --permanent firewall-cmd --reload
3. 关闭内核反向路径校验
抓包观察到的无法回传数据包,大概率是内核默认开启的rp_filter反向路径校验拦截了非对称路由流量:
- 临时关闭校验测试连通性:
sysctl -w net.ipv4.conf.all.rp_filter=0 sysctl -w net.ipv4.conf.你的网卡名.rp_filter=0
执行
ip a可查看实际网卡名,常见为eth0、ens33等。
- 测试连接正常后,将规则写入永久配置:
编辑/etc/sysctl.conf文件,添加以下两行:
net.ipv4.conf.all.rp_filter = 0 net.ipv4.conf.你的网卡名.rp_filter = 0
执行sysctl -p使配置永久生效。
4. 排查SELinux拦截
如果以上步骤仍未解决,临时关闭SELinux验证:setenforce 0
连接恢复则说明SELinux规则拦截,执行以下命令放开Oracle端口权限:
yum install -y policycoreutils-python-utils semanage port -a -t oracle_port_t -p tcp 1521 setenforce 1
内容的提问来源于stack exchange,提问作者bluefox
相关产品推荐
相关产品推荐

