温馨提示×

如何学习CentOS iptables命令

小樊
57
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 踩