温馨提示×

如何学习CentOS iptables命令

小樊
39
2026-08-03 02:38:35
栏目: 智能运维

学习 CentOS 下的 iptables 命令,建议按「原理 → 常用命令 → 实战场景 → 永久保存 → 排错」的顺序来,下面给你一套可直接照着练的学习路线


一、先搞清楚 iptables 是什么

iptables 是 Linux 内核 netfilter 框架的用户态工具,用来做:

  • 防火墙(允许 / 拒绝流量)
  • NAT(端口映射、上网)
  • 流量控制

⚠️ 注意:

  • CentOS 7 以后默认用 firewalld
  • 但很多服务器、老系统、运维面试仍然用 iptables
  • 学习 iptables 对理解 Linux 网络非常有帮助

二、准备环境(很重要)

1️⃣ 关闭 firewalld(避免冲突)

systemctl stop firewalld
systemctl disable firewalld

2️⃣ 安装 iptables 服务

yum install -y iptables-services
systemctl enable iptables
systemctl start iptables

三、理解 iptables 的“四张表五条链”

四张表(重点记住)

表名 作用
filter 防火墙(最常用)
nat NAT、端口映射
mangle 修改数据包
raw 连接跟踪

五条链(重点)

含义
INPUT 进入本机的数据包
OUTPUT 本机发出的数据包
FORWARD 转发的数据包
PREROUTING 路由前
POSTROUTING 路由后

新手 90% 只用 filter 表的 INPUT / OUTPUT


四、iptables 基本语法(必须背)

iptables [-t 表] 命令 链 [匹配条件] -j 动作

常见动作

动作 含义
ACCEPT 允许
DROP 丢弃(无响应)
REJECT 拒绝(有响应)

五、最常用的 iptables 命令(逐条练)

1️⃣ 查看规则

iptables -L -n -v

2️⃣ 清空规则(练习前建议)

iptables -F
iptables -X

3️⃣ 允许 SSH(千万别把自己踢出去)

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

4️⃣ 设置默认策略(强烈推荐)

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

5️⃣ 允许本地回环

iptables -A INPUT -i lo -j ACCEPT

6️⃣ 允许已建立连接

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

7️⃣ 开放 HTTP / HTTPS

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

8️⃣ 拒绝某个 IP

iptables -A INPUT -s 192.168.1.100 -j DROP

9️⃣ 删除规则

iptables -D INPUT 1

六、NAT 实战(端口映射)

场景:把 8080 映射到 80

iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 80

公网 IP 转发(网关)

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

七、永久保存 iptables 规则(CentOS 必做)

保存

service iptables save

或:

iptables-save > /etc/sysconfig/iptables

重启后生效

systemctl restart iptables

八、常见排错命令

iptables -L -n -v
iptables -L -n --line-number
dmesg | grep iptables

九、推荐学习顺序(照着做)

✅ 第 1 天:理解表、链、查看规则
✅ 第 2 天:INPUT / OUTPUT 规则
✅ 第 3 天:默认策略 + SSH 防锁死
✅ 第 4 天:NAT 和端口映射
✅ 第 5 天:真实服务器配置 + 保存规则


十、学习资料推荐

文档

  • man iptables
  • https://www.netfilter.org/

经典教程

  • 《iptables 详解》
  • 鸟哥 Linux 私房菜(防火墙篇)

十一、我可以继续帮你

你可以直接告诉我:

  • ✅ 你用的是 CentOS 6 / 7 / 8?
  • ✅ 是要 服务器防火墙 还是 网关 / NAT?
  • ✅ 是否 生产环境(我会提醒风险)?

我可以给你 定制 iptables 规则模板,照抄就能用。

0