![通过 SSH 隧道通过网关使用 VNC](https://linux22.com/image/1344727/%E9%80%9A%E8%BF%87%20SSH%20%E9%9A%A7%E9%81%93%E9%80%9A%E8%BF%87%E7%BD%91%E5%85%B3%E4%BD%BF%E7%94%A8%20VNC.png)
有人能给我一些关于这种情况的提示吗?我在公司有一台台式电脑(在 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 端口在两端都是可达的。