Skip to content

📋 速查表

规则操作

操作命令
查看所有规则iptables -L -v -n --line-numbers
查看指定链iptables -L INPUT -v -n
查看指定表iptables -t nat -L -v -n
追加规则iptables -A INPUT -p tcp --dport 80 -j ACCEPT
插入到第 1 行iptables -I INPUT 1 -p tcp --dport 22 -j ACCEPT
删除指定规则iptables -D INPUT 3(删除第 3 行)
清空所有规则iptables -F
清空所有链iptables -F && iptables -X
设置默认策略iptables -P INPUT DROP
重置计数器iptables -Z
保存规则iptables-save > /etc/iptables/rules.v4
恢复规则iptables-restore < /etc/iptables/rules.v4

常用匹配条件

条件语法示例
协议-p tcp/udp/icmp-p tcp
目标端口--dport 端口--dport 80
多端口-m multiport --dports-m multiport --dports 80,443
源 IP-s IP/网段-s 192.168.1.0/24
目标 IP-d IP/网段-d 10.0.0.50
网卡接口-i 接口名-i eth0
连接状态-m state --state-m state --state NEW,ESTABLISHED
速率限制-m limit --limit-m limit --limit 5/min
连接数限制-m connlimit --connlimit-above-m connlimit --connlimit-above 10
IP 集合-m set --match-set-m set --match-set blacklist src
TCP 标志--tcp-flags--tcp-flags SYN,ACK,FIN SYN

常用目标(Target)

Target作用示例
ACCEPT允许通过-j ACCEPT
DROP静默丢弃(不回复)-j DROP
REJECT拒绝并回复(通知对方)-j REJECT --reject-with tcp-reset
LOG记录日志后继续匹配-j LOG --log-prefix "DROP: "
DNAT目标地址转换(端口转发)-j DNAT --to 10.0.0.5:8080
SNAT源地址转换(共享公网 IP)-j SNAT --to 1.2.3.4
MASQUERADE动态 SNAT(适合拨号网络)-j MASQUERADE
REDIRECT重定向到本机端口-j REDIRECT --to-port 8080
MARK打标记(配合策略路由)-j MARK --set-mark 1
RETURN返回调用链-j RETURN

iptables vs nftables vs firewalld

特性iptablesnftablesfirewalld
时代经典(v4)新一代(v5)高层封装
语法复杂简洁简单
性能线性匹配集合匹配 O(1)底层用 nftables
持久化iptables-savenft list ruleset自动持久化
适合场景老系统、Docker新系统、高性能桌面、简单服务器
学习价值⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐

💡 提示: 💡 建议:iptables 是基础——即使你最终用 nftables 或 firewalld,理解 iptables 的链、表、匹配、目标概念也是一切防火墙知识的根基。先学透 iptables,再迁移到 nftables 会非常轻松。