ssh隧道解释

ssh隧道解释

我有一个关于 ssh 隧道的问题。我读过这篇文章

我想让 X 转发工作并在家运行一些 X 应用程序并将它们显示在远程系统上:

 ssh -X -R 5555:localhost:22 [email protected] -N

在远程:

 ssh -X -p 5555 [email protected]

然后在家里:

 //configure sshd to listen on 5555
 ssh [email protected]
 //here run some app

应该有效吗?

答案1

我画了一些草图

键入 ssh 隧道命令的机器称为»你的主人«

从本地开始的 ssh 隧道


从远程开始的 ssh 隧道

介绍

  1. 当地的:-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,并将所有连接尝试转发到当地的 sourcePortonPort到名为 的计算机上的端口forwardToHost,可以从该connectToHost计算机访问该端口。

  2. 偏僻的:-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,并将所有连接尝试转发到偏僻的 sourcePortonPort到名为 的计算机上的端口forwardToHost,可以从本地计算机访问该计算机。

你的例子

好吧,如果您只想使 X 转发工作,即在家里的计算机上运行一些 X 应用程序并将它们显示在远程系统上(我们称之为工作计算机,因为它可能在您的工作场所),那么您可能根本不需要 ssh 隧道。

启动 X 个应用程序没有隧道

您可以简单地从工作计算机到家庭计算机吗?如果是这样,当你在坐在工作电脑上并想要启动一个 X 应用程序在您的家用计算机上运行显示在您的工作计算机上,您必须(在工作计算机上)输入:

ssh -X homeuser@homecomputer 火狐

这将在您的家庭计算机上启动 Firefox 并将其显示在您键入此命令的计算机上,例如您的工作计算机。

隐藏的电脑需要隧道

这是图片编号 3我的草图。很多时候,家庭计算机无法直接从互联网访问,因为它位于防火墙后面或隐藏在网络地址转换(来自路由器)。然后你可以使用隧道。

在你的蓝色的家庭计算机 ( yourhost) 您输入:

ssh -R 5555:localhost:22 remoteuser@remotehost

图像中5555绿色端口和粉色端口在哪里。22

如果您现在正在工作,remotehost并连接到绿色端口5555,您的连接将通过隧道/转发到您家用计算机的粉红色端口localhost(即您的计算机)。蓝色的家用电脑本身)。现在您必须在工作计算机上输入:

ssh -X -p 5555 homeuser@localhost firefox

这将在您的家庭计算机 ( yourhost) 上启动 Firefox 并将其显示在您键入此命令的计算机上,例如您的工作计算机 ( remotehost)。

答案2

您需要指定要转发的远程显示。在远程:

DISPLAY=:0 ssh -X -p 5555 user@localhost # not sure why you used 192.168.1.2

转发:0显示。

然后在该 shell 中(现在在您的家用机器上运行)运行:

echo "$DISPLAY"

找出转发的显示内容。这将类似于,这意味着您需要在端口 6010 上进行 TCP 连接以连接到远程计算机上的localhost:10显示器(意味着连接到某些 Unix 域套接字,例如) 。:0:0/tmp/.X11-unix

然后,要使计算机上的应用程序显示在远程服务器的显示屏上,只需告诉他们使用localhost:10

DISPLAY=localhost:10 xlogo

例如。

请注意,这是隧道之上的隧道。

相关内容