Mac OS X Lion上的Vagrant Port Forwarding

时间:2013-06-20 10:57:41

标签: port vagrant salt portforwarding

我一直在努力尝试使用Vagrant连接到6.4欧元的centos。 我使用salt作为配置代理,我已经成功安装了apache,php,mysql包。 当我进入框中时,apache运行良好。我在/ var / www中添加了一个index.html文件,当我卷曲localhost:80

时,我得到了内容
Vagrant.configure("2") do |config|
  ## Chose your base box
  config.vm.box = "centos63"
  config.vm.box_url = ""

  ## For masterless, mount your salt file root
  config.vm.synced_folder "salt/roots/", "/srv/"


  ## Use all the defaults:
  config.vm.provision :salt do |salt|
    salt.verbose = true
    salt.run_highstate = true
    salt.minion_config = "salt/minion"
 end
end

Vagrant::Config.run do |config|
 config.vm.forward_port 80, 8080
 config.vm.share_folder "mypath", "/var/www/leo", "."
end

我在本地计算机上运行了sudo lsof -i:8080但没有给我任何结果。我还用iptables -F清除了客户机中的iptable配置。当我卷曲客人机器

 curl -v 'localhost:8080'                            
* About to connect() to localhost port 8080 (#0)
*   Trying ::1...
* Connection refused
*   Trying 127.0.0.1...
* Connection refused
*   Trying fe80::1...
* Connection refused
* couldn't connect to host
* Closing connection #0
curl: (7) couldn't connect to host

我是否需要安装添加的客人?我环顾四周如何安装它,但我不确定它是否必须安装在主机或客户机上。不知道还有什么可以尝试。

2 个答案:

答案 0 :(得分:3)

如果没有像root那样运行流浪汉,那么您在这里尝试做的事情是不可能的。您可以将Vagrant作为root运行,我相信但VirtualBox不同意这一点。您可以继续使用端口号,或者如果您想要或需要使用端口80,则有一种方法。

当我的客户要求我进行Wordpress Multisite设置时,我遇到了这个问题。使用Wordpress MS,您不能在URL中使用端口号b / c某些URL映射将无法正常工作。当我发现它并且不想回到使用像MAMP这样的程序时,我感到很惊讶。

无论如何,这里有两种实现这一目标的方法(两者都不是很难)。我是Mac用户,所以这些是特定于Mac的答案,我会看看是否有Windows版本并在我测试时更新我的​​答案以确保(见下文,有一种方法)。

方式#1(Mac IP防火墙实用程序):

在你的流浪文件中

config.vm.forward_port 80, 8080
config.vm.forward_port 443, 8443

这很正常。

现在打开终端,你可以使用ipfw实用程序

sudo ipfw add 100 fwd 127.0.0.1,8080 tcp from any to me 80
sudo ipfw add 101 fwd 127.0.0.1,8443 tcp from any to me 443

现在cmd不是永久性的,因此如果重新启动计算机,则必须重新运行cmd。你可以把它永久化,我在下面加一个链接来解释剩下的方式#1。

Web Development on Port 80 and 443 in Vagrant

方式#2(Mac POW和Anvil):

如果你还没有Pow,那就去吧!这是一个非常酷的应用程序。 安装Pow和Anvil,你可以在那里找到Anvil,你可以在那里找到Pow

您可以阅读有关如何设置这些文档的文档但不注意“静态”和“机架”网站部分,您需要this部分。

您将通过Pow使用Port Proxying从mycoolsite.dev获取传入流量并将其转发到mycoolsite.dev:8080等虚拟机,然后虚拟机将转发8080到80并备份您的内容会来的。

安装Anvil / Pow并设置好后,运行以下行:

echo 8080 > ~/.pow/mycoolsite

然后在任务栏中单击Anvil(您可能需要刷新它或关闭并重新打开)并打开网站,就是这样,什么?真? Pow和Anvil摇滚!!

所以我找到了两种方法,我确信你可以用你的Hosts文件做一些事情,而我曾经做过一些。但是,这些可用的其他方法确实可以轻松忘记那些讨厌的主机文件。

对于Windows用户(以及不喜欢前两种方式的Mac用户)的注意事项:您可以使用Vagrant Host Manager,您可以了解如何设置它here on github。它是一个流浪插件,基本上会为你编辑你的hosts文件,你所做的只是你的vagrantfile配置,你很高兴去那之后。我刚刚在Windows 7上测试它并且它在那里工作所以它应该是好的,如果你有任何问题只是查看github上的文档或提出一个问题让Vagrant Host Manager团队进行审查。

答案 1 :(得分:0)

我将访客端口更改为5656并且它有效。当运行lsof -i:8080时,我没有看到任何结果,所以我认为什么都没有使用该端口,也许我错了。