Назад | Перейти на главную страницу

В соединении отказано извне Vagrant box с частной сетью

Я установил CentOS 6 на бродячем компьютере с IP-адресом частной сети. Я могу использовать ssh в коробке, используя IP-адрес, так что это работает. Однако при скручивании я получаю отказ в соединении на порту 80. Внутри есть очень простой nginx, обслуживающий страницу приветствия по умолчанию. Скручивание изнутри коробки работает.

Vagrant.configure("2") do |config|
  config.vm.box = "Centos-6.3-minimal"
  config.vm.box_url = "https://dl.dropbox.com/u/7225008/Vagrant/CentOS-6.3-x86_64-minimal.box"

  config.vm.network :private_network, ip: "192.168.33.44"
  config.vm.hostname = "local.example.com"

  config.vm.provider :virtualbox do |vb|
    vb.customize ["modifyvm", :id, "--memory", "2048"]
  end
end

Вот несколько вещей, которые я пробовал:

Известно, что эти вещи работают:

У меня установлены гостевые дополнения, но их версии разные для гостя и хоста. Это может быть проблемой. Но тогда почему работает SSH, а не 80 порт? Это результат, когда я делаю vagrant reload: https://gist.github.com/magnars/496e553f07ad5c770c54

Обновить

Пока это не работает:

config.vm.network :forwarded_port, guest: 80, host: 8080

Это делает:

ssh -f deploy@local.example.com -L 8080:127.0.0.1:80 -N

Любые идеи?

Хотя есть много вещей, которые могут быть неправильными, в первую очередь нужно проверить брандмауэр внутри гостя: это может быть так же просто, как наличие правила для порта 22, но не для порта 80.

Та же проблема решена отключением брандмауэра на гостевом хосте

sudo service iptables stop
sudo service ip6tables stop 

И вы можете использовать iptables --list Проверять

[vagrant@c6401 ~]$ sudo iptables --list
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination