iptables nat 问题

iptables nat 问题

我将所有 tcp 都 nat 到 socks 代理,执行以下操作..

sudo iptables -t nat -A OUTPUT -p tcp -m owner --uid-owner USER -m tcp -j REDIRECT --to-ports XXX

因此所有数据包都到达那里,它就可以正常工作。

我知道本地 socks 代理连接到一个 IP,我想允许我的计算机仅访问该 IP。我尝试这样做的方法是...

sudo iptables -P OUTPUT DROP

然后我添加一个例外

sudo iptables -A OUTPUT -o lo -d 127.0.0.1 -j ACCEPT (loopback)
sudo iptables -A OUTPUT -d xxx.yyy.xxx.zzz -j ACCEPT

我使用 wireshark 查看我的计算机是否连接到另一个 IP,但它只连接到该 IP,但不知何故,当我对 iptables 说删除除允许所有协议和所有端口之外的所有内容时,它不起作用。我真的无法理解。

答案1

  1. 使用“-v, --verbose”,你会看到 iptables 计数器。这是一个很好的调试工具。
  2. 使用 LOG 目标来调试 iptables 规则。

答案2

我认为您应该在最后添加该丢弃规则,因为如果您先添加它,它将首先被处理。而且由于所有数据包都符合该丢弃规则,因此所有后续规则都将被忽略。

相关内容