iptables 预路由本地主机

Jer*_*oen 5 linux ubuntu firewall ip iptables

我想使用 iptables 将所有传入流量从某个端口转发到另一个端口。问题是预路由不适用于来自本地主机的流量。本主题提出了一个解决方案:

iptables -t nat -I PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8080
iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 --dport 443 -j REDIRECT --to-ports 8080
Run Code Online (Sandbox Code Playgroud)

该解决方案适用于大多数情况。但是,当我连接到http://myserver:443(其中 myserver 解析为本地计算机上托管的 IP 地址,但不是 127.0.0.1)时,它似乎绕过了这两个规则。

有没有办法也捕获从本地计算机发送到 eth0 IP 地址的转发请求?

phe*_*mer 4

您可以执行以下操作,而不是执行-d 127.0.0.1OUTPUT 规则-o lo。这将匹配通过环回接口的任何流量,无论目的地是什么。

顺便说一句,即使您发送到“ http://myserver:443 ”,流量仍然是本地的,因此它仍然通过环回接口,即使它没有解析为“127.0.0.1”。