我有一个正在运行的 SSH 代理,现在我需要为我的客户端选择一个不同的传出 IP

我有一个正在运行的 SSH 代理,现在我需要为我的客户端选择一个不同的传出 IP

我通过 Putty 设置了到专用服务器的 SSH 隧道,并将其用作 socks 代理。问题是我需要使用与专用服务器主 IP 不同的传出 IP 地址。我为该服务器设置了 30 个 ip 块,但即使我设置了基于 Web 的代理 (php),它也会使用主服务器 ip。

有人知道解决办法吗?

谢谢!

答案1

通常,OS 会假设连接的源 IP 地址(即您所说的“传出 IP”)等于传出接口的主地址(请参阅ifconfig -a)。传出接口是通过查找路由表中的匹配条目来确定的(请参阅netstat -rnroute)。

您可以尝试在路由表中添加/更改条目,有可能会导致操作系统选择另一个传出接口,反过来,有可能会导致您的操作系统选择另一个源 IP 地址。

除此之外,如果您的服务器恰好是 Linux,那么您可以使用 SNAT 来解决此问题(请参阅iptables)。

答案2

首先,您是否为您的 NIC 设置了别名?

如果您使用 IP 别名进行 ssh 会发生什么情况?

对于基于 Web 的代理,您应该能够指定要绑定到的 IP 地址。在 Apache 中,您只需设置 Listen 选项。您试过了吗?

或者,正如 kubanskamac 提到的,使用 iptables。

相关内容