如何从主机浏览器访问VirtualBox/Vagrant虚拟机上的Web服务器?

21

我在VirtualBox/Vagrant机器上运行Ubuntu,有一个Django Web服务器。

我按照这个指南创建了一个Django项目:https://docs.djangoproject.com/en/dev/intro/tutorial01/

在我的虚拟机中,有一个正在运行的 web 服务器位于 http://127.0.0.1:8000/。这是我第一次运行 Django Web 服务器,它应该是一个hello world 应用程序。

我如何从我的主机浏览器访问此Web应用程序?

我尝试在客户机中运行ifconfig以获取要访问的IP地址,我在inet addr中找到了一个可靠的IP地址。

但是我尝试在我的主机浏览器中输入以下内容,但它没有起作用。 http://inetaddr数字:8000/

我如何从浏览器中访问Web服务器?


2
尝试将开发服务器运行在0.0.0.0:8000python manage.py runserver 0.0.0.0:8000)上。而不是127.0.0.1,因为127.0.0.1只能从同一台机器访问。 - aumo
除了上述的评论,还要检查您的ISP是否允许您进行主机托管。通常他们会阻止80端口。 - Kakar
@kakar:Web服务器只需要从我的计算机访问。它不需要从互联网访问,所以我希望我不需要考虑ISP。 - user1283776
@aumo:我尝试在0.0.0.0:8000上运行服务器,并访问http://inetaddrnumbers:8000/。很遗憾,这没有起作用。 - user1283776
你如何在VagrantFile中配置网络? - aumo
2个回答

44

试试这个。

  1. 打开vagrant文件(应该在指定创建新的vagrant机器的目录中)。
  2. 搜索config.vm.network。如果您之前没有设置该文件,则应被注释。
  3. 将其更改为类似于config.vm.network "private_network", ip: "55.55.55.5"的内容。在此IP地址(55.55.55.5)中可以使用任何IP地址。
  4. 现在退出vagrant机器并通过此命令vagrant reload重新加载vagrant机器。
  5. 再次ssh到您的vagrant机器,并通过此命令python manage.py runserver 0.0.0.0:80重新启动django服务器。端口地址(80)可以改为8000。
  6. 之后,在浏览器中输入以下地址55.55.55.5,希望您可以看到您的Web应用程序。

现在如果您想进一步操作,可以编辑您的主机文件,并添加此行

55.55.55.5 mynewdomain.com

然后在您的浏览器中输入以下地址,

mynewdomain.com

您应该能够看到您的网络应用程序。请注意,在主机文件中未添加www作为域名的一部分,因此只能访问mynewdomain.com。但是您可以将它添加进去。

希望这有所帮助。干杯。


太棒了,成功了!我的客人告诉我它无法访问80端口,所以我使用runserver命令python manage.py runserver 0.0.0.0:80,并从我的主机浏览器上的http://55.55.55.5:8000/访问了该网站。 - user1283776
我的vagrant文件包含以下内容:# -- mode: ruby --

vi: set ft=ruby :

VAGRANTFILE_API_VERSION = "2"Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.vm.provision "shell", path: "pg_config.sh"

config.vm.box = "hashicorp/precise32"

config.vm.box = "ubuntu/trusty32" config.vm.network "forwarded_port", guest: 8000, host: 8000 config.vm.network "forwarded_port", guest: 8080, host: 8080 config.vm.network "forwarded_port", guest: 5000, host: 5000 config.vm.network "private_network", ip: "55.55.55.5" end
- user1283776
在我的情况下,当我在浏览器中输入IP地址时,它显示“未找到:在此服务器上未找到请求的URL /”错误。有什么想法吗? - Imran Khan
1
@ImranKhan 这应该也对你有所帮助。无论如何,请确认以下三点:1)vagrantfile 中所需的设置已更新,2)重新加载了 vagrant 虚拟机,3)最后确认服务器正在运行。 - Kakar
我已经编辑了Vagrantfile,启用了私有网络并分配了IP:10.10.10.10,然后重新加载了Vagrant,通过该IP在SSH和浏览器中工作...但是当我为该IP创建虚拟主机时无法工作。 - Imran Khan

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接