Linux Oracle 防火墙规则配置指南
一、前置检查
lsnrctl status。若 TCP 能通但客户端报 ORA-12170 TNS: 连接超时,多半是防火墙未放行 1521。systemctl status firewalld(若显示 active 则为 firewalld;未安装/未运行可考虑 iptables)。二、使用 firewalld 放行 Oracle 端口(推荐,适用于 OL7/OL8)
systemctl start firewalld && systemctl enable firewalldfirewall-cmd --permanent --add-port=1521/tcpfirewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.10.0/24" port protocol="tcp" port="1521" accept'firewall-cmd --reload;firewall-cmd --list-ports 或 firewall-cmd --list-all 查看是否生效。三、使用 iptables 放行 Oracle 端口(适用于 OL6 或手动管理 iptables 的场景)
iptables-save > /etc/iptables.backupiptables -A INPUT -i lo -j ACCEPTiptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPTiptables -A INPUT -p tcp -s 192.168.10.0/24 --dport 1521 -j ACCEPTservice iptables save && service iptables restartiptables-save/restore 管理四、验证与常见问题
nc -l -k 1521(监听测试)telnet 服务器IP 1521 或 nc -vz 服务器IP 1521lsnrctl status(确认监听已启动且端口为 1521)netstat -ntlp | grep 1521(确认进程在 0.0.0.0:1521 或指定地址监听)五、安全加固建议
sqlnet.ora 限制来源 IP,例如:TCP.VALIDNODE_CHECKING = YESTCP.INVITED_NODES = (192.168.10.0/24, 10.0.0.0/8)TCP.EXCLUDED_NODES = (x.x.x.x)iptables-save 或 firewalld 的 --permanent 配置),变更后及时验证与回滚预案。