iptables - 如何通过本地代理/SSH 转发所有端口(我的传出流量)?

iptables - 如何通过本地代理/SSH 转发所有端口(我的传出流量)?

通过阅读大约 30 个类似的问题和一些教程,我对 iptables 有了非常基本的了解。我试图通过 SSH 转发所有传出流量,使其作为一种通用 socks 代理。我现在没有办法测试这个,但这是我自己想出的办法:

iptables -A OUTPUT -i eth0 -p tcp --destination-port 22 -j ACCEPT
iptables -A OUTPUT -i eth0 -p tcp -j REDIRECT --to-port 22

第一条规则应该自动接受任何已经发往端口 22 的数据包,而第二条规则应该将任何剩余的传出数据包重定向到端口 22。

我的主要问题是我不完全了解 PREROUTING 和 OUTPUT 之间的区别,因为我看到它们以不同的方式用于转发这样的端口。

答案1

使用袜子

“通过使用 LD_PRELOAD 环境变量或 /etc/ld.so.preload 文件,tsocks 会自动加载到每个执行程序的进程空间中。从那里,它通过提供自己的函数来覆盖正常的 connect() 函数。因此,当应用程序调用 connect() 来建立 TCP 连接时,它会将控制权传递给 tsocks”

相关内容