获取传入ssh转发连接端口号
我有一个服务器正在将连接转发到一组其他服务器 在此,我转发以下所有输入连接: my.tunnel.com:33199至my.server2.com:52222 和 my.tunnel.com:33200至my.server3.com:52222 。。直到 my.tunnel.com:XXXXX至my.serverN.com:52222 我在每台服务器上(tunnel my.tunnel.com除外)通过以下命令启动此操作:获取传入ssh转发连接端口号,ssh,portforwarding,sshd,Ssh,Portforwarding,Sshd,我有一个服务器正在将连接转发到一组其他服务器 在此,我转发以下所有输入连接: my.tunnel.com:33199至my.server2.com:52222 和 my.tunnel.com:33200至my.server3.com:52222 。。直到 my.tunnel.com:XXXXX至my.serverN.com:52222 我在每台服务器上(tunnel my.tunnel.com除外)通过以下命令启动此操作: ssh -o StrictHostKeyChecking=no -l r
ssh -o StrictHostKeyChecking=no -l root -i /etc/ssh/id_rsa -R *:33199:127.0.0.1:22 -p 443 my.tunnel.com 0 33199
...
ssh -o StrictHostKeyChecking=no -l root -i /etc/ssh/id_rsa -R *:XXXXX:127.0.0.1:22 -p 443 my.tunnel.com 0 XXXXX
好吧,这个很好用
但是
在启动这些命令时,我想在my.tunnel.com上检查my.server2.com是否希望my.tunnel.com完全从端口33199转发,而不是从另一个端口转发!现在我想得到这个端口号
请让我知道,如果问题仍然没有充分清楚地暴露出来
谢谢 获取转发的端口
环境变量中没有此类信息,因此您必须自己传递:
ssh -R 33199:127.0.0.1:22 my.tunnel.com "export MY_FWD_PORT=33199; my_command"
(my_命令是要在服务器上运行的脚本)。有关传递变量的更多信息-
获取源端口
查看中的环境变量SSH\u CONNECTION
。其含义是:
source_ip source_port dest_ip dest_port
您可能需要源代码\u端口
,因此只需获取它的第二部分:
echo $SSH_CONNECTION | awk '{ print $2 }'
或
现在还不清楚你在问什么,你的意思是什么。你应该包括一些例子。@Tomas,我已经用一个例子更新了这个问题好了,现在更清楚了。我已经更新了我的答案。非常感谢。很遗憾,这些信息在env变量中不可用。事实上,我不太信任这些服务器,所以能够在隧道端进行这种更改是很酷的。谢谢你的出口提示!
echo $SSH_CONNECTION | cut -d" " -f 2