Tengo una configuración de servidor web VM y he instalado e iniciado Apache. La VM tiene una interfaz de red en puente y se puede hacer ping desde el host usando 192.168.0.2.
Sin embargo, si escribo esa misma dirección IP en el navegador en la máquina host, esperaba ver la página apache predeterminada generada en la VM, pero en su lugar, can't connect to 192.168.0.2
accedo al navegador de las máquinas host.
Claramente me he perdido algo. Alguien sabe lo que me he perdido o he hecho mal?
Salida 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
Dibujo aproximado de cómo creo que sería la actividad / conectividad de la red.
virtualbox
oshirowanen
fuente
fuente
:::80
, entonces Apache solo está escuchando conexiones IPv6. ¿Has intentado comprobar tusListen
directivas?-p
indicador paranetstat
verificar que Apache realmente está escuchando en el puerto 80 y no en algún otro servicio. ¿Puedes huircurl localhost
del invitado? ¿Quégrep -C3 -rni Listen /etc/httpd/
muestra?Respuestas:
Problema n. ° 1: tipos de redes de VM
Hay 3 modos de redes:
Detalles sobre cómo configurarlos
¿Cuándo usar cada uno?
Problema 2: ¿bloqueo de firewall?
Dependiendo de la distribución que esté utilizando, el firewall podría estar bloqueando el acceso de su navegador web a su instancia de Apache. Esto tendría sentido dado que puede hacer ping al sistema, pero no acceder a él a través del puerto 80, que es el puerto en el que Apache está escuchando.
deshabilitándolo temporalmente
En CentOS, usa este comando para deshabilitarlo.
comprueba que Apache está escuchando
También puede confirmar que está escuchando en este puerto.
confirmar que el firewall está apagado
Se puede confirmar que el firewall está abierto de par en par.
Si esto resuelve su problema, puede agregar permanentemente una regla que permita el tráfico a través del puerto TCP 80.
Agregar una regla para el puerto TCP 80
NOTA: Esto hará que la regla persista entre reinicios.
el firewall está aceptando el puerto TCP 80
Un sistema que tenga el puerto 80 abierto se vería así:
Problema # 3 - ¿Apache escuchando?
En el problema anterior, vimos que Apache estaba escuchando, pero a veces está mal configurado para que solo escuche en 1 dirección IP, o que esté escuchando en una interfaz de red diferente. El comando
netstat
se puede usar para verificar esto y para revisar los archivos de configuración de Apache.Esto muestra que Apache está escuchando en todas las interfaces (IP 0.0.0.0).
No repetiré la respuesta de @ Lekensteyn que cubre este tema en particular aquí con más detalles.
Referencias
fuente
it worked!
página de Apache./etc/init.d/httpd status
, debería mostrar en ejecución./sbin/service iptables save
.Es probable que su instalación de Apache esté configurada para escuchar solo en localhost. Puede verificar eso ejecutando en su invitado:
Si dice
0.0.0.0:80
, escucha en todas las interfaces. En su caso, esperaría en su127.0.0.1:80
lugar. Para resolver esto, edite su configuración de Apache (en algún lugar/etc/httpd/conf/
) y cambie:a:
También puede usar
nmap
para verificar los servicios disponibles en su máquina. Debería verse así:fuente
En CentOS 7, firewalld ha reemplazado iptables como el firewall predeterminado.
Tuve que usar
para pausar el firewall para probar la conexión del host a CentOS VM.
Ver más aquí: /programming/24756240/how-can-i-use-iptables-on-centos-7
fuente