不知道如何标题的问题,但情况如下:
我有3台服务器:
USER , TUNNEL , TARGET
在TUNNEL我运行命令
TUNNEL:~$ ssh -nNT -L 0.0.0.0:22222:localhost:22 TARGET
这使我可以通过在端口22222连接到TUNNEL从USER到TARGET ssh
USER:~$ ssh TUNNEL -p 22222
问题是:从TARGETangular度来看,连接会显示为来自USER还是TUNNEL ?
如果您通过转发的端口连接到服务器,它将被视为在本地发起。
提示:您可以使用ProxyJump直接连接到目标。 它可以用作$ ssh -J user@TUNNEL user@TARGET 。 如果你有一个旧版本的openssh客户端,你可以使用ProxyCommand 。
设置它并尝试有多困难? 例如使用$SSH_CONNECTION环境variables:
USER:~$ ssh TUNNEL -p 22222 'echo $SSH_CONNECTION'
但是第一个连接创build端口转发,对于正在使用它的应用程序是透明的。 因此,第二个TCP连接在USER机器上启动,到达TUNNEL机器并从透明地转发到TARGET机器。 所以一旦TARGET询问连接来自哪里,他就会得到USER的真实公共IP地址。