我有个关于ssh隧道的问题。我读过这篇文章
我想让X转发工作,并在家中运行一些X应用程序,并将它们显示在远程系统上:
ssh -X -R 5555:localhost:22 user@remoteserver.com -N遥控器上:
ssh -X -p 5555 user@192.168.1.2然后在家里:
//configure sshd to listen on 5555
ssh user@remoteserver.com
//here run some app它应该有效吗?
发布于 2014-03-14 16:03:49
输入ssh隧道命令的机器称为“您的主机”。


-L Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side. ssh -L sourcePort:forwardToHost:onPort connectToHost的意思是:将ssh连接到connectToHost,并将所有连接尝试转发到本地sourcePort到名为forwardToHost的计算机上的端口onPort,这可以从connectToHost机器到达。-R Specifies that the given port on the remote (server) host is to be forwarded to the given host and port on the local side. ssh -R sourcePort:forwardToHost:onPort connectToHost的意思是:将ssh连接到connectToHost,并将所有连接尝试转发到远程sourcePort到名为forwardToHost的计算机上的端口onPort,这可以从本地计算机到达。那么,如果您只想使X转发工作,即在家里的计算机上运行一些X应用程序,并在远程系统上显示它们(让我们称之为工作计算机,因为它可能在您的工作场所),那么您可能根本不需要ssh隧道。
你能简单地从工作电脑到家里的电脑吗?如果是这样的话,当您坐在工作计算机上并希望启动一个在您的家用计算机上运行但在您的工作计算机上显示的X应用程序时,您必须键入(在工作计算机上):
ssh -X homeuser@homecomputer firefox
这将启动家庭计算机上的firefox,并将其显示在键入此命令的机器上,例如您的工作计算机。
这是我素描的第三张图片。很多时候,家庭计算机无法从互联网直接到达,因为它位于防火墙后面或通过NAT (从路由器)隐藏起来。然后你可以用隧道。
在蓝色家用计算机(yourhost)上键入:
ssh -R 5555:localhost:22 remoteuser@remotehost其中5555是绿色端口,22是图像中的粉红色端口。
如果您现在正在工作,在remotehost,并连接到绿色端口5555,则您的连接将被隧道/转发到家庭计算机的localhost (即蓝色家庭计算机本身)的粉红色端口。现在你必须在你的工作电脑上打字:
ssh -X -p 5555 homeuser@localhost firefox它将在您的家用计算机(yourhost)上启动firefox并在键入此命令的机器上显示它,例如您的工作计算机(remotehost)。
发布于 2013-08-17 19:59:28
您需要指定要转发的远程显示。遥控器上:
DISPLAY=:0 ssh -X -p 5555 user@localhost # not sure why you used 192.168.1.2转发:0显示。
然后在这个shell中(现在在您的主机上运行),运行:
echo "$DISPLAY"若要查找转发显示的内容,请执行以下操作。这将类似于localhost:10,这意味着您需要在端口6010上进行TCP连接才能连接到远程计算机上的显示:0 (:0的意思是连接到/tmp/.X11-unix之类的Unix域套接字)。
然后,要让计算机上的应用程序显示在远程服务器的显示器上,只需告诉它们使用localhost:10:
DISPLAY=localhost:10 xlogo例如。
注意,那是隧道上的隧道。
https://unix.stackexchange.com/questions/87138
复制相似问题