iptables本身不直接支持流量镜像,但可通过tee模块在mangle表prerouting链中复制数据包发往直连网段内指定网关,实现旁路镜像;备份接口策略需用-i/-o限定网卡并持久化保存规则。

iptables 本身不直接支持“流量镜像”(即复制一份流量发往监控设备),但可通过 TEE 扩展模块配合 PREROUTING 链实现类似效果;而“备份接口策略”实际指对特定网卡(如 eth0、ens33)的入站/出站规则做定向配置与持久化保存。这两类操作都需谨慎,稍有误配可能中断网络连接。
流量镜像:用 TEE 实现旁路复制
TEE 目标用于将匹配的数据包复制一份发送到指定网关(非转发,仅镜像),常用于 IDS、流量分析等场景。它属于 mangle 表,仅支持 IPv4。
- 确保内核已启用 TEE 支持(主流发行版默认开启,可检查:
ls /lib/modules/$(uname -r)/kernel/net/ipv4/netfilter/ | grep xt_TEE) - 在 mangle 表 PREROUTING 链添加镜像规则,例如将所有经 eth0 进来的包复制一份发往 192.168.100.100:
注意:
– TEE 不修改原包,仅生成副本,目标地址必须是直连网段内的三层可达地址;
– 若需镜像出向流量,可用 -o eth0 匹配出接口,但通常镜像入口更常见;
– 该规则不会影响原始转发路径,也不触发 conntrack 状态更新。
按接口设置策略:绑定规则到特定网卡
通过 -i(入接口)或 -o(出接口)参数,可让规则只作用于某块物理/虚拟网卡,避免全局策略干扰管理网口或容器桥接口。
- 仅允许来自 eth0 的 SSH 连接(禁止其他接口访问 22 端口):
- 拒绝所有来自 docker0 桥接网卡的入向新连接(防止容器意外暴露):
- 限制某接口的出向带宽(需配合 tc,iptables 仅作标记):
随后用
tc 对 mark=1 的流量限速。
策略备份与恢复:确保重启不失效
iptables 规则默认不持久,系统重启后清空。必须显式备份并配置开机加载。
- 立即备份当前全部规则(含 nat/mangle/raw 表):
- Debian/Ubuntu 系统自动加载:确保
iptables-persistent已安装并启用:
netfilter-persistent enable
- CentOS/RHEL 7/8:使用
iptables-services(RHEL8+ 推荐改用 nftables,但兼容层仍支持):
systemctl enable iptables
service iptables save
- 验证是否生效:重启后执行
iptables -L -v -n,确认规则存在且计数器非零。
安全提醒:避免锁死远程管理
设置默认 DROP 策略时,务必前置放行关键通道,否则可能断开 SSH 连接:
- 先插入基础通行规则(顺序重要!):
iptables -I INPUT 2 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -I INPUT 3 -p tcp --dport 22 -j ACCEPT
- 再设置默认策略:
建议在终端中设置超时回滚(例如用 at 或后台 sleep + flush),或通过本地控制台操作,以防误操作失联。











