J'ai une configuration de serveur Web VM et j'ai installé et démarré Apache. La machine virtuelle a une interface réseau pontée et peut être envoyée depuis l'hôte à l'aide de 192.168.0.2.
Cependant, si je tape cette même adresse IP dans le navigateur de la machine hôte, je m'attendais à voir la page apache par défaut générée sur la machine virtuelle, mais à la place, j'arrive can't connect to 192.168.0.2
dans le navigateur des machines hôtes.
J'ai clairement manqué quelque chose. Quelqu'un sait ce que j'ai raté ou fait de mal?
Sortie de 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
Dessin approximatif de ce à quoi je pense que l'activité / la connectivité du réseau devrait ressembler.
virtualbox
oshirowanen
la source
la source
:::80
, alors Apache écoute uniquement les connexions IPv6. Avez-vous essayé de vérifier vosListen
directives?-p
indicateur ànetstat
pour vérifier que vous Apache écoute réellement sur le port 80, et non sur un autre service. Pouvez-vous fuircurl localhost
l'invité? Quegrep -C3 -rni Listen /etc/httpd/
montre-t-on?Réponses:
Problème n ° 1 - Types de réseaux VM
Il existe 3 modes de mise en réseau:
Détails sur leur configuration
Quand utiliser chacun?
Problème n ° 2 - blocage du pare-feu?
Selon la distribution que vous utilisez, le pare-feu peut empêcher votre navigateur Web d'accéder à votre instance Apache. Cela aurait du sens étant donné que vous pouvez envoyer une requête ping au système, mais pas y accéder via le port 80, qui est le port sur lequel Apache écoute.
le désactiver temporairement
Sur CentOS, vous utilisez cette commande pour la désactiver.
vérifier que l'écoute d'Apache
Vous pouvez également confirmer qu'il écoute sur ce port.
confirmer que le pare-feu est désactivé
Le pare-feu peut être confirmé qu'il est grand ouvert.
Si cela résout votre problème, vous pouvez ajouter de manière permanente une règle qui autorise le trafic via le port TCP 80.
ajout d'une règle pour le port TCP 80
REMARQUE: cela rendra la règle persistante entre les redémarrages.
le pare-feu accepte le port TCP 80
Un système qui a le port 80 ouvert ressemblerait à ceci:
Issue # 3 - Apache écoute?
Dans le problème ci-dessus, nous avons vu qu'Apache écoutait, mais parfois il est mal configuré de sorte qu'il n'écoute que sur 1 adresse IP, ou qu'il écoute sur une interface réseau différente. La commande
netstat
peut être utilisée pour revérifier cela ainsi que pour examiner les fichiers de configuration Apache.Cela montre qu'Apache écoute sur toutes les interfaces (IP 0.0.0.0).
Je ne répéterai pas la réponse de @ Lekensteyn qui couvre cette question particulière plus en détail ici.
Les références
la source
it worked!
page apache./etc/init.d/httpd status
, devrait montrer en cours d'exécution./sbin/service iptables save
.Votre installation Apache est probablement configurée pour écouter uniquement sur l'hôte local. Vous pouvez le vérifier en exécutant votre invité:
S'il le dit
0.0.0.0:80
, il écoute sur toutes les interfaces. Dans votre cas, je m'attendrais à la127.0.0.1:80
place. Pour résoudre ce problème, modifiez votre configuration Apache (quelque part/etc/httpd/conf/
) et modifiez:à:
Vous pouvez également utiliser
nmap
pour vérifier les services disponibles sur votre machine. Cela devrait ressembler à:la source
Sur CentOS 7, firewalld a remplacé iptables comme pare-feu par défaut.
Je devais utiliser
pour suspendre le pare-feu pour tester la connexion de l'hôte à la machine virtuelle CentOS.
Voir plus ici: /programming/24756240/how-can-i-use-iptables-on-centos-7
la source