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 中用用户名替换。Assh -J serveo.net user@computer_B_aliasuserB
PS:当然,在启动计算机时,您将第2点设为自动任务B。
PSS:在尝试此之前,请确保ssh两台计算机上均已安装该产品。对于Ubuntu,sudo apt-get install ssh可以胜任。
您可以使用ngrok。这个过程很简单: