Linux配置防火墙iptables规则 常用增删改查

星辰君_7536

星辰君_7536

2026-04-08

447人浏览

原创

iptables规则未生效主因是链选错或位置不当:input处理入本机包,output处理本机发出包,forward处理转发包;-a追加末尾,-i插入指定位置;默认策略、持久化配置、规则顺序任一疏忽均致失效。

linux配置防火墙iptables规则 常用增删改查

iptables 添加规则时为什么没生效?

添加规则后网络不通或规则不匹配,大概率是链(chain)选错了,或者规则位置不对。iptables 默认按顺序匹配,INPUT、OUTPUT、FORWARD 三链作用对象不同:INPUT 处理进本机的包,OUTPUT 处理本机发出的包,FORWARD 处理经本机转发的包。新手常误把本机服务访问规则加到 FORWARD 链。

另外,-A 是追加到链尾,-I 才能插到开头(默认插第 1 条)。很多策略依赖“先允许再拒绝”,如果用 -A 把 DROP 规则加在前面,后面所有规则都失效。

  • 查当前规则顺序:iptables -L INPUT --line-numbers
  • 在 INPUT 链第 1 位插入允许 SSH:iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT
  • 追加一条拒绝所有入站(慎用):iptables -A INPUT -j DROP
  • 若要放行本机回环通信,必须加在 DROP 前:iptables -I INPUT 1 -i lo -j ACCEPT

如何安全删除某条 iptables 规则?

直接删错规则可能导致 SSH 断连或服务不可用。最稳妥的方式是先查编号,再按号删——别用 -D 加条件删,条件稍有出入就报 “No chain/target/match by that name” 错误。

CyberCut
CyberCut

一款AI视频创作工具,主要用于快手旗下AI视频剪辑工具,帮助用户将长视频转化为短视频,适合需要提升相关任务效率的用户。

下载
  • 列出带行号的 INPUT 规则:iptables -L INPUT --line-numbers
  • 删第 3 条:iptables -D INPUT 3
  • 删匹配特定端口的规则(需完全一致):iptables -D INPUT -p tcp --dport 8080 -j ACCEPT(注意空格、大小写、参数顺序)
  • 删整个链所有规则:iptables -F INPUT,但不会清空默认策略(POLICY),这点容易被忽略

保存和恢复 iptables 规则为什么总是失效?

iptables 运行时规则存在内存里,重启系统就丢。Linux 发行版对持久化处理不统一:CentOS/RHEL 用 service iptables save 或 iptables-save > /etc/sysconfig/iptables;Ubuntu/Debian 默认没装 iptables-persistent,得手动装并用 iptables-save > /etc/iptables/rules.v4。

  • 临时保存当前规则(推荐先备份):iptables-save > /root/iptables-backup-$(date +%s)
  • CentOS 7+ 若用 firewalld,iptables 命令改的规则会被 firewalld 覆盖,得先停:systemctl stop firewalld
  • Debian 系统装持久化工具:apt install iptables-persistent && netfilter-persistent save
  • 检查是否启用开机加载:systemctl is-enabled netfilter-persistent(非 iptables 服务名)

修改默认策略(POLICY)有哪些风险?

iptables -P INPUT DROP 看似“安全”,实则极易锁死自己。一旦执行,且没提前放行 SSH 或控制台访问,远程连接立即中断。更麻烦的是,默认策略无法用行号删除,只能用 -P 覆盖回 ACCEPT,而你可能已经连不上了。

  • 设默认策略前,务必确保已有明确放行规则(如 SSH、lo 接口)
  • 测试时建议用定时任务自动回滚:(sleep 60; iptables -P INPUT ACCEPT) &
  • FORWARD 链默认是 ACCEPT,但做网关或 Docker 主机时,常被意外影响——Docker 启动会自动往 FORWARD 加规则,若你设了 DROP 策略又没配好,容器就上不了网
  • 查看当前默认策略:iptables -L INPUT | head -1(输出类似 Chain INPUT (policy DROP))
规则顺序、链选择、持久化路径、默认策略这四点,任意一个疏忽都会让配置“看似成功,实则无效”或者“生效即瘫痪”。动手前先 iptables -S 看全量规则,比凭记忆敲命令靠谱得多。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux配置

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

2023.10.19

3108

3

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

2025.10.17

4629

12

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2025.12.29

3729

9

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

2026.01.19

426

15

点击input框没有光标怎么办
点击input框没有光标怎么办

点击input框没有光标的解决办法:1、确认输入框焦点;2、清除浏览器缓存;3、更新浏览器;4、使用JavaScript;5、检查硬件设备;6、检查输入框属性;7、调试JavaScript代码;8、检查页面其他元素;9、考虑浏览器兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.24

754

4

k8s和docker区别
k8s和docker区别

k8s和docker区别有抽象层次不同、管理范围不同、功能不同、应用程序生命周期管理不同、缩放能力不同、高可用性等等区别。本专题为大家提供k8s和docker区别相关的各种文章、以及下载和课程。

2023.07.24

705

4

docker进入容器的方法有哪些
docker进入容器的方法有哪些

docker进入容器的方法:1. Docker exec;2. Docker attach;3. Docker run --interactive --tty;4. Docker ps -a;5. 使用 Docker Compose。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

5079

6

docker容器无法访问外部网络怎么办
docker容器无法访问外部网络怎么办

docker 容器无法访问外部网络的原因和解决方法:配置 nat 端口映射以将容器端口映射到主机端口。根据主机兼容性选择正确的网络驱动(如 host 或 overlay)。允许容器端口通过主机的防火墙。配置容器的正确 dns 服务器。选择正确的容器网络模式。排除主机网络问题,如防火墙或连接问题。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

6057

6

docker镜像有什么用
docker镜像有什么用

docker 镜像是预构建的软件组件,用途广泛,包括:应用程序部署:简化部署,提高移植性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.08

2313

7

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.4万人学习