15

我有一个用于在我的 Mac 上开发的专用网络 VM。我希望我的 android 设备能够与我的 mac 上的 VM 通信。目前,我可以在我的 Mac 上访问我的 Vagrantfile 中定义的 IP 10.10.10.10 并正常访问它,但我无法通过手机在同一个 wifi 上访问它。

我需要做什么才能使其在我的本地网络中可用并通过 wifi 对我的手机可见?

这是我的流浪文件

Vagrant.configure("2") do |config|
  config.vm.box = "precise64"
  config.vm.box_url = "http://files.vagrantup.com/precise64.box"

  config.vm.network :private_network, ip: "10.10.10.10"
    config.ssh.forward_agent = true

  config.vm.provider :virtualbox do |v|
    v.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
    v.customize ["modifyvm", :id, "--memory", 1024]
    v.customize ["modifyvm", :id, "--name", "PHPBoxWith54"]
  end

  nfs_setting = RUBY_PLATFORM =~ /darwin/ || RUBY_PLATFORM =~ /linux/
  config.vm.synced_folder "./", "/var/www", id: "vagrant-root" , :nfs => nfs_setting
  config.vm.provision :shell, :inline =>
    "if [[ ! -f /apt-get-run ]]; then sudo apt-get update && sudo touch /apt-get-run; fi"


  config.vm.provision :shell, :inline => 'echo -e "mysql_root_password=root
controluser_password=awesome" > /etc/phpmyadmin.facts;'

  config.vm.provision :puppet do |puppet|
    puppet.manifests_path = "manifests"
    puppet.module_path = "modules"
    puppet.options = ['--verbose']
  end
end
4

4 回答 4

16

您正在使用只能由主机访问的专用网络 IP(即使它们在同一个 WLAN 中,其他机器也看不到)。

在您的情况下,最好的选择是使用公共网络(桥接),以便您的 Android 设备可以访问它。

在配置块中添加config.vm.network "public_network"您的 Vagrant 文件。

顺便说一句:默认的 NAT 模式很好,但您必须为要访问的每个服务(例如 SSH、HTTP、HTTPS 等)设置适当的端口转发规则。

于 2013-09-08T23:16:05.687 回答
1

您可以轻松地从网络上的任何机器访问您的 Vagrant,只需确保端口转发规则未绑定到您的 localhost (127.0.0.1)。

如果您使用 VirtualBox 作为您的提供者,您可以随时更改它,因此您可以默认将其设为私有(这当然更安全),然后您可以在虚拟机运行时在 VirtualBox 中更改它将端口暴露给网络上的其他机器(可能还有互联网,所以要小心!)

要公开端口:

  • 启动虚拟盒子
  • 在左侧栏中选择您的虚拟机
  • 点击Settings | Network | Advanced | Port Forwarding
  • 在端口列表中找到你要暴露的端口
  • 将其设置Host IP为空字符串,然后单击“确定”。

该端口现在可用于您网络上的其他机器,可能还有互联网,所以不要这样做,除非您确定您可以打开该端口!

当然要恢复它,只需执行相同的过程并Host IP再次将其设置为 127.0.0.1。

于 2017-09-20T14:56:17.770 回答
1

对已接受的答案进行一些扩展:在您的 vagrant 文件中添加公共网络选项并重新加载后,以旧方式 ssh 进入其中,然后运行 ​​ifconfig 以获取可用于从任何其他网络访问本地网络中的虚拟机的 IP设备。

文档:https ://www.vagrantup.com/docs/networking/public_network.html

于 2017-06-26T11:36:53.660 回答
0

这可能只是端口转发/设置 dmz 的一个小问题。因为它在同一台机器上;您可以进行交互,因为它实际上位于同一个适配器上。但是,如果您尝试在此之外访问,您应该尝试修改端口。

于 2013-09-08T21:58:53.243 回答