Подтвердить что ты не робот

Доступ к частной виртуальной машине с другого компьютера через Wi-Fi

У меня есть частная виртуальная сеть для разработки на моем Mac. Я хотел бы, чтобы мое устройство Android могло общаться с VM на моем Mac. В настоящее время я могу посетить IP, определенный в моем Vagrantfile, 10.10.10.10, на моем Mac и получить доступ к нему просто отлично, но я не могу получить к нему доступ через свой телефон на том же Wi-Fi.

Что мне нужно сделать, чтобы сделать его доступным через мою локальную сеть и видимым для моего телефона через Wi-Fi?

Здесь мой Vagrantfile

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
4b9b3361

Ответ 1

Вы используете IP-адрес частной сети, доступ к которому доступен только хост-компьютеру (он не отображается на других компьютерах, даже если они находятся в той же WLAN).

В вашем случае лучше всего использовать Public Network (мостовое соединение), чтобы ваше Android-устройство могло получить к нему доступ.

добавить config.vm.network "public_network" в ваш файл бродяг в блоке конфигурации.

BTW: режим NAT по умолчанию прекрасен, но вам необходимо установить правильные правила переадресации портов для каждой службы, к которой вы хотите получить доступ (например, SSH, HTTP, HTTPS и т.д.).

Ответ 2

Вы можете легко получить доступ к своему бродягу с любого компьютера в своей сети, просто убедившись, что правила переадресации портов не привязаны к вашему localhost (127.0.0.1).

Если вы используете VirtualBox в качестве своего провайдера, вы можете изменить его на лету, так что вы можете иметь его по умолчанию (что, конечно, более безопасно), а затем вы можете изменить его в VirtualBox, пока ваш VM работает, чтобы открыть порт для других компьютеров в вашей сети (и, возможно, в Интернете, поэтому будьте осторожны!)

Чтобы открыть порт:

  • Запустить виртуальную машину
  • Выберите свою виртуальную машину в левой панели.
  • Нажмите Settings | Network | Advanced | Port Forwarding
  • Найдите порт, который вы хотите открыть в списке портов.
  • Установите Host IP в пустую строку и нажмите "ОК".

Теперь порт доступен для других компьютеров в вашей сети и, возможно, в Интернете, поэтому не делайте этого, если вы не уверены, что с ним открывается доступ!

Конечно, чтобы вернуть его, просто выполните тот же процесс и снова установите Host IP в 127.0.0.1.

Ответ 3

Это может быть лишь небольшая проблема с переадресацией портов/установкой dmz. Так как это на той же машине; вы можете взаимодействовать с ним физически на одном адаптере. Однако, если вы пытаетесь получить доступ за пределами этого, вы должны попробовать переделать порты.

Ответ 4

Небольшое расширение принятого ответа: после добавления опции общественной сети в ваш бродячий файл и перезагрузки, ssh в нее по-старому, а затем запустите ifconfig, чтобы получить IP-адрес, который вы можете использовать для доступа к vm в вашей локальной сети с любого другого устройства.

Документы: https://www.vagrantup.com/docs/networking/public_network.html