使用 SSH 隧道从主机访问在虚拟机中运行的 Web 应用程序

使用 SSH 隧道从主机访问在虚拟机中运行的 Web 应用程序

也许有更好的方法可以做到这一点,但我正尝试从主机的 Chrome 浏览器访问在 VM(VMware Player 16)中运行的 Web 应用程序。

  • 主机是Windows 10,虚拟机是Ubuntu。
  • 我有一个在 Ubuntu VM 中运行的 Web 应用程序192.168.39.113:80minikubeVM 内部kvm2)。
  • VM 正在使用桥接连接,其 IP 为10.0.0.205
  • 我使用 在 Ubuntu VM 上安装了 SSH sudo apt install openssh-server
  • 我现在可以通过 SSH 从主机进入虚拟机。
  • 我正在尝试使用 创建一个隧道,但是当我转到 时仍然无法从主机的浏览器连接到 Web 应用程序。ssh -L 8080:192.168.39.113:80 [email protected]10.0.0.205:8080
  • 我确实启用了,AllowTcpForwarding yes然后sudo service sshd restart,但当我转到时仍然无法从主机浏览器连接到 Web 应用程序10.0.0.205:8080

关于如何解决这个问题有什么建议?

答案1

您在命令中遗漏了本地 IP 地址,这意味着要么在本地浏览器中使用“127.0.0.1:8080”或“localhost:8080”……或者,在 SSH 命令中添加您想要使用的本地 IP。

zim在我的一台 Virtualbox VM 上进行了测试并启动了它的 Web 浏览器。

如果我想使用任何其他“本地主机” ip 类似127.10.10.1在我的浏览器中,我必须特别指定它:ssh -L 127.10.10.1:5151:192.168.100.100:6968 [email protected]

这可以使用远程 ssh 服务器或本地 ssh 服务器来实现[电子邮件保护]而且我不需要更改 sshd_config,因为 AllowTcpForwarding 默认设置为是。

唯一真正的阻止程序是尝试在浏览器中使用特定的 IP 地址,而不在 ssh -L 命令中指定 IP 地址。

相关内容