使用Vagrant,从Vagrant内部访问主机上的应用程序

使用Vagrant,从Vagrant内部访问主机上的应用程序,vagrant,pow,Vagrant,Pow,我在一个流浪者盒子里运行Wordpress应用程序,需要访问在我的主机上运行的Rails应用程序(使用Pow)。我该怎么做 我可以使用myapp.dev在我的主机上访问Rails应用程序,我也希望从Vagrant内部访问它,最好使用相同的域 我能找到的关于这个主题的所有信息都是关于另一种方式的,你想从主机访问运行在Vagrant内部的应用程序。所以听起来你需要在你的来宾计算机上有一个主机条目指向你的主机 您可以执行以下操作: Vagrant.configure("2") do |config|

我在一个流浪者盒子里运行Wordpress应用程序,需要访问在我的主机上运行的Rails应用程序(使用Pow)。我该怎么做

我可以使用myapp.dev在我的主机上访问Rails应用程序,我也希望从Vagrant内部访问它,最好使用相同的域


我能找到的关于这个主题的所有信息都是关于另一种方式的,你想从主机访问运行在Vagrant内部的应用程序。

所以听起来你需要在你的来宾计算机上有一个主机条目指向你的主机

您可以执行以下操作:

Vagrant.configure("2") do |config|
    require 'socket'
    local_ip = UDPSocket.open {|s| s.connect("64.233.187.99", 1); s.addr.last}
    config.vm.provision "shell", inline: "echo \"#{local_ip} myapp.dev\" >> /etc/hosts"
end

这应该使用套接字获取主机IP地址,然后使用shell provisioner将该IP地址附加到主机文件中,从而允许虚拟机使用您希望与主机操作系统通信的域名。

因此,听起来您需要在来宾机上的主机条目指向您的主机机器

您可以执行以下操作:

Vagrant.configure("2") do |config|
    require 'socket'
    local_ip = UDPSocket.open {|s| s.connect("64.233.187.99", 1); s.addr.last}
    config.vm.provision "shell", inline: "echo \"#{local_ip} myapp.dev\" >> /etc/hosts"
end

这应该使用套接字获取主机IP地址,然后使用shell provisioner将该IP地址附加到主机文件中,从而允许虚拟机使用您希望与主机操作系统通信的域名。

工作非常出色!您能解释一下
local\u id
行的作用吗?我猜它会连接到Google,然后查找请求经过的地址,主机的IP是最后一个地址?此外,我是否需要修补
套接字。在打开套接字之前,是否要反向查找
,如下图所示?说实话,我不知道它正在做什么的全部细节。。。但基本上是的,它只是向谷歌发送一个UDP数据包,通过这个连接,它正在计算出所涉及的IP字符串。。。最后一个是本地IP。。。对不起,我也不是很确定反向查找的内容…好的,谢谢!我还添加了反向查找命令,不会有任何影响。:)工作得很漂亮!您能解释一下
local\u id
行的作用吗?我猜它会连接到Google,然后查找请求经过的地址,主机的IP是最后一个地址?此外,我是否需要修补
套接字。在打开套接字之前,是否要反向查找
,如下图所示?说实话,我不知道它正在做什么的全部细节。。。但基本上是的,它只是向谷歌发送一个UDP数据包,通过这个连接,它正在计算出所涉及的IP字符串。。。最后一个是本地IP。。。对不起,我也不是很确定反向查找的内容…好的,谢谢!我还添加了反向查找命令,不会有任何影响。:)