如何在 Debian 上进行端口转发/重定向?

如何在 Debian 上进行端口转发/重定向?

我有两个问题。

问题 1:我的 Debian 机器有接口 eth3,IP 为 192.168.57.28。如果有人尝试连接到 192.168.57.28:1234,我该如何将请求重定向到另一台机器:192.168.57.25:80?

问题 2:如果我的 Debian 机器有两个接口:eth3 为 192.168.57.28,ppp0 为某个动态 IP,并且有人尝试通过端口 1234 上的 ppp0 进行连接,我该如何将请求重定向到 192.168.57.25:80?

我尝试过这个:

iptables -t nat -A PREROUTING -p tcp --dport 1234 -j DNAT --to-destination 192.168.57.25:80
echo 1 > /proc/sys/net/ipv4/ip_forward

但它不起作用。

答案1

好的,规则看起来不错,但您必须记住,该机器中生成的数据包不会经过 PREROUTING。如果持有相关 iptables 的机器也需要以相同的方式重定向其自己的流量,则需要将相同的规则放入 OUTPUT。请参阅 iptables-extensions DNAT,它在 OUTPUT 和 PREROUTING 中都有效。

另一个可能引起问题的是过滤。请确保您还允许上述流量双向通过机器。

第三件事是,您可能还需要在 POSTROUTING 中伪装到该目的地的流量,以便找到回家的路线。

根据目前的信息,我无法判断数据包丢失的位置。使用 tcpdump 查看数据包飞到了哪里。

相关内容