如何在IPTables防火墙上启用和禁用规则?
美国、香港服务器
如何在IPTables防火墙上启用和禁用规则?
06-29 来源:
iptables 启用 / 禁用规则分两种场景:单条规则临时禁用 / 恢复、全局防火墙临时关闭 / 启用
iptables 没有直接的「禁用 / 启用开关」,常用方案:先备份规则 → 删除规则(禁用);需要时从备份重新加载(启用)。
一、先查看规则(带行号,必做)
bash
运行
iptables -nL --line-numbers
场景 1:临时禁用【单条】iptables 规则(推荐,可恢复)
步骤 1:先把当前所有规则备份(防止丢配置)
bash
运行
# 备份到文件
iptables-save > /etc/iptables.bak
步骤 2:按行号删除规则 = 临时禁用这条规则
bash
运行
# 格式:iptables -D 链名 行号
iptables -D INPUT 3
删除后这条规则立即失效,实现禁用。
步骤 3:需要重新启用这条规则(两种方式)
方式 1:从备份文件整体恢复所有规则(最简单)
bash
运行
iptables-restore < /etc/iptables.bak
方式 2:重新手动添加这条规则
把之前添加规则的命令再执行一遍即可:
bash
运行
iptables -A INPUT -p tcp --dport 2222 -s 1.1.1.1/32 -j ACCEPT
进阶:带注释批量临时禁用某一类规则
添加规则时带上注释:
bash
运行
iptables -A INPUT -p tcp --dport 3306 -j ACCEPT -m comment --comment "mysql_allow"
按注释批量删除(禁用):
bash
运行
iptables-save | sed "/comment "mysql_allow"/d" | iptables-restore
恢复依然用 iptables-restore < /etc/iptables.bak
场景 2:全局临时禁用整个防火墙(所有规则失效,调试用)
1. 先备份当前规则(关键!不然无法恢复)
bash
运行
iptables-save > /etc/iptables.bak
2. 临时关闭防火墙(放行所有流量)
bash
运行
# 设置默认全部允许
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
# 清空所有自定义规则
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
此时所有防火墙规则全部失效,相当于全局禁用防火墙。
3. 重新启用防火墙(恢复所有原有规则)
bash
运行
# 加载之前备份的规则
iptables-restore < /etc/iptables.bak
场景 3:通过系统服务启停 iptables(CentOS iptables-services)
启用防火墙服务
bash
运行
# 启动并开机自启
systemctl start iptables
systemctl enable iptables
禁用防火墙服务(重启后不再自动加载规则)
bash
运行
systemctl stop iptables
systemctl disable iptables
注意:只是停止服务,内存中当前规则依然生效,需要清空规则才会立刻放行所有流量。
场景 4:Ubuntu 持久化规则启停
保存规则(永久启用)
bash
运行
netfilter-persistent save
临时清空规则(全局禁用),恢复依然用备份文件导入。
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快