从虚拟机测试盒子应用程序

Testing box application from virtual machine

Box 要求您对本地主机以外的任何 URL 使用 HTTPS。不幸的是,我在 Windows 机器内的 Linux 虚拟机 运行 上开发,我想从 Linux 中的浏览器访问服务器 运行 Windows。因此,我不能使用本地主机。

有没有一种方法可以测试我的盒子应用程序而无需在我的 Linux 机器上创建证书?

是的。您可以使用 SSH 隧道。

  1. 在 Linux 机器上设置 SSH 服务器(如果可以从 Internet 访问,请确保对其进行保护)

  2. 使用 Windows SSH 客户端(如 plink 或 cygwin 的 SSH 客户端)创建到 Linux 框所需端口(80?)的隧道。例如,如果您使用的是 plink:

C:\>plink.exe -L 1234:127.0.0.1:80 <username>@<Linux machine IP>

使用 cygwin,命令将是相同的:

$ ssh -L 1234:127.0.01:80 <username>@<Linux machine IP>

这将在 Windows 机器的本地端口 1234 (127.0.0.1:1234) 和 Linux 机器的端口 80 (127.0.0.1:80) 之间建立隧道。因此,如果您在 Windows 机器上打开浏览器并将其指向 127.0.0.1:1234,您将真正连接到 Linux 机器的 127.0.0.1:80。

有一些关于 SSH 隧道的不错的教程,但请确保您阅读的是正确类型的隧道。它们有 3 种形式 - 本地 (-L)、远程 (-R) 和动态 (-D)。你需要本地的。

要调试隧道,您可以使用nc。使用 nc -l 127.0.0.1 80 之类的东西让 nc 监听 127.0.0.1:80,然后尝试使用来自 Windows 浏览器的隧道。您应该会在 nc.

中看到 HTTP 请求