1. 检查并启用UFW防火墙
UFW(Uncomplicated Firewall)是Ubuntu推荐的简化防火墙工具,首先确认其状态并启用:
sudo ufw status # 查看防火墙状态(若显示“inactive”则未启用) sudo ufw enable # 启用UFW(启用后默认拒绝所有入站流量)
2. 允许Oracle必要端口通过防火墙
Oracle数据库默认使用1521端口(TCP)进行客户端与服务端的通信,需明确允许该端口:
sudo ufw allow 1521/tcp # 允许TCP协议的1521端口
若Oracle配置了其他服务(如企业管理器OEM,默认使用1158端口),需同步开放对应端口:
sudo ufw allow 1158/tcp # 示例:允许OEM端口
3. (可选)允许SSH端口保障远程管理
若需通过SSH远程连接Ubuntu服务器,需开放SSH默认端口(22/tcp),避免配置防火墙后无法远程登录:
sudo ufw allow 22/tcp # 允许SSH端口
4. 重新加载UFW规则
添加端口规则后,需重新加载防火墙以使更改生效:
sudo ufw reload # 重新加载规则(无需重启服务器)
5. 验证防火墙规则有效性
通过以下命令确认端口规则已正确添加:
sudo ufw status verbose # 查看详细规则列表(应包含“ALLOW 1521/tcp”等条目)
输出结果中需显示“1521/tcp ALLOW IN Anywhere”,表示规则生效。
6. 配置Oracle监听器适配防火墙
确保Oracle监听器(Listener)监听的端口与防火墙开放的端口一致。编辑监听器配置文件(位于$ORACLE_HOME/network/admin/listener.ora
):
sudo vi $ORACLE_HOME/network/admin/listener.ora
确认PORT
参数设置为1521(或自定义的开放端口):
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = your_hostname_or_ip)(PORT = 1521)) ) )
保存后重启监听器使配置生效:
lsnrctl stop # 停止监听器 lsnrctl start # 启动监听器 lsnrctl status # 检查监听器状态(确认“Listening Endpoints Summary”中包含1521端口)
注意事项
iptables
替代UFW,需通过iptables -A INPUT -p tcp --dport 1521 -j ACCEPT
添加规则,并用iptables-save
保存配置(Ubuntu默认推荐UFW,操作更简便)。0.0.0.0/0
),可通过sudo ufw allow from trusted_ip to any port 1521/tcp
实现。