1. 完全卸载 UFW(推荐)
bash
# 1. 先禁用UFW
sudo ufw disable
# 2. 完全卸载UFW及其配置文件
sudo apt purge ufw -y
# 3. 自动删除不需要的依赖包
sudo apt autoremove --purge -y
# 4. 清理残留配置
sudo rm -rf /etc/ufw/
sudo rm -f /etc/default/ufw2. 重置 iptables 规则
bash
# 清空所有防火墙规则
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X
# 设置默认策略为接受所有
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
# 保存规则(如果需要持久化)
sudo apt install iptables-persistent -y
sudo netfilter-persistent save
sudo netfilter-persistent reload3. 检查是否彻底删除
bash
# 检查UFW是否还在
which ufw
dpkg -l | grep ufw
systemctl list-unit-files | grep ufw
# 检查防火墙当前状态
sudo iptables -L -n -v使用 apt 的完整清理流程
bash
# 完整的一键清理脚本
sudo bash -c '
echo "=== 开始清理UFW ==="
ufw disable 2>/dev/null
systemctl stop ufw 2>/dev/null
systemctl disable ufw 2>/dev/null
apt purge ufw -y 2>/dev/null
apt autoremove --purge -y 2>/dev/null
rm -rf /etc/ufw 2>/dev/null
echo "=== 清理完成 ==="
'Ubuntu 系统服务处理
bash
# 禁用并屏蔽UFW服务(防止被其他包重新安装时自动启用)
sudo systemctl mask ufw
# 删除服务文件(彻底)
sudo rm -f /lib/systemd/system/ufw.service
sudo systemctl daemon-reload
sudo systemctl reset-failed验证删除结果
bash
# 运行验证脚本
echo "=== 验证UFW是否完全删除 ==="
echo "1. 包管理器检查:"
dpkg -l | grep -i ufw || echo "✓ UFW 未安装"
echo -e "\n2. 命令检查:"
which ufw || echo "✓ ufw 命令不存在"
echo -e "\n3. 服务检查:"
systemctl list-unit-files | grep ufw || echo "✓ 无UFW服务"
echo -e "\n4. 文件检查:"
ls -la /etc/ | grep ufw || echo "✓ 无UFW配置文件"
echo -e "\n5. 当前防火墙规则:"
sudo iptables -L -n --line-numbers | head -30如果遇到依赖问题
bash
# 如果无法直接purge,先强制删除
sudo dpkg --purge --force-remove-reinstreq ufw
# 修复可能损坏的包
sudo apt update
sudo apt --fix-broken install
sudo apt autoremove -yUbuntu 替代方案
方案A:使用 firewalld(CentOS风格)
bash
# 删除UFW后安装firewalld
sudo apt install firewalld -y
sudo systemctl start firewalld
sudo systemctl enable firewalld
# 开放所有端口(测试用)
sudo firewall-cmd --set-default-zone=public --permanent
sudo firewall-cmd --reload方案B:使用纯 iptables
bash
# 安装iptables管理工具
sudo apt install iptables iptables-persistent netfilter-persistent -y
# 设置基本规则(允许所有)
sudo iptables -P INPUT ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
# 保存配置
sudo netfilter-persistent save方案C:使用 nftables(Ubuntu 22.04+ 默认)
bash
# Ubuntu 22.04开始默认使用nftables
sudo systemctl stop ufw
sudo systemctl disable ufw
# 检查nftables
sudo nft list ruleset
# 清空nftables规则
sudo nft flush ruleset重要提醒:Ubuntu 特定注意事项
Ubuntu 22.04+:系统可能同时使用
nftables和iptablesbash
# 检查nftables后端 sudo update-alternatives --config iptables云镜像:某些云服务商的 Ubuntu 镜像可能有定制
bash
# 检查云初始化配置 cat /etc/cloud/cloud.cfg | grep -i firewall桌面版:如果使用 Ubuntu 桌面版,可能有 GUI 防火墙工具
bash
# 移除防火墙GUI sudo apt remove gufw -y
最简单的临时解决方案
如果你只是想临时关闭防火墙进行测试:
bash
# 临时禁用(最快)
sudo ufw disable
# 测试你的端口
# 测试完成后可以重新启用
sudo ufw enable彻底删除后的安全建议
bash
# 至少保留SSH保护
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 或者安装fail2ban防止暴力破解
sudo apt install fail2ban -y
sudo systemctl start fail2ban
sudo systemctl enable fail2ban推荐做法:
bash
# 1. 先临时禁用测试
sudo ufw disable
# 2. 完成你的测试(证书申请等)
# 3. 重新启用并设置基本规则
sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 3131/tcp # 你的特定端口告诉我你现在具体需要什么:
只是临时测试 → 用
sudo ufw disable永久删除 → 用
sudo apt purge ufw -y换其他防火墙 → 告诉我你倾向哪种