Embora haja muitas coisas que poderiam estar erradas, a primeira a verificar é o firewall dentro do convidado: pode ser tão simples quanto ter uma regra para a porta 22, mas não a porta 80.
Eu configurei o CentOS 6 em uma caixa vagrant com um IP de rede privada. Eu posso ssh na caixa usando o IP, então isso está funcionando. No entanto, recebo uma conexão recusada na porta 80 ao encurvá-la. Há um nginx muito básico que serve sua página de boas vindas padrão dentro. Curling de dentro da caixa funciona.
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
Aqui estão algumas coisas que tentei:
localhost:8080
apenas fica lá. python -m SimpleHTTPServer
no servidor que é conhecido por ouvir em 0.0.0.0
. Ainda recebendo conexão recusada. Sabe-se que essas coisas funcionam:
Eu tenho Guest Additions instalado, mas suas versões são diferentes em guest e host. Esse pode ser o problema. Mas por que o SSH funciona e não a porta 80? Esta é a saída quando eu faço vagrant reload
: link
Embora isso não funcione:
config.vm.network :forwarded_port, guest: 80, host: 8080
Isso faz:
ssh -f [email protected] -L 8080:127.0.0.1:80 -N
Alguma idéia?
O mesmo problema resolvido por desativar o firewall no host convidado
sudo service iptables stop
sudo service ip6tables stop
E você pode usar iptables --list
para verificar
[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