docker 使用 firewalld防火墙

# 将 docker0 网桥加入 trusted 区域
2firewall-cmd --permanent --zone=trusted --add-interface=docker0
3firewall-cmd --reload
4
5# 或者允许 masquerade(NAT)
6firewall-cmd --permanent --zone=public --add-masquerade
7firewall-cmd --reload

代码

#!/bin/bash
set -e

echo "🔍 正在清理所有 8000 和 9000 端口的 rich rules..."

# 获取当前所有 rich rules
current_rules=$(sudo firewall-cmd --list-rich-rules)

# 删除所有涉及 port="8000" 或 port="9000" 的规则
while IFS= read -r rule; do
  if [[ "$rule" == *'port="8000"'* ]] || [[ "$rule" == *'port="9000"'* ]]; then
    echo "🗑️  删除规则: $rule"
    sudo firewall-cmd --permanent --remove-rich-rule="$rule" >/dev/null
  fi
done <<< "$current_rules"

echo "✅ 旧规则清理完毕。"

# === 新增的 IP 列表(共 36 个)===
NEW_IPS=(
  11.11.1.129 11.11.1.130 11.11.1.131 11.11.1.132 11.11.1.133
  11.11.1.134 11.11.1.135 11.11.1.136 11.11.1.137 11.11.1.138
  11.11.1.149 11.11.1.150 11.11.1.151
  11.11.1.166 11.11.1.167 11.11.1.168 11.11.1.169 11.11.1.170
  11.11.45.233 11.11.45.234
  11.11.1.83 11.11.1.84
  11.11.1.161 11.11.1.162
  11.11.1.81 11.11.1.82
  11.11.1.145 11.11.1.146 11.11.1.147
  11.11.1.154 11.11.1.152 11.11.1.153
  11.8.53.17
  10.22.157.137
  11.11.1.155
  11.11.1.163 11.11.1.164 11.11.1.165
)

echo "➕ 正在添加 ${#NEW_IPS[@]} 个 IP 到 8000 端口白名单..."

for ip in "${NEW_IPS[@]}"; do
  echo "   → 允许 $ip 访问 8000/tcp"
  sudo firewall-cmd --permanent \
    --add-rich-rule="rule family=\"ipv4\" source address=\"$ip\" port protocol=\"tcp\" port=\"8000\" accept" >/dev/null
done

# 重载防火墙
echo "🔄 重载防火墙..."
sudo firewall-cmd --reload

echo "✅ 操作完成!"
echo "📌 验证命令:sudo firewall-cmd --list-rich-rules | grep 'port=\"8000\"'"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值