Vorarant端口转发不适用于Fedora 20上的虚拟主机

时间:2014-02-05 17:48:49

标签: virtualbox vagrant virtualhost vhosts portforwarding

规格:

OS: Linux fedora 3.12.9-301.fc20.x86_64.
VirtualBox: 4.3.6
Vagrant: 1.4.3

我正在尝试使用以下流浪汉配置将主机端口8080转发到访客端口80.

config.vm.network "private_network", ip: "192.168.56.101"
config.vm.network "forwarded_port", guest: 80, host: 8080

我在服务器名为local.example.com的来宾计算机上设置了vhost。

我已将以下行添加到主机的/ etc / hosts文件

192.168.56.101 local.example.com

vagrant up之后没有任何错误,如果我尝试访问local.example.com,则无法找到该网页。但是,如果我使用local.example.com:8080,我可以很好地访问它。

为什么我无法使用端口80的local.example.com访问来宾计算机上的虚拟主机?

更新1

在客人机器内部,如果我使用curl http://192.168.56.101,我会在终端中打印出正确的内容。如果我使用curl http://localhost,我会得到与192.168.56.101相同的内容。所以我假设192.168.56.101正确指向localhost。

UPDATE2

在我的主机中,如果我运行curl http://192.168.56.101,我会收到以下错误。

curl: (7) Failed connect to 192.168.56.101:80; Connection refused

如果我运行nc -v local.example.comnc -v local.example.com:8080nc -v 192.168.56.101,我会收到以下错误。

更新3

我在搜索解决方案nmap -sS -P0 192.168.56.101/32时看到了这个命令,然后运行它并获得了以下结果。

Nmap scan report for local.example.com (192.168.56.101)
Host is up (0.0000040s latency).
Not shown: 999 closed ports
PORT     STATE SERVICE
8080/tcp open  http-proxy

Nmap done: 1 IP address (1 host up) scanned in 2.40 seconds

这看起来不错吗?

更新4

vagrant reload --debug的输出位于this link

3 个答案:

答案 0 :(得分:2)

您在VirtualBox中拥有DHCP网络的log shows从同一个192.168.56.101地址开始。我的猜测是你有另一个运行和使用相同IP的VirtualBox实例(甚至不一定由Vagrant创建)。从VirtualBox GUI或一些VBoxManage list vms等命令中检出。

无论如何,您不应使用与DHCP服务器使用的范围相同的地址。

答案 1 :(得分:2)

在升级到Fedora 20之后我和Vagrant有完全相同的问题。经过几次浪费时间搞乱iptables和selinux配置我通过简单地切换专用网络IP来修复它:

private_network: 192.168.56.123

我认为这与tmatilai关于与DHCP范围冲突的答案有关,但当我检查时,另一个httpd资源已经在根用户名下使用该端口。

答案 2 :(得分:0)

使用专用网络时,您不需要端口转发。如果guest虚拟机在端口80上托管Web服务器,您应该能够在http://192.168.56.101上访问它而无需端口转发配置。