学习 CentOS 下的 iptables 命令,建议按「原理 → 常用命令 → 实战场景 → 永久保存 → 排错」的顺序来,下面给你一套可直接照着练的学习路线。
iptables 是 Linux 内核 netfilter 框架的用户态工具,用来做:
⚠️ 注意:
systemctl stop firewalld
systemctl disable firewalld
yum install -y iptables-services
systemctl enable iptables
systemctl start iptables
| 表名 | 作用 |
|---|---|
| filter | 防火墙(最常用) |
| nat | NAT、端口映射 |
| mangle | 修改数据包 |
| raw | 连接跟踪 |
| 链 | 含义 |
|---|---|
| INPUT | 进入本机的数据包 |
| OUTPUT | 本机发出的数据包 |
| FORWARD | 转发的数据包 |
| PREROUTING | 路由前 |
| POSTROUTING | 路由后 |
✅ 新手 90% 只用 filter 表的 INPUT / OUTPUT
iptables [-t 表] 命令 链 [匹配条件] -j 动作
| 动作 | 含义 |
|---|---|
| ACCEPT | 允许 |
| DROP | 丢弃(无响应) |
| REJECT | 拒绝(有响应) |
iptables -L -n -v
iptables -F
iptables -X
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -s 192.168.1.100 -j DROP
iptables -D INPUT 1
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 80
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
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你可以直接告诉我:
我可以给你 定制 iptables 规则模板,照抄就能用。