Eu tenho uma configuração de servidor web VM e instalei e iniciei o Apache. A VM possui uma interface de rede em ponte e pode ser executada ping do host usando 192.168.0.2.
No entanto, se eu digitar o mesmo endereço IP no navegador da máquina host, esperava ver a página apache padrão gerada na VM, mas, em vez disso, entro can't connect to 192.168.0.2
no navegador das máquinas host.
Eu claramente perdi algo. Alguém sabe o que eu perdi ou fiz de errado?
Saída da VM netstat -tnlp
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 950/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1026/master
tcp 0 0 :::22 :::* LISTEN 904/sshd
tcp 0 0 ::1:25 :::* LISTEN 980/master
Desenho aproximado do que eu acho que seria a atividade / conectividade da rede.
virtualbox
oshirowanen
fonte
fonte
:::80
, o Apache está apenas ouvindo conexões IPv6. Você já tentou verificar suasListen
diretrizes?-p
sinalizador paranetstat
verificar se o Apache está realmente ouvindo na porta 80 e não em algum outro serviço. Você pode fugircurl localhost
do convidado? O quegrep -C3 -rni Listen /etc/httpd/
mostra?Respostas:
Problema nº 1 - tipos de rede VM
Existem 3 modos de rede:
Detalhes sobre como configurá-los
Quando usar cada um?
Problema nº 2 - bloqueio de firewall?
Dependendo da distro que você está usando, o firewall pode estar impedindo o seu navegador de acessar a instância do Apache. Isso faria sentido, já que você é capaz de executar ping no sistema, mas não acessá-lo pela porta 80, que é a porta que o Apache está ouvindo.
desativando temporariamente
No CentOS, você usa este comando para desativá-lo.
verifique se o Apache está ouvindo
Você também pode confirmar que está ouvindo nesta porta.
confirme a desativação do firewall
O firewall pode ser confirmado como totalmente aberto.
Se isso resolver seu problema, você poderá adicionar permanentemente uma regra que permita o tráfego via porta TCP 80.
adicionando uma regra para a porta TCP 80
NOTA: Isso fará com que a regra persista entre as reinicializações.
firewall está aceitando a porta TCP 80
Um sistema com a porta 80 aberta seria algo como isto:
Edição # 3 - Apache ouvindo?
Na edição acima, vimos que o Apache estava escutando, mas às vezes é configurado incorretamente, de modo que está escutando apenas um endereço IP ou está escutando em uma interface de rede diferente. O comando
netstat
pode ser usado para verificar isso novamente e também para revisar os arquivos de configuração do Apache.Isso mostra que o Apache está escutando em todas as interfaces (IP 0.0.0.0).
Não vou repetir a resposta de @ Lekensteyn que aborda essa questão em particular em mais detalhes aqui.
Referências
fonte
it worked!
página apache./etc/init.d/httpd status
deve mostrar a execução./sbin/service iptables save
.Sua instalação do Apache provavelmente está configurada para escutar apenas no host local. Você pode verificar isso executando seu convidado:
Se diz
0.0.0.0:80
, ouve em todas as interfaces. No seu caso, eu esperaria127.0.0.1:80
. Para resolver isso, edite sua configuração do Apache (em algum lugar/etc/httpd/conf/
) e altere:para:
Você também pode usar
nmap
para verificar os serviços disponíveis em sua máquina. Deve parecer com:fonte
No CentOS 7, o firewalld substituiu o iptables como o firewall padrão.
Eu tive que usar
pausar o firewall para testar a conexão do host à CentOS VM.
Veja mais aqui: /programming/24756240/how-can-i-use-iptables-on-centos-7
fonte