如何访问由我的虚拟机托管的网站?

如何访问由我的虚拟机托管的网站?

我正在尝试学习 Django。我在装有 Ubuntu 64 的 Virtualbox 上安装了 Bitnami Django 堆栈。

我的问题是,当我运行服务器时,我不知道如何从我的主机(Windows 7,64)访问网页。

我是否需要做一些复杂的配置才能访问托管的网站?

答案1

这取决于虚拟机的网络适配器配置。

更简单的情况是,如果您有桥接适配器,那么虚拟机客户机看起来就像您网络中的另一台机器。如果客户机配置为通过 DHCP 接收 IP 地址(几乎是默认设置),只需将浏览器指向它http://IP-ADDRESS-OF-GUEST/,它就可以工作。

如果您的虚拟机中有 NAT 网络适配器,则意味着它的工作方式就像客户操作系统位于路由器后面一样。仍然可以访问 Web 服务器,但您需要执行“可怕的”端口转发。

阅读 VB 手册(使用 NAT 配置端口转发)。但作为示例,这里有一个创建转发端口的命令行(VM 名称是您的虚拟机的名称):

vboxmanage modifyvm "VM name" --natpf1 "guesthttp,tcp,,80,,80"

现在您应该可以访问您的网络服务器http://localhost/或者http://127.0.0.1/甚至http://IP-ADDRESS-OF-HOST/(但后者需要您的主机防火墙配置为在端口 80 上接收流量)。

还有一种图形化的方式进行端口转发,你可以在 NAT 虚拟适配器的配置部分找到它。设置起来相当简单,但你可以参考这个HTG 文章就此主题而言。

答案2

这看起来更像是 Windows 特有的东西,而不是 Ubuntu。如果托管虚拟机的是 Linux 机器,您可以通过
ssh user@<ip of virtual machine> -L9999:localhost:<port hosted on>
这种方式进行端口转发,您可以访问 http://localhost:9999,然后您就可以访问托管在虚拟机上的站点。抱歉,我不知道如何从 Windows 执行此操作,因为我不确定 Putty 如何处理这个问题 =\

不过我知道,当一台机器有 jenkins 时,只要你在同一个局域网上,就可以访问 .local:8080,所以也许类似的东西会起作用。要知道你的 avahi 名称或只是手动设置它,请编辑 /etc/avahi/avahi-daemon.conf 并将主机名行更改为你想要的任何名称,然后运行sudo service avahi-daemon restart

另外,请确保在设置主机名时在 = 符号两侧不留空格

相关内容