规范:
OS: Linux fedora 3.12.9-301.fc20.x86_64.
VirtualBox: 4.3.6
Vagrant: 1.4.3
我正在尝试使用以下 vagrant 配置将主机的端口 8080 转发到 guest 的端口 80。
config.vm.network "private_network", ip: "192.168.56.101"
config.vm.network "forwarded_port", guest: 80, host: 8080
我已经在 guest 机器上设置了 vhost,服务器名称为
local.example.com
.我已将以下行添加到主机的/etc/hosts 文件中
192.168.56.101 local.example.com
后
vagrant up
没有任何错误,如果我尝试访问 local.example.com
,找不到网页。但是,如果我使用 local.example.com:8080
,我可以正常访问它。为什么我不能使用
local.example.com
访问 guest 计算机上的虚拟主机用80端口?更新 1
在客户机内部,如果我使用
curl http://192.168.56.101
,我在终端中打印出正确的内容。如果我使用 curl http://localhost
,我得到与 192.168.56.101 相同的内容。所以我假设 192.168.56.101 正确指向本地主机。更新2
在我的主机上,如果我运行
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
最佳答案
log shows您在 VirtualBox 中有一个 DHCP 网络,它从相同的 192.168.56.101 地址开始。我的猜测是您有另一个 VirtualBox 实例(甚至不一定由 Vagrant 创建)运行并使用相同的 IP。从 VirtualBox GUI 或使用一些 VBoxManage list vms
查看等命令。
无论如何,您不应使用与 DHCP 服务器使用的范围相同的地址。
关于virtualbox - Vagrant 端口转发不适用于 Fedora 20 上的虚拟主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21584642/