#!/bin/bash

echo "🛡️ 正在尝试关闭 Linux 防火墙..."

# 判断是否为 root 用户
if [ "$EUID" -ne 0 ]; then
  echo "❌ 请使用 root 用户运行此脚本。"
  exit 1
fi

# 关闭 firewalld（CentOS 7+/RHEL 7+/AlmaLinux/Rocky）
if systemctl list-unit-files | grep -q firewalld; then
  echo "🔥 检测到 firewalld，正在关闭..."
  systemctl stop firewalld
  systemctl disable firewalld
  echo "✅ firewalld 已关闭。"
fi

# 关闭 iptables（CentOS 6/老系统）
if command -v service &>/dev/null && service iptables status &>/dev/null; then
  echo "🧱 检测到 iptables，正在关闭..."
  service iptables stop
  chkconfig iptables off
  echo "✅ iptables 已关闭。"
fi

# 关闭 ufw（Ubuntu/Debian）
if command -v ufw &>/dev/null; then
  echo "🔐 检测到 ufw，正在关闭..."
  ufw disable
  echo "✅ ufw 已关闭。"
fi

# 清空所有 iptables 规则（通用做法，谨慎使用）
echo "⚠️ 正在清空 iptables 所有规则..."
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
echo "✅ iptables 规则已清空。"

echo "🎉 防火墙关闭完成。请注意安全策略！"
