我正在尝试创建一个自定义代理程序但遇到了问题。
我的程序从随机端口连接到固定端口,并且我需要通过本地代理传输所有这些流量。
我认为解决方案是使用 iptables,但我发现的所有主题都与重定向传入连接有关,而不是出站连接。
如何将所有流量从本地端口重定向到另一个本地端口,然后再重定向到互联网?
谢谢,
答案1
iptables -t nat -A OUTPUT -p tcp --dport 12345 -j REDIRECT --to-ports 54321
12345 是你的程序尝试连接的端口
54321 是您的代理服务器端口
您还可以指定其他选项,例如“-m Owner --uid-owner qqq”以仅重定向用户 qqq 的连接或“-d 11.22.33.44”以仅重定向发往主机 11.22.33.44 的连接。
如果代理程序愿意,它可以很容易地在重定向之前获取目标地址。
如果你只需要连接到某个地方,请运行socat tcp-l:54321,fork,reuseaddr tcp:11.22.33.44:12345