通过辅助 IP 进行 SSH

通过辅助 IP 进行 SSH

远程控制

远程控制

大家好,

我的专用服务器有几个 IP 地址分配给特定帐户。我可以通过辅助 IP 通过 SSH 连接到帐户。但一旦进入,IP 始终是主 IP(我尝试使用命令“ curl wtfismyip.com/text ”)

我有几个需要在不同的 ssh 实例中运行的 shell 脚本,并且它们应该使用不同的 IP 地址(不同的帐户)进行出站通信。

有人对此事有什么建议或解决方案吗?我将非常感谢您的帮助。

谢谢

答案1

外部网站(例如 whatismyip 等)看到的您的服务器 IP 是您的服务器从路由表中获取的 IP。

$ ip route
default via x.x.x.x dev ethX ...
10.0.0.0/16 dev ethY ...
....

如果您尝试连接的站点的 IP 位于路由表中指定的子网中,则源 IP(您的 IP)和传出接口都将从此特定路由中获取。例如:whatismyip.net 的 IP 是 10.0.0.1,当您向其发送流量时,您的服务器将使用 ethY 接口和 ethY IP。

否则,如果站点不匹配任何子网,则使用默认路由。在示例中,服务器将通过 ethX 接口发送流量,并以 ethX IP 作为源。

在您的上下文中,似乎您的默认路由是通过 eth0。

要使用另一个接口/IP:

  1. 您可以为某些命令指定传出接口,然后指定源 IP,例如。

    ping -I ethY whatever.net
    ping -I eth0.Y whatever.net
    curl --interface eth0.Y wtfismyip.com/text
    
  2. 或者,您可以为 MY_REMOTE_IP 添加新路由,这将强制使用给定接口或源 IP 进行通信。在上面的示例中,MY_SECOND_IP 是 ethY 接口的 IP

    $ ip route add MY_REMOTE_IP dev ethY src MY_SECOND_IP
    $ ip route add MY_REMOTE_IP dev eth0.Y src MY_SECOND_IP
    
  3. 否则,在某些命令中,您可以强制执行源 IP,例如。

    ssh -b MY_SECOND_IP user@MY_REMOTE_IP
    

相关内容