Я установил 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
Вот несколько вещей, которые я пробовал:
localhost:8080
просто там висит.python -m SimpleHTTPServer
на сервере, который, как известно, слушает 0.0.0.0
. В соединении все еще отказано.Известно, что эти вещи работают:
У меня установлены гостевые дополнения, но их версии разные для гостя и хоста. Это может быть проблемой. Но тогда почему работает 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