Answers:
您想要做的就是将“ Linux服务器”从ssh转到外部的某物,例如“ my_other_server”或两台服务器都可以到达的其他东西。
您将使用ssh远程端口转发。
[user@linux_server]$ ssh -R8022:localhost:22 my_other_server.com
说明:连接到my_other_server并打开端口8022,它将在端口22上转发回我。
从my_other_server.com,您将能够在端口8022上SSH到localhost,并将您的流量转发到linux_server上other带的linux_server-> my_other_server隧道说明
[user@linux_server]$ ssh -p8022 localhost
:在端口8022上连接到我自己,该端口转发到linux_server
如果您在最初的linux_server-> my_other_server隧道丢失时遇到问题,则可以制作一个脚本来使其保持打开状态,调整keepalive设置或使用autossh。
autossh
使其保持打开状态。
您可以使用各种VPN来使其正常工作,但是这将需要您拥有一台无法访问的服务器可以访问的服务器。然后,您可以在服务器,您的PC和防火墙服务器上设置OpenVPN,启用client-to-client
,就可以完成。http://openvpn.net/howto.html
该答案基于已接受的答案,但添加了使我能够完成的详细信息。对于行人的解释,我深表歉意,因为这并不是我的专长。
假设您有两台计算机,A
并且B
。您想要ssh
从A
到B
,并且不能在与其连接的路由器中进行任何端口转发。
根据公认的答案,您需要一台服务器S
来执行此操作:在计算机中B
,您将允许ssh
来自的连接S
;和电脑A
,你会在访问该隧道S
来达到B
。
但是,您如何获得该服务器S
?我发现了serveo
(链接:https : //serveo.net/)。它的使用非常简单。您无需安装任何东西或注册,它是免费的。根据该网站,遵循的步骤为:
想一想计算机的别名B
。例如,computer_B_alias
。
在计算机上B
执行ssh -R computer_B_alias:22:localhost:22 serveo.net
。
现在,您可以通过在computer :中执行以下操作来B
从计算机访问计算机:,您必须A
在computer 中用用户名替换。A
ssh -J serveo.net user@computer_B_alias
user
B
PS:当然,在启动计算机时,您将第2点设为自动任务B
。
PSS:在尝试此之前,请确保ssh
两台计算机上均已安装该产品。对于Ubuntu,sudo apt-get install ssh
可以胜任。
您可以使用ngrok。这个过程很简单: