You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Debian系统下iptables出站流量重定向至本地端口问题咨询

解决iptables出站流量被重定向至本地端口的问题

老兄,我仔细看了你贴的Debian上的iptables脚本,发现问题出在你只处理了filter表的规则,完全没碰nat表——而出站流量被重定向这种事儿,大多是nat表的OUTPUT链里残留了旧规则导致的。

你的脚本开头只清空了filter表的链和规则:

$IPT --flush
$IPT --delete-chain

但默认情况下iptables操作的是filter表,nat、mangle这些表的旧规则根本没被清理,要是之前有人(或者你自己)配置过REDIRECT目标的规则,比如把某类出站流量重定向到本地端口,这些规则会一直生效,搞乱你的出站流量。

修正后的完整脚本

我给你调整了脚本,加上了清空所有表规则的操作,同时保留你原来的filter表策略:

#!/bin/sh
IPT="/sbin/iptables"

# 清空所有表的旧规则与自定义链(关键!)
$IPT --flush
$IPT --delete-chain
$IPT -t nat --flush
$IPT -t nat --delete-chain
$IPT -t mangle --flush
$IPT -t mangle --delete-chain

# 设置三条默认链的默认策略
$IPT -P INPUT DROP
$IPT -P FORWARD DROP
$IPT -P OUTPUT ACCEPT

# 允许自由使用回环接口
$IPT -A INPUT -i lo -j ACCEPT

# 所有TCP会话需以SYN包起始
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -s 0.0.0.0/0 -j DROP

# 接收入站TCP数据包
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p tcp --dport 22 -m state --state NEW -s 0.0.0.0/0 -j ACCEPT

# 接收入站ICMP消息
$IPT -A INPUT -p ICMP --icmp-type 8 -s 0.0.0.0/0 -j ACCEPT

# Windows虚拟机相关规则(补全你没写完的部分)
$IPT -A INPUT -i virbr0 -p udp -m udp --dport 53 -j ACCEPT
# 这里可以继续补充你原来没写完的virbr0相关规则

额外排查步骤

如果你想确认是不是nat表的锅,可以先运行这条命令查看nat表的所有规则:

iptables -t nat -L -n -v

如果看到带有REDIRECT目标的规则,那就是它在搞鬼——用修正后的脚本执行一次就能清空这些规则。

另外提醒一句:以后写iptables脚本的时候,记得要处理所有可能涉及的表,不然旧规则残留很容易出这种莫名其妙的问题。

内容的提问来源于stack exchange,提问作者Christoph Ritzer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:21:07