He instalado el servidor Apache en mi computadora con Windows 7. Pude mostrar el index.php predeterminado escribiendo http: // localhost / en la línea de dirección de mi navegador.
Sin embargo, todavía no puedo ver esta página escribiendo la dirección IP de mi computadora (ni localmente (desde la misma computadora) ni globalmente (desde otra computadora conectada a Internet).
Me dijeron que necesitaba abrir el puerto 80. Lo hice (de la manera descrita aquí ) pero no resolvió el problema.
En primer lugar, me gustaría comprobar qué puertos están abiertos y cuáles no. Por ejemplo, no estoy seguro de que mi puerto 80 se haya cerrado antes de intentar abrirlo. Tampoco estoy seguro de que se abra después de que intenté abrirlo.
Traté de ejecutar un servidor web muy simple escrito en Python. ¡Para eso usé el puerto 81 y funcionó! Y no intenté abrir el puerto 81. Por lo tanto, se abrió por defecto. Entonces, si 81 se abre por defecto, ¿por qué 80 no? O lo es?
INFORMACIÓN ADICIONAL:
1. En mi archivo httpd.conf tengo "Listen 80".
2. Este sitio me dice que el puerto 80 en mi computadora está abierto.
3. Recibo diferentes respuestas si intento http: // myip: 80 y http: // myip: 81 . En el último caso, el navegador (Chrome) me escribe que el enlace está roto. En el primer caso me sale: Prohibido No tienes permiso para acceder / en este servidor.
4. IE escribe que "El sitio web se negó a mostrar esta página web".
fuente
Respuestas:
Si solo está revisando sus puertos desde el exterior. Usa esta herramienta:
http://www.yougetsignal.com/tools/open-ports/
Intentará conectarse a su dirección IP, en el puerto específico, y le informará si está abierto o cerrado al mundo exterior.
¿Problemas locales también? Parece que el firewall de Windows 7 te está cortando. Agregue una excepción con este tutorial ...
http://www.sevenforums.com/tutorials/542-windows-firewall-add-remove-exception.html
fuente
localhost
y no desde otras computadoras.En ejecución
netstat -a -n
oss -a -n
desde un símbolo del sistema, se mostrarán todas las conexiones de red abiertas y los puertos de escucha en su máquina.0.0.0.0:80
significaría que está escuchando en el puerto80
de todas las direcciones IP (localhost y sus direcciones IP públicas / privadas),127.0.0.1:80
lo que significa que solo está escuchando en localhost. Puede agregar-b
al comando y le mostrará qué ejecutable está usando ese puerto. Puede obtener la misma información utilizando el Monitor de recursos en Windows 7 en la sección Puertos de escucha de la pestaña Red.fuente
Si desea ver si está abierto desde otro servidor, puede simplemente
telnet serverName 80
ver si se abre la sesión. Si no es así, el servidor no está escuchando o el puerto está bloqueado por un firewall.Si se abre y luego se cierra de inmediato, al menos Windows 2003, entonces el software (como Exchange) podría no estar configurado para escuchar en esa interfaz o IP en particular, pero está escuchando en otros puertos. He visto a IIS comportarse de esta manera porque es estúpido, Apache podría no serlo.
fuente
Tu escribiste:
Aunque esto puede sonar extraño, en realidad no tiene un problema con los puertos abiertos (sino con la configuración de Apache).
Ese mensaje "Prohibido" proviene de su servidor Apache; significa que su servidor web es accesible desde Internet.
Debe configurar Apache para permitir el servicio a todos los hosts; de lo contrario, obtendrán la página "Prohibida". IIRC, Apache está configurado inicialmente para permitir solo solicitudes de la computadora local.
En algún lugar de su configuración de Apache, probablemente haya una sección como esta (el directorio real puede ser diferente):
Si desea permitir que cualquier computadora vea sus páginas, debe cambiar
Deny from all
aAllow from all
. Consulte la documentación del módulo de acceso para obtener más información .fuente
Para ver los puertos abiertos, probablemente debería usar nmap. Tienen una versión de Windows: http://nmap.org/dist/nmap-5.21-setup.exe
No es suficiente si ve su puerto 80 abierto desde localhost; tal vez algo se interponga en el camino si lo intenta desde otro lugar, por eso recomiendo nmap
Desde el cliente que escribe: nmap ip-of-your-server
fuente
Si desea probar esto en su red local, vaya a descargar nmap. Si desea ver el clima, el puerto es accesible al mundo exterior, ejecute un escaneo en https://www.grc.com/x/ne.dll?bh0bkyd2
fuente
Los puertos del servidor pueden estar vinculados a una sola dirección IP o a todas las direcciones IP disponibles. Parece que su instalación de Apache está configurada para vincularse solo a 127.0.0.1, y debe configurarla para que se vincule a *. En su httpd.conf (en el directorio conf de Apache), busque una línea como
Listen localhost:80
y cámbiela aListen 80
.fuente
telnet <host> <port>
es tu amigo. Tiene la virtud de estar instalado en casi todas las computadoras del mundo.Ediciones después de releer la pregunta:
Aquí hay algunos consejos de diagnóstico útiles.
Si puede acceder al sitio a través de localhost, pero no a través de su IP local del sitio (192.168. *) desde otros hosts en su red, probablemente sea un problema de firewall de Windows.
si puede acceder al sitio desde otras máquinas locales del sitio, pero no desde Internet a su IP pública, es un problema de configuración del enrutador / reenvío de puertos.
fuente
Desde un símbolo del sistema, escriba:
... o tu IP: 80. Esto le dirá si el puerto 80 está abierto en su máquina. Ahora, si desea verificar y ver si puede acceder desde fuera de su red, determinará si tiene algún tipo de firewall instalado. Si lo hace, deberá reenviar el puerto 80 a su servidor web.
fuente
Si está en Windows, use SysInternals TCPView . Puede decirle qué programa está utilizando qué puerto.
fuente
En el comando DOS:
fuente