一键防火墙(UFW)配置脚本

一、特点及作用

  1. 清理旧的 iptables 规则
  2. 安装并配置 UFW
  3. 放行你现有服务所需端口(SSH、Web、Docker、应用、Sui 节点)
  4. 禁止 Docker 自动改写 iptables
  5. 启用防火墙并输出状态

二、一键防火墙配置脚本(保存为 setup-firewall.sh

#!/bin/bash
# ========================================
# 一键防火墙配置脚本 (UFW + Docker)
# 适用于 VPS 远程管理 + Docker 容器环境
# ========================================

# 提示
echo "==== 开始防火墙配置 ===="

# 1️⃣ 清除旧 iptables 规则
echo "清理旧的 iptables 规则..."
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 remove --purge iptables-persistent -y
sudo rm -f /etc/iptables/rules.v4 /etc/iptables/rules.v6

# 2️⃣ 安装 UFW 并配置默认策略
echo "安装并配置 UFW..."
sudo apt update
sudo apt install ufw -y
sudo ufw default deny incoming
sudo ufw default allow outgoing

# 3️⃣ 放行端口
echo "放行必要端口..."
# SSH
sudo ufw allow 22/tcp        # 根据你的 SSH 端口修改
# 网站服务
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Web 应用
sudo ufw allow 8080/tcp
sudo ufw allow 3000/tcp
# 节点
sudo ufw allow XXXX/tcp
sudo ufw allow XXXX/udp
# Docker 内部服务
sudo ufw allow XXXX/tcp
sudo ufw allow XXXX/udp

# 4️⃣ 启用防火墙
echo "启用 UFW..."
sudo ufw --force enable

# 5️⃣ 配置 Docker 不修改防火墙
echo "配置 Docker 不修改 iptables..."
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json > /dev/null <<'EOF'
{
  "iptables": false
}
EOF
sudo systemctl restart docker

# 6️⃣ 显示防火墙状态
echo "==== 防火墙配置完成,当前状态如下 ===="
sudo ufw status verbose

三、使用方法

  • 保存脚本:
nano setup-firewall.sh
# 粘贴上面的内容,Ctrl+O 保存,Ctrl+X 退出
  • 赋予执行权限
chmod +x setup-firewall.sh
  • 执行脚本:
sudo ./setup-firewall.sh

四、效果

运行完毕后,你的 VPS 防火墙会:

  1. 全面切换到 UFW 管理
  2. 默认拒绝所有入站,只放行必要端口
  3. Docker 不再干扰防火墙
  4. SSH、Web、应用、Sui 节点端口全部可用

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部