iptables v1.8.4 (legacy) 命令整理
表(Tables)
表名 | 描述 |
---|---|
filter | 默认表,用于过滤数据包(INPUT/OUTPUT/FORWARD) |
nat | 网络地址转换(NAT)表(PREROUTING/POSTROUTING) |
mangle | 修改数据包头(如TTL、TOS)的表 |
raw | 连接跟踪豁免或优先级设置的表 |
命令(Commands)
规则管理
命令 | 缩写 | 描述 |
---|---|---|
--append | -A | 追加规则到链的末尾 |
--check | -C | 检查规则是否存在 |
--delete | -D | 删除链中的规则(按序号或规则内容) |
--insert | -I | 插入规则到链的指定位置(默认头部) |
--replace | -R | 替换链中的指定规则 |
链管理
命令 | 缩写 | 描述 |
---|---|---|
--new-chain | -N | 创建自定义链 |
--delete-chain | -X | 删除空的自定义链 |
--policy | -P | 设置链的默认策略(ACCEPT/DROP) |
--flush | -F | 清空链中的所有规则 |
--rename-chain | -E | 重命名链 |
查看与列表
命令 | 缩写 | 描述 |
---|---|---|
--list | -L | 列出链中的规则 |
--list-rules | -S | 以规则格式输出(用于备份/恢复) |
--line-numbers | 显示规则的行号(配合 -L 使用) |
通用选项(Options)
选项 | 描述 |
---|---|
--protocol | -p 指定协议(如 tcp , udp , icmp ) |
--source | -s 源IP地址或网段 |
--destination | -d 目标IP地址或网段 |
--in-interface | -i 输入网卡(如 eth0 ) |
--out-interface | -o 输出网卡 |
--jump | -j 指定目标动作(如 ACCEPT , DROP ) |
--goto | -g 跳转到指定链继续处理 |
--match | -m 加载扩展模块(如 state , multiport ) |
--numeric | -n 以数字格式显示IP和端口 |
--verbose | -v 显示详细信息 |
常用匹配模块(Match Modules)
基础匹配
模块 | 参数 | 描述 |
---|---|---|
tcp | --sport , --dport | 匹配TCP源/目标端口 |
udp | --sport , --dport | 匹配UDP源/目标端口 |
icmp | --icmp-type | 匹配ICMP类型 |
扩展匹配
模块 | 参数 | 描述 |
---|---|---|
state | --state | 匹配连接状态(NEW/ESTABLISHED等) |
multiport | --sports , --dports | 匹配多个端口(逗号分隔或范围) |
limit | --limit | 限制规则匹配速率(如 5/second ) |
mac | --mac-source | 匹配源MAC地址 |
目标动作(Targets)
基础动作
目标 | 描述 |
---|---|
ACCEPT | 允许数据包通过 |
DROP | 丢弃数据包 |
REJECT | 拒绝数据包并返回错误(如ICMP不可达) |
RETURN | 返回到调用链继续处理 |
NAT 相关
目标 | 描述 |
---|---|
SNAT | 源地址转换(需指定 --to-source ) |
DNAT | 目标地址转换(需指定 --to-destination ) |
MASQUERADE | 自动SNAT(适用于动态IP) |
其他扩展
目标 | 描述 |
---|---|
LOG | 记录日志(可指定前缀和日志级别) |
REDIRECT | 端口重定向 |
示例
bash
# 允许来自 192.168.1.0/24 的 SSH 连接
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT
# 拒绝所有其他入站流量
iptables -P INPUT DROP
# 显示 NAT 表规则(带行号)
iptables -t nat -L -n --line-numbers