解决Ubuntu防火墙冲突的核心是避免多工具混用,优先使用系统默认工具并正确管理规则,具体方法如下:
统一使用单一防火墙工具
禁用其他防火墙工具
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo ufw disable
检查并清理现有规则
sudo ufw status
sudo iptables -L -n -v # 若使用iptables
sudo ufw deny 端口/协议 # 删除特定规则(UFW)
sudo iptables -D INPUT 规则行号 # 删除iptables规则(需先通过`-L`确认行号)
调整规则优先级与持久化
-I插入规则到指定位置(优先级高于默认规则):sudo ufw insert 1 allow 22/tcp # 在INPUT链顶部插入SSH规则(UFW)
sudo iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT # iptables示例
ufw reload)。sudo iptables-save > /etc/iptables/rules.v4)。验证配置
sudo ufw reload
sudo service network restart
nmap或telnet检查端口是否按预期开放。关键原则:优先使用系统默认工具(UFW),避免手动修改底层iptables规则,确保规则唯一性以避免冲突。