规格:
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.com
,nc -v local.example.com:8080
或nc -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
答案 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
上访问它而无需端口转发配置。