Skip to content

iptables 指令大全

1. 常用核心指令 (高频精简版)

指令/参数语法结构描述
-L (List)iptables -L -n -v查看所有规则 (数字格式/详细)
-F (Flush)iptables -F清空当前表的所有规则
-A (Append)iptables -A INPUT -s <IP> -j DROP在链末尾追加规则 (如封禁IP)
-I (Insert)iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT在链首(或指定位置)插入规则
-D (Delete)iptables -D INPUT <编号>删除指定编号的规则
-P (Policy)iptables -P INPUT DROP设置默认策略 (如默认拒绝所有入站)
-s (Source)iptables -A INPUT -s 192.168.1.100 -j ACCEPT匹配源 IP 地址
--dportiptables -A INPUT -p tcp --dport 22 -j ACCEPT匹配目标端口 (需配合 -p)
saveiptables-save > /etc/iptables.rules导出/保存当前规则
restoreiptables-restore < /etc/iptables.rules导入/恢复规则

2. iptables 全面指令 (分类速查)

2.1 链与表管理 (Chains & Tables)

管理 Filter(默认), NAT, Mangle 等表及链的操作。

指令/参数语法结构描述
-tiptables -t nat -L指定操作的表 (filter/nat/mangle/raw)
-Liptables -L [链名] [选项]列出规则 (常用参数 -n -v --line-numbers)
-Fiptables -F [链名]清空规则 (Flush)
-Ziptables -Z [链名]计数器归零 (Zero)
-Niptables -N <新链名>新建自定义链
-Xiptables -X [链名]删除自定义链 (链必须为空)
-Eiptables -E <旧名> <新名>重命名自定义链
-Piptables -P <链名> <动作>设置链的默认策略 (ACCEPT/DROP)

2.2 规则操作 (Rule Management)

针对具体规则的增删改。

指令/参数语法结构描述
-Aiptables -A <链名> <规则>追加规则到链尾 (Append)
-Iiptables -I <链名> [编号] <规则>插入规则 (默认插到第一行)
-Diptables -D <链名> <编号/规则>删除规则 (按编号或匹配内容)
-Riptables -R <链名> <编号> <新规则>替换/修改指定行号的规则
-Ciptables -C <链名> <规则>检查规则是否存在 (Check)

2.3 匹配条件 (Matching Specs)

定义什么样的流量会被捕获。

指令/参数语法结构描述
-piptables -A INPUT -p tcp匹配协议 (tcp/udp/icmp/all)
-siptables -A INPUT -s 192.168.1.0/24匹配源 IP 或网段 (Source)
-diptables -A OUTPUT -d 8.8.8.8匹配目标 IP 或网段 (Destination)
-iiptables -A INPUT -i eth0匹配入站网卡接口 (Input Interface)
-oiptables -A OUTPUT -o eth0匹配出站网卡接口 (Output Interface)
--sport... -p tcp --sport 22匹配源端口 (Source Port)
--dport... -p tcp --dport 80匹配目标端口 (Destination Port)
--icmp-type... -p icmp --icmp-type 8匹配 ICMP 类型 (如 8 为 ping 请求)

2.4 高级模块匹配 (Modules)

使用 -m 调用扩展模块进行复杂匹配。

指令/参数语法结构描述
-m state... -m state --state ESTABLISHED,RELATED匹配连接状态 (常用:允许已建立的连接)
-m multiport... -m multiport --dports 80,443,22匹配多个不连续端口
-m mac... -m mac --mac-source <MAC地址>匹配源 MAC 地址
-m limit... -m limit --limit 5/min速率限制 (防 DDoS 常用)
-m string... -m string --algo bm --string "test"匹配数据包中的字符串
-m time... -m time --timestart 08:00 --timestop 18:00按时间段匹配
-m iprange... -m iprange --src-range 192.168.1.5-192.168.1.10匹配 IP 地址范围

2.5 动作与目标 (Targets -j)

匹配到流量后执行的动作。

指令/参数语法结构描述
ACCEPT-j ACCEPT允许数据包通过
DROP-j DROP直接丢弃数据包 (不回传任何信息)
REJECT-j REJECT拒绝并回传 ICMP 错误信息
LOG-j LOG --log-prefix "IPTABLES: "记录日志到 syslog (不中断处理)
SNAT-t nat ... -j SNAT --to-source <IP>源地址转换 (用于静态 IP 网关)
DNAT-t nat ... -j DNAT --to-destination <IP:Port>目标地址转换 (端口转发)
MASQUERADE-t nat ... -j MASQUERADE动态源地址伪装 (用于动态 IP 网关)
REDIRECT-t nat ... -j REDIRECT --to-port <端口>本机端口重定向 (透明代理常用)

2.6 持久化与保存 (Persistence)

iptables 规则重启后默认清空,需手动保存。

指令语法结构描述
iptables-saveiptables-save > /etc/iptables.v4将当前运行规则输出到文件
iptables-restoreiptables-restore < /etc/iptables.v4从文件恢复规则
netfilter-persistentnetfilter-persistent save(Debian/Ubuntu) 保存当前规则 (需安装包)
service iptablesservice iptables save(CentOS 6/Old RHEL) 保存规则