iptables 是 Linux 操作系统中至关重要的防火墙工具,它通过管理内核的网络数据包过滤框架(Netfilter)来实现对进出系统的数据包的控制。对于任何关注 Linux防火墙 和 网络安全 的管理员来说,掌握 iptables 都是必备技能。本文将用通俗易懂的方式,带你从零开始了解 iptables 的工作原理、核心概念以及常用命令,并通过实例演示如何利用它进行 数据包过滤,保护你的服务器。
iptables 是 Linux 内核集成的防火墙管理工具,它通过操作内核中的 Netfilter 模块,对进出网络接口的数据包进行检查、修改、转发或丢弃。简单来说,它就像一扇安检门,根据你制定的规则决定谁可以进出你的系统。
iptables 的组织结构分为三层:表(tables)、链(chains) 和 规则(rules)。
filter:默认表,用于过滤数据包,包含 INPUT(入站)、OUTPUT(出站)、FORWARD(转发)链。nat:用于网络地址转换,如端口转发、共享上网,包含 PREROUTING、POSTROUTING、OUTPUT 链。mangle:用于修改数据包头部信息,如 TTL、TOS。raw:用于配置连接跟踪的例外。iptables [-t 表名] 命令 [链名] [匹配条件] [-j 动作]
下面通过几个常见场景演示 iptables 的使用:
1. 查看当前规则:
iptables -L -n -v
-L 列出规则,-n 以数字形式显示IP和端口,-v 显示详细信息。
2. 允许 SSH 连接(端口22):
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
这条规则追加到 INPUT 链,允许所有来源的 TCP 22 端口流量进入。
3. 禁止特定 IP 访问:
iptables -A INPUT -s 192.168.1.100 -j DROP
丢弃来自 192.168.1.100 的所有数据包。
4. 开启 Web 服务(端口80):
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
5. 设置默认策略为丢弃所有入站流量:
iptables -P INPUT DROP
注意:执行前务必确保已经放行了必要的端口(如22),否则会立即断开当前 SSH 连接。
6. 删除某条规则(例如第二条规则):
iptables -D INPUT 2
7. 保存当前规则(不同发行版命令可能不同):
service iptables save # CentOS 6iptables-save > /etc/iptables/rules.v4 # Debian/Ubuntu
iptables 的 nat 表可以实现共享上网(SNAT)和端口转发(DNAT)。例如,将本机的 8080 端口转发到内网某台主机的 80 端口:
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.1.10:80
同时需要开启 IP 转发(net.ipv4.ip_forward = 1)。
-m state --state ESTABLISHED,RELATED 允许相关连接通过。-j LOG 可以记录匹配到的数据包,便于调试。通过本文的学习,你应该对 iptables 有了初步的认识,理解了它的表、链、规则结构,掌握了基本的增删改查命令,并能够编写简单的 数据包过滤 规则。iptables 是 Linux 系统中实现 网络安全 的基石之一,深入学习它可以帮助你构建更加安全可靠的服务器环境。记住,实践是掌握 Linux防火墙 的最佳途径,建议在测试环境中多动手尝试,逐步理解每条规则的作用。
—— 让 iptables 成为你网络安全的得力助手
本文由主机测评网于2026-03-15发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:http://www.vpshk.cn/20260331392.html