Networking

通過 ssh 隧道的連接如何出現在主機上

  • June 6, 2017

不知道如何命名問題,但情況如下:

我有 3 台伺服器:

USER, TUNNEL, TARGET

TUNNEL我執行命令

TUNNEL:~$ ssh -nNT -L 0.0.0.0:22222:localhost:22 TARGET

這使我能夠USER通過TARGET連接到TUNNEL埠 22222來 ssh

USER:~$ ssh TUNNEL -p 22222

問題是:從這個TARGET角度來看,連接是否會顯示為來自USERor TUNNEL

如果您通過轉發埠連接到伺服器,它將被視為源自本地。

提示:您可以使用*ProxyJump直接連接到目標。它可以用作 $ ssh -J user@TUNNEL user@TARGET. 如果您有舊版本的 openssh 客戶端,您可以使用ProxyCommand*。

設置並嘗試有多難?例如使用$SSH_CONNECTION環境變數:

USER:~$ ssh TUNNEL -p 22222 'echo $SSH_CONNECTION'

但是第一個連接會創建埠轉發,這對於使用它的應用程序來說是透明的。所以第二個 TCP 連接在 USER 機器上開始,到達 TUNNEL 機器並從那裡透明地轉發到 TARGET 機器。所以一旦 TARGET 詢問連接來自哪裡,他就會得到 USER 的真實公共 IP 地址。

引用自:https://serverfault.com/questions/853993