在当今互联网环境中,网络安全配置是每个系统管理员必须掌握的基本技能。而作为Linux系统中最经典、最强大的包过滤工具之一,iptables 成为了构建防火墙规则的核心组件。无论你是刚接触Linux的新手,还是希望深入理解防火墙机制的中级用户,本篇iptables教程都将带你一步步了解其基本原理与实用技巧。

什么是 iptables?
iptables 是 Linux 内核中 Netfilter 框架提供的一个用户空间工具,用于配置 IPv4 数据包过滤规则和 NAT(网络地址转换)。简单来说,它就像一个“门卫”,决定哪些网络数据包可以进入、离开或通过你的服务器。
iptables 的核心由 表(tables)、链(chains) 和 规则(rules) 构成:
- 表(Tables):如
filter(默认,用于过滤)、nat(用于地址转换)、mangle(用于修改包头)等。 - 链(Chains):如
INPUT(入站)、OUTPUT(出站)、FORWARD(转发)等。 - 规则(Rules):定义对匹配的数据包执行什么操作,如
ACCEPT(接受)、DROP(丢弃)、REJECT(拒绝并返回错误)等。
安装与查看 iptables
大多数 Linux 发行版默认已安装 iptables。若未安装,可使用以下命令安装:
# Ubuntu/Debiansudo apt updatesudo apt install iptables# CentOS/RHELsudo yum install iptables# 或sudo dnf install iptables查看当前所有规则:
sudo iptables -L -v -n参数说明:-L:列出规则;-v:显示详细信息;-n:以数字形式显示 IP 和端口(加快显示速度)。
常用 iptables 命令示例
1. 允许本地回环通信(必须!)
sudo iptables -A INPUT -i lo -j ACCEPT-A 表示追加规则到链末尾,-i lo 指定接口为本地回环(loopback),-j ACCEPT 表示接受该流量。
2. 允许已建立的连接继续通信
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT3. 开放 SSH 端口(22)
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT4. 默认拒绝所有其他入站连接
sudo iptables -P INPUT DROP⚠️ 注意:-P 设置的是链的默认策略。执行此命令前,请确保你已允许 SSH 访问,否则可能被锁在服务器外!
保存与恢复规则
重启后,iptables 规则会丢失。因此需要保存:
# Ubuntu/Debiansudo iptables-save > /etc/iptables/rules.v4# CentOS/RHEL 7 及以下sudo service iptables save# 或通用方式sudo iptables-save > /etc/sysconfig/iptables恢复规则:
sudo iptables-restore < /etc/iptables/rules.v4小贴士与安全建议
- 始终先设置允许回环和已有连接的规则。
- 测试新规则时,建议使用
sleep 60 && iptables -F命令(60秒后清空规则),防止被锁。 - 不要直接在生产服务器上实验,先在测试环境验证。
- 结合 网络安全配置 最佳实践,如最小权限原则,只开放必要端口。
结语
通过本篇 iptables命令详解 教程,相信你已经掌握了如何使用 iptables 构建基础防火墙规则。虽然现代系统越来越多地采用 nftables(iptables 的继任者),但理解 iptables 仍是学习 Linux 网络安全的重要一步。持续练习并查阅官方文档,你将能更自信地保护你的服务器免受网络威胁。
记住:良好的 Linux防火墙 配置,是系统安全的第一道防线!

