我有一个具有多个IP地址的VPS (我们可以使用debian、centos或ubuntu)。我可以使用任何IP地址通过服务器隧道。但是,我设置的任何ssh隧道总是只显示到最终目标站点的一个IP地址。
me -ssh to IP1
me -ssh to IP2- http:// whatismyip.com (显示IP1)
me -ssh to IP3- http:// whatismyip.com (显示IP1)
如何配置服务器,以便当我通过ssh隧道进入IP1时,它的出站IP是IP1。当我通过隧道进入IP2时,它的出站IP是IP2?
我想要的是: me -ssh to IP1 -转到whatismyip.com -到
me -ssh to IP2- http:// whatismyip.com (显示IP2)
IP在不同的子网中(实际上是完全不同的类)。
发布于 2010-03-31 19:07:26
用于连接到SSH服务器的IP地址实际上与SSH代表您启动出站连接时所使用的IP地址无关。
通过隧道传输的数据包的源地址将更多地依赖于路由表(S)和SSH服务器的默认网关。
如果您的所有地址都在同一个子网中,我不相信您可以使用ssh来设置源地址。
作为另一种选择,我相信您可以设置多个OpenVPN实例,每个实例都有自己的tun和ip地址范围。然后为来自每个VPN实例的数据包设置不同的NAT规则。
发布于 2014-08-14 10:14:53
这是一个肮脏的解决方案,可能导致问题。
> iptables -t nat -A POSTROUTING -j SNAT --to IP2
>
> so
> IP1 ---> IP2
> IP2 ---> IP2
> IP3 ---> IP2如果您需要更改并且没有任何其他iptables规则,只需重新启动iptables,而不是所有应该刷新的内容。
我和你一样有同样的麻烦,这是我能找到的最好的。
发布于 2013-09-30 19:58:28
这不是隧道问题。如果您在服务器上,并从服务器上运行SSH (这就是您创建隧道的方式,对吗?),您将看到这些隧道是使用相同的IP地址设置的。
这是一个TCP路由问题。如果运行netstat -rn,您将看到路由表。最有可能的是,您将所有数据包路由到相同的接口上--默认路由。您需要具有比默认路由更高优先级的非常特定的路由才能获得优先级。
https://serverfault.com/questions/128169
复制相似问题