linux iptables怎么配置?iptables防火墙规则设置教程

iptables是Linux系统内核级的状态检测防火墙,通过规则链对数据包进行过滤,是保障服务器网络安全的第一道防线。

在Linux服务器管理的日常工作中,配置防火墙往往是最让运维人员头疼的环节之一,相比于Windows系统那种图形化的“一键设置”,Linux的防火墙机制更加底层且灵活,但也因此带来了更高的学习门槛,iptables作为Netfilter框架的核心组件,虽然在新版系统中逐渐被firewalld和nftables取代,但在大量存量服务器、Docker容器底层以及嵌入式设备中,它依然是不可或缺的基础工具,理解它的运作逻辑,不仅能解决当下的网络访问问题,更能帮你构建起纵深防御的安全体系。

第27课:iptables 详解
加载中
第27课:iptables 详解

iptables核心概念与工作原理

要驾驭iptables,首先要明白它不是简单的“开关”,而是一个数据包的处理流水线,我们可以把进入服务器的网络流量想象成快递包裹,iptables就是快递站的分拣中心。

链(Chain):数据包的必经之路

数据包在到达目的地之前,会经过不同的处理阶段,每个阶段对应一条“链”,业内专家指出,理解这些链的触发时机是配置正确规则的前提。

  • PREROUTING:数据包刚进入网络接口,路由决策尚未进行时,这里通常用于目的地址转换(DNAT),比如将公网IP映射到内网服务器。
  • INPUT:数据包经过路由判断,目标是本机进程,这是我们要重点保护的区域,绝大多数入站访问控制都在这里进行。
  • FORWARD:数据包经过路由判断,目标是其他主机,这主要应用于路由器或网关场景,普通Web服务器很少用到。
  • OUTPUT:本机进程发出的数据包,通常用于限制本机对外发起的连接,防止恶意软件外传数据。
  • POSTROUTING:数据包即将离开网络接口前,这里常用于源地址转换(SNAT),实现内网共享上网。

linux iptables怎么配置?iptables防火墙规则设置教程

表(Table):功能的分类容器

链是逻辑路径,而表则是功能分类,iptables默认包含四张表,优先级从高到低依次为:

  1. raw表:用于处理异常连接追踪,优先级最高,通常用于提升性能或关闭某些连接的追踪。
  2. mangle表:用于修改数据包的服务类型(TOS)、TTL等字段,高级路由策略常用。
  3. nat表:负责网络地址转换,如端口映射、IP伪装。
  4. filter表:默认的过滤表,负责包过滤,也是日常配置中最常用的表。

实战:如何高效配置iptables规则

很多新手在配置防火墙时,容易陷入“堆砌命令”的误区,导致规则混乱且难以维护,正确的做法是先理清业务需求,再编写脚本,以下是基于CentOS/RHEL系列系统的标准操作流程。

基础环境准备与规则备份

在进行任何修改之前,务必保留当前运行的规则副本,以防配置错误导致服务器失联。

  • 查看当前规则:执行 iptables -L -n -v,参数-n表示不解析域名和端口名,加快显示速度;-v显示详细信息。
  • 备份现有规则:执行 iptables-save > /etc/iptables.backup。
  • 安装持久化工具:在CentOS 7+中,通常使用iptables-services包来保存规则,执行 systemctl enable iptables 确保开机自启。

核心规则配置示例

假设你需要搭建一台Web服务器,仅允许HTTP(80端口)和HTTPS(443端口)访问,同时保留SSH(22端口)的远程管理权限,并拒绝其他所有入站连接。

第一步:设置默认策略

为了安全起见,建议将默认策略设置为DROP(丢弃),即除非明确允许,否则一律拒绝。

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

注意:在执行INPUT DROP之前,务必先配置好SSH规则,否则你会立即断开连接。

linux iptables怎么配置?iptables防火墙规则设置教程

第二步:允许已建立及相关连接

这是最关键的一步,如果不允许已建立的连接,当你允许SSH访问后,服务器返回的数据包会被默认策略丢弃,导致连接无法维持。

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

这里使用了-m state模块(在较新版本中可能被conntrack替代)来匹配连接状态。

