通过 SSH 隧道通过网关使用 VNC

通过 SSH 隧道通过网关使用 VNC

有人能给我一些关于这种情况的提示吗?我在公司有一台台式电脑(在 Ubuntu 上运行)。公司有 vpn 网关,可以帮助我通过 ssh 连接我的台式电脑。现在我想用 VNC 远程控制我家里的台式电脑。我已经安装了 xtightvncserver,它已经在我的台式电脑上运行了。

我如何在我的笔记本电脑和公司网关之间创建 ssh 隧道以使用 vnc-client?如果有人能提供详细信息,我将不胜感激。我想将我的电脑命名为以下名称。

company-pc- 工作时的台式电脑(vnc 服务器)

company-gw-公司的vpn网关(运行openssh服务器)

my-laptop - 我家里的笔记本电脑(vnc 客户端)

答案1

据我理解,您无法从 company-pc 或 company-gw 连接到 my-laptop,但可以从 my-laptop 连接到 company-gw,以及从 company-pc 连接到 company-gw。对吗?我不知道您提到的台式电脑是什么。

如果我的笔记本电脑正在运行 sshd,请尝试以下操作:

当您还在家时,从我的笔记本电脑上:

ssh -R 8022:localhost:22 myusername@company-gw

登录后,从任何地方与 company-gw 上的端口 8022 建立的连接都将转发到 my-laptop 上的端口 22。上班时保持登录状态。

在工作时,通过公司电脑:

ssh -L 5900:localhost:5900 -p 8022 myhomeusername@company-gw

当您执行此操作时,您实际上是通过 ssh 进入 my-laptop,因为 company-gw 上的端口 8022 被转发到 my-laptop 上的端口 22。您现在正在将 company-pc 上的端口 5900 转发到 my-laptop 上的端口 5900(因为此命令中的“localhost”是 my-laptop 所称的 localhost)。

现在 vnc 进入 localhost。这将连接到您自己公司电脑上的端口 5900,该端口通过 company-gw 转发到我的笔记本电脑。

如果任何转发端口正在使用中,只需尝试不同的号码(8023 而不是 8022,5901 而不是第一个 5900),直到找到一个空闲的端口

答案2

这是另一种解决方法,以防服务器没有访问或管理权限来启用/启动 sshd,或者当您的笔记本电脑中没有任何用户/密码对时。

在我的笔记本电脑上,运行以下命令:

ssh -R 8022:localhost:5900 gw-user@company-gw

这样,从 company-gw:8022 到 my-laptop:5900 的每个访问都将被重定向到 my-laptop:5900

在公司电脑上:

ssh -L 5900:localhost:8022 gw-user@company-gw

gw-user 在命令中可以不同;重要的是 8022 端口在两端都是可达的。

相关内容