Virtualbox Vagrant port forwarding无法与Fedora 20上的虚拟主机一起工作

Virtualbox Vagrant port forwarding无法与Fedora 20上的虚拟主机一起工作,virtualbox,vagrant,virtualhost,vhosts,portforwarding,Virtualbox,Vagrant,Virtualhost,Vhosts,Portforwarding,规格: 我正在尝试使用以下不规则配置将主机的端口8080转发到来宾的端口80 OS: Linux fedora 3.12.9-301.fc20.x86_64. VirtualBox: 4.3.6 Vagrant: 1.4.3 我已经使用servernamelocal.example.com在来宾计算机上设置了vhost 我在主机的/etc/hosts文件中添加了以下行 config.vm.network "private_network", ip: "192.168.56.101" confi

规格:

我正在尝试使用以下不规则配置将主机的端口8080转发到来宾的端口80

OS: Linux fedora 3.12.9-301.fc20.x86_64.
VirtualBox: 4.3.6
Vagrant: 1.4.3
我已经使用servername
local.example.com
在来宾计算机上设置了vhost

我在主机的/etc/hosts文件中添加了以下行

config.vm.network "private_network", ip: "192.168.56.101"
config.vm.network "forwarded_port", guest: 80, host: 8080
vagrant up
没有任何错误后,如果我尝试访问
local.example.com
,则无法找到该网页。但是,如果我使用
local.example.com:8080
,我可以很好地访问它

为什么我不能使用端口为80的
local.example.com
访问来宾计算机上的vhost

更新1

在来宾机器内部,如果我使用
curlhttp://192.168.56.101
,我可以在终端上打印出正确的内容。如果我使用
curlhttp://localhost
,我得到的内容与192.168.56.101相同。所以我假设192.168.56.101正确地指向本地主机

更新2

在我的主机中,如果我运行
curlhttp://192.168.56.101
,我发现以下错误

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

192.168.56.101 local.example.com
更新3

我在搜索solution
nmap-sS-p0192.168.56.101/32
时看到了这个命令,我运行它并得到了以下结果

curl: (7) Failed connect to 192.168.56.101:80; Connection refused
这个看起来对吗

更新4

vagrant reload--debug
的输出在

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


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

使用专用网络时,您不应该需要端口转发。如果来宾在端口80上托管web服务器,您应该能够在
http://192.168.56.101
没有端口转发配置。

升级到Fedora 20后,我遇到了与Vagrant完全相同的问题。在浪费了几个小时摆弄iptables和selinux配置之后,我通过简单地切换专用网络IP解决了这个问题:

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

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

@tmatilai我刚刚更新了原始帖子,并回答了您的问题。主机或来宾上是否有防火墙可以阻止连接?主机没有任何其他网络接口连接到与192.168.56.0/24冲突的网络?@tmatilai更新3。这是我最初的想法。因此,我使用
systemctl stop firewalld.service
chkconfig firewalld off
禁用了防火墙,并使用
systemctl status firewalld.service
确保防火墙被禁用。如何检查主机网络是否与192.168.56.0/24发生冲突?@tmatilai刚刚用vagrant reload--debug的输出更新了帖子。我尝试不使用端口转发,但没有按预期工作。@t我想我发现了一个问题。如果我将私有ip地址更改为192.168.56.102,它就会工作。因此,我认为存在ip地址冲突。我如何检查并确保这是问题所在?该主题具有误导性。端口转发确实有效,但直接访问并不像所有更新中所解释的那样有效。当然,你的说法仍然正确啊,是的。不过有点奇怪你在这个问题上是对的。还有一个vm实例占用192.168.56.101。我找不到这个,因为当我打开virtualbox的GUI版本时,它没有出现。我删除了虚拟盒/文件夹中的所有虚拟机,重新启动了计算机,并重新启动了机器,现在它可以正常工作了。非常感谢您一直关注这个问题。另外,不使用192.168.56.101作为私有ip地址对我来说可能不是一个选择…我们团队中都使用同一个盒子,我是唯一一个使用Fedora的人。其他人使用Ubuntu。我不知道为什么Ubuntu没有这个问题。我有一个奇怪的问题。当我重新加载流浪者时,它工作正常。然而,过了一段时间,5分钟左右,同样的事情发生了:只能通过8080端口访问来宾机器。是否会因为我将DHCP范围的下限更改为192.168.56.102而发生这种情况?并将私有ip保持在192.168.56.101?这种行为是非常随机的,所以我无法判断哪一部分是错的。有时,即使在流浪者重新加载后,它也不起作用。我更改了DHCP范围的下限,因为我的OP中的此问题在重新启动后再次发生。