我一直在努力设置流浪汉使用 VirtualBox 基础盒,并希望在我的客户机(Ubuntu 12.04)和我的主机(Windows 7)之间转发端口,以访问将在客户机上运行的 apache2 服务器。
我遇到的问题是,当我尝试在80
客户机端口和80
主机端口之间进行转发时(甚至8080
),Vagrant 会抱怨并提醒我转发端口“...已在主机上使用“”。
事实并非如此。
运行netstat -a
显示没有连接或使用端口80
(甚至没有8080
)。经过一些实验,我发现显然我正在使用的 Avast! 免费版本阻止了转发端口。不过,并不是 Avast! 的所有问题都应受到指责,只是他们的 Web Shield 的问题。
在 Avast! Web Shield 关闭的情况下,使用下面的配置文件在启动虚拟机时运行正常,而在打开它的情况下……问题就在这里。
我想尝试找到一种解决方案,让我能够使用 Vagrant,而无需在防病毒软件上妥协设置(如果可能的话),或者至少找到一种没有大量警告的解决方案。目的是使用 Vagrant 作为一种简化开发设置的方法,而不是使其过于复杂。
以下是我的参考Vagrantfile
:
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "precise32"
config.vm.box_url = "http://files.vagrantup.com/precise32.box"
config.vm.network :forwarded_port, guest: 80, host: 80
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "1024"]
end
end
我尝试过私有网络、公共网络等,但我可能配置不正确。
作者注:这个问题可能已经被别人问过并回答过了,如果已经有人回答过了,我深表歉意。到目前为止,我发现的所有问题似乎都不能作为解决方案,我认为部分原因是我不确定要问什么问题才能找到正确的解决方案。如果这个问题有现成的解决方案,请务必提供链接!
答案1
更新后avast! 免费杀毒软件程序版本:2014.9.0.2011
从2014.9.0.2008
问题似乎已经解决。看起来与 Avast 防病毒软件的早期 2014 版本存在冲突。从他们的更新历史:
- 完全重写了 WebShield,现在它不再充当“透明代理”,这将导致稳定性和性能的整体改善。它还允许查看和检测更多威胁
- 防火墙组件(在 IS 和 Premier 中)已与其他应用程序(如 Java 和各种 VPN 服务)更加兼容
另外,虽然它不能直接解决端口转发问题,但公共和私有网络都可以工作,但都有各自的注意事项:
- 公共网络在网络上获取自己的 IP,要访问它们,似乎需要
ifconfig
在客户机中运行以确定分配的 IP。这给使用虚拟机的个人带来了更大的负担,因为他们每次启动虚拟机时都必须采取额外的步骤来确定其服务器的 IP。 - 私有网络允许分配静态 IP 地址供主机和客户机之间私下使用。这可能是最好的解决方案,除了端口转发,但您需要选择要使用的 IP。