将本地服务redirect到自定义代理

我试图创build一个自定义的代理程序,但我有一个问题。

我的程序从一个随机的端口连接到一个固定的端口,我需要通过我的本地代理隧道所有这些stream量。

我认为解决scheme是使用iptables,但我发现的所有主题都与redirect传入连接有关,而不是出站。

如何将本地端口的所有stream量redirect到另一个本地端口,然后再redirect到互联网?

谢谢,

iptables -t nat -A OUTPUT -p tcp --dport 12345 -j REDIRECT --to-ports 54321

12345是您的程序尝试连接到的端口

54321是您的代理服务器端口

您还可以指定其他选项,如“-m owner –uid-owner qqq”仅redirect用户qqq或“-d 11.22.33.44”的连接,以仅redirect用于主机11.22.33.44的连接。

如果需要的话,代理程序可以很容易地在redirect之前获得目的地址。

如果你需要连接到某个地方,运行socat tcp-l:54321,fork,reuseaddr tcp:11.22.33.44:12345