![家庭局域网](https://linux22.com/image/537605/%E5%AE%B6%E5%BA%AD%E5%B1%80%E5%9F%9F%E7%BD%91.png)
我对 SSH 和 Linux 还不熟悉,所以如果这是一个简单的问题,请不要笑。我已经用 Google 查找过了,但并没有找到任何可以完全满足我要求的东西。
设置
家庭局域网
路由器 - 监听端口 443 - 将端口 443 上的所有内容重定向到“sshserver”上的端口 22
Ubuntu 服务器(路由器后面) - 名称 = sshserver - 已安装 openSSH。IP 地址 192.168.2.2 - SSH 监听端口 22 - 系统-偏好设置-远程桌面 - 启用 - 密码 -(取消选中确认与此计算机的每次连接)
我家外面
安装了 Putty 的 Ubuntu 桌面(名称 = 工作站)。显然,我的 IP 地址取决于我所在的位置。
我现在能做什么
我可以使用“Workstation”毫无问题地 ssh 进入我的“sshserver”。一切运行正常。我正在使用 Putty 将我的 Ubuntu“workstation”连接到“sshserver”。
我尝试过
我的理解是,当您在 Ubuntu 中选中“远程桌面”时,VNC 将在端口 5900 上运行。因为我知道会话屏幕页面可以工作(我始终可以使用 SSH 成功登录)我只想编辑 Putty - ssh - Tunnel 部分。
在此屏幕上,我尝试输入:源端口:5900 目标端口:localhost:5092
我这样做的原因是我打算使用应用程序 - Internet“远程桌面查看器”应用程序。在其中我告诉它我想要一个 VNC 类型的连接,并且我想要连接到“localhost:5092”。
这彻底失败了。我想我只是不明白隧道是如何发生的以及如何纠正这个问题。如果有人能用我列出的工具帮助我理解这是如何工作的,我会非常感激!
提前致谢。
答案1
在主 Putty 屏幕上输入所有连接信息。听起来您将使用端口 443 而不是 22 从外部进行连接。然后转到隧道部分,输入 5092 作为源端口。输入 localhost:5900 作为目标。将单选按钮保留为本地和自动。单击添加,使其显示在列表中,然后打开连接
当你打开连接时,从服务器的角度来看,你将可以访问“localhost:5900”。你可以从本地端口 5092 访问它。
要使用 vnc 连接到服务器,请输入主机的 localhost:5092。
答案2
反过来。本地端口是您连接的端口,而目的地是服务器端的连接位置。因此,如果您想将 vncclient 指向“localhost:5902”,并让其在服务器端显示为“localhost:5900”,则需要将本地端口设为“5902”,目的地设为“localhost:5900”
本地端口始终位于 ssh 客户端的本地主机上。目标可以是任何地方,包括 ssh 服务器的本地主机。
答案3
我过去常常运行ssh -L 5900:localhost:5900 me@home
然后启动vncview localhost
。我的家用台式机是运行 GNOME 和 vino 的 Debian。运行起来非常好。