透過輔助 IP 的 SSH

透過輔助 IP 的 SSH

SSH

SSH

大家好,

我的專用伺服器有幾個分配給特定帳戶的 IP 位址。我可以透過輔助 IP SSH 到該帳戶。但一旦進入,IP始終是主IP(我嘗試使用命令“curl wtfismyip.com/text”)

我有一些 shell 腳本需要在不同的 ssh 實例中運行,它們應該使用不同的 IP 位址(不同的帳戶)進行出站。

有人對這個問題有什麼建議、解決方案嗎?我將不勝感激你的幫助。

謝謝

答案1

外部網站(例如whatismyip等)看到的伺服器IP是您的伺服器從路由表中取得的IP。

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

如果您嘗試連接的站點的 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
    

相關內容