第三步:允许特定端口访问

# 允许SSH登录(建议限制特定IP段,如192.168.1.0/24)
iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 22 -j ACCEPT
# 允许Web服务
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 允许ICMP协议(Ping)
iptables -A INPUT -p icmp -j ACCEPT

第四步:保存并生效

service iptables save
# 或者在systemd系统中
iptables-save > /etc/sysconfig/iptables

常见误区与进阶优化技巧

在实际生产环境中,简单的规则配置往往不足以应对复杂的网络场景,许多运维人员会遇到“规则不生效”或“性能瓶颈”的问题,这通常源于对iptables工作机制的误解。

规则匹配顺序的重要性

iptables的规则是从上到下依次匹配的,一旦匹配成功,就不再检查后续规则,这意味着,如果你将ACCEPT所有端口的规则放在前面,后面的DROP特定端口规则将永远无法执行,必须遵循“先精确后宽松”或“先拒绝后允许”的逻辑排序,对于高频访问的规则(如SSH),应放在列表靠前位置,以减少CPU匹配开销。

性能优化:使用conntrack替代state

传统的-m state模块在处理高并发连接时,可能会成为性能瓶颈,近年来,业内共识认为使用-m conntrack模块能提供更高效的连接跟踪机制,将上述第二步的命令替换为:

linux iptables怎么配置?iptables防火墙规则设置教程

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

这不仅能提高匹配速度,还能更好地支持IPv6和复杂的多态连接。

iptables与firewalld/nftables的对比

对于新用户,经常会有“iptables和firewalld哪个更好”的疑问,firewalld是iptables的前端管理工具,它使用zone(区域)概念,支持动态更新规则而无需重启服务,更适合桌面环境或需要频繁变更策略的场景,iptables直接操作内核模块,规则持久化更简单,且在脚本自动化部署中兼容性更好,至于nftables,它是iptables的继任者,旨在解决iptables性能差、规则管理复杂的问题,但在2026年的主流服务器生态中,iptables因其极高的稳定性和广泛的文档支持,依然是许多老系统的首选。

常见问题解答

如何查询iptables规则是否生效?

使用iptables -L -n -v --line-numbers命令。--line-numbers会显示每条规则的序号,方便后续删除或插入特定规则,如果看到规则列表中有对应的ACCEPT或DROP动作,且匹配计数(pkts/bytes)在增加,说明规则已生效。

iptables规则重启服务器后会丢失吗?

默认情况下,iptables规则存储在内存中,重启后会丢失,必须使用service iptables save命令将规则写入/etc/sysconfig/iptables文件,并确保iptables服务设置为开机自启(systemctl enable iptables),在Ubuntu/Debian系统中,通常使用netfilter-persistent服务来管理规则持久化。

如何删除某条特定的iptables规则?

直接删除规则比较困难,因为需要精确匹配规则内容,推荐的做法是先使用iptables -L --line-numbers查看规则序号,然后使用iptables -D INPUT <序号>进行删除,删除INPUT链中的第3条规则,执行iptables -D INPUT 3即可。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/474694.html

赞 (0)
如何用excel作直方图,excel做直方图的详细步骤
上一篇 2026年7月9日 04:09
python truelicense如何生成许可证?java软件授权加密方案
下一篇 2026年7月9日 04:12

相关推荐

  • 一台A100服务器最多能供多少人使用,多少钱?

    一台A100服务器能提供的人数使用上限,完全取决于你用它做什么,如果用于大模型推理,它可同时服务数百个用户;如果用于训练,通常只能供1-2名开发者轮流使用,推理场景:A100服务器能同时服务多少人?在推理(Inference)任务中,A100服务器扮演的是“计算后端”角色,接收用户请求并返回模型结果,并发用户数……

    2026年7月23日
    500
  • 惠普4T服务器机械硬盘多少钱,哪款性价比高?

    惠普4t服务器机械硬盘目前市场参考价在900元至2200元之间,具体取决于接口类型(SAS/SATA)、是否原厂备件以及质保周期;主流选择为企业级SAS 12Gb/s型号,单盘价格普遍集中于1200元至1800元区间,价格差异的核心原因:不止是“4T”这个数字大多数人查价格时只盯着容量,但服务器硬盘和家用硬盘完……

    2026年8月22日
    1200
  • scum怎么看服务器里有多少人,有哪些方法?

    在SCUM中查看服务器人数,最直接的方法就是打开游戏内的服务器浏览器,在列表中找到对应服务器,右侧的“玩家”列会显示当前人数和最大人数, 无论是准备加入一个新服务器,还是想确认自己所在服务器是否拥挤,这个方法都实时有效,为什么服务器人数直接左右你的游戏体验人多人少,玩起来完全是两回事,高人口服务器从踏出新手区就……

    2026年8月17日
    700
  • 开发服务器一台多少钱,价格受哪些因素影响?

    开发服务器多少钱一台并没有统一标价,入门级云服务器年付可以低至百元级,而高配物理服务器月租过千甚至更高,差异主要来自配置、线路、带宽和机房资质,影响开发服务器价格的关键变量你打开几家服务商页面,会看到同样写着“4核8G”,有的报价一年几百,有的一月一千,差距不在表面参数,而在下面四个变量,配置决定基础成本CPU……

    2026年9月19日
    100
  • 一台服务器可以多少个redis节点

    一台服务器可以运行的Redis节点数量没有固定上限,核心限制在于硬件资源与部署模式,生产环境下通常建议单机部署的Redis实例数不超过CPU核心数的2倍,并预留20%的资源余量,影响Redis节点数量的核心因素CPU与内存限制每个Redis实例本质上是单线程模型(除少量后台线程),但多个实例会竞争CPU时间片……

    2026年8月12日
    1100
  • 四路服务器一般多少钱一台,哪个牌子性价比高?

    四路服务器一般多少钱?结论先行:一台全新的四路服务器,主流配置(比如搭载两颗或四颗Intel Xeon Scalable系列处理器、128GB内存)的整机采购价通常在5万到30万元人民币之间,高端配置或品牌定制机型(如HPE、Dell EMC、浪潮)售价可突破50万元;若是二手或过保设备,价格可能下探至1万到3……

    2026年8月29日
    900
  • 如何在Linux上配置SSE,具体怎么设置?

    在Linux系统中,Server-Sent Events(SSE)是一种基于HTTP的单向服务器推送协议,比WebSocket更轻量,适合实时数据更新场景,如新闻推送、股票行情和系统监控,SSE Linux 基础原理与工作流程SSE 全称 Server-Sent Events,由 W3C 标准定义,在 Linu……

    2026年7月16日
    2100
  • 一台8G服务器支持多少并发,云服务器并发量怎么算?

    一台8G服务器在合理配置下,可支撑500-1000个并发连接,但具体数值取决于应用类型、架构优化和业务逻辑, 这个数字不是凭空拍出来的,而是基于业内普遍压测数据和资源消耗模型,实际项目中,有人用8G跑WordPress配合缓存轻松扛住日均十万PV,也有人因为数据库查询没优化,几百个请求就把服务器拖垮,下文从影响……

    2026年8月20日
    700
  • azure服务器一年要花多少钱,价格贵不贵?

    Azure服务器一年费用通常在数千元至数十万元人民币之间,具体取决于实例规格、付费模式与带宽配置——以一台通用型B2s(2核8G)Linux虚机为例,按量付费一年约5000元,预留实例则可降至3000元左右,这个结论来自微软Azure官方定价页的公开标价,结合企业实际使用场景折算而来(据微软Azure定价白皮书……

    2026年8月30日
    600
  • 1万人同时在线服务器要多少钱,什么配置才够用

    1万人在线服务器的费用并没有固定答案,多数情况下月成本在几百元到数千元之间,但重大运营活动或高并发场景下,预算需要提升至万元以上,这个数字取决于你的业务类型、架构设计以及并发峰值的真实规模,而不是简单的注册用户数量,下文将拆解影响成本的核心变量,并给出可直接落地的配置参考,决定费用的第一要素:并发率而非用户总量……

    2026年8月29日
    800

发表回复

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