18 votos

No se puede acceder a localhost a través de la IP local.

Quiero conectarme a mi servidor web local (servidor NodeJS) que se ejecuta en mi MacBook con mi iPhone.

En mi Mac puedo acceder al servidor a través de http://localhost:3000/. Ahora solo debería ser necesario reemplazar localhost con la dirección IP local de mi Mac como esta http://192.168.0.13:3000/. Sin embargo, en mi iPhone no puedo acceder al servidor de esta manera e incluso cuando intento abrir http://192.168.0.13:3000/ en mi Mac no se establece conexión.

Definitivamente, este es un problema con mi Mac y no con mi programa porque cuando ejecuto el servidor en Windows e intento conectarme con la dirección IP local funciona perfectamente.

También intentar esto en otra red Wi-Fi no ayuda y cambiar el puerto tampoco cambia nada.

Estoy utilizando Mac OSX 10.11.5 y mi firewall está apagado.

¿Cómo puedo resolver este problema?

Tablas de enrutamiento (netstat -r)

(Borrado)

0 votos

Los comentarios no son para discusiones prolongadas; esta conversación ha sido trasladada al chat.

0 votos

Me tentó votar para cerrar como demasiado amplio, pero de todos los comentarios - veamos si una visión general de cómo determinar si el OP piensa que realmente está en el Mac es de hecho la causa.

0 votos

Hola HansMu158, ¿alguna vez descubriste por qué no funcionaba la navegación a la dirección IP de tu servidor? Puede que tenga un problema similar al tuyo y me preguntaba si tienes alguna sugerencia. ¡Gracias! Ver: apple.stackexchange.com/q/284762/53510

2voto

klanomath Puntos 19587

Por lo que puedo decir, el comportamiento es correcto. Un servidor web básico de nodos utiliza dns.js para resolver cualquier nombre de host, el cual a su vez utiliza el método de resolución de DNS del sistema.

Un nombre de host "127.0.0.1" así como "localhost" no pueden ser resueltos por el respondedor mDNS de OS X (ni de forma directa ni inversa).

Así que usa la IP de tu Mac (por ejemplo, 192.168.0.13) o su nombre de host (por ejemplo, tims-macbook-pro) como nombre de host. Para anunciar el servicio en Bonjour tienes que usar dns-sd.

O crear varias IPs de escucha como en esta pregunta y respuesta.

0 votos

Eso puede ser correcto, pero tampoco funciona con un servidor Apache MAMP. Además, la misma configuración funciona en Windows, lo cual es algo que no entiendo del todo.

0 votos

@HansMu158 Por favor, haz una segunda pregunta sobre tu configuración de MAMP y node. Si es posible, incluye algunas partes relevantes de los archivos de configuración (por ejemplo, apache), un archivo *.js algo simplificado que contenga la parte http.createServer(handler).listen y los detalles de la configuración de MAMP.

0 votos

Realmente creo que este problema no es específico de MAMP y mi servidor Node JS. En primer lugar, el servidor Node se puede ejecutar y acceder a través de la IP local en Windows. Además, incluso al hacer ssh en mi MacBook (que está habilitado bajo compartir) solo funciona con localhost, no con la IP local. Entonces ssh Tim@localhost funciona muy bien, mientras que ssh Tim@192.168.0.13 me da el siguiente error: ssh_exchange_identification: Connection closed by remote host

0voto

Oskar Puntos 1242

Puedes resolver este problema de tres formas:

  1. Ejecutar una herramienta de exploración de puertos desde el iPhone para asegurarte de que el puerto esté realmente abierto en la Mac. Las reglas del firewall, NAT incorrecto, problemas de enrutador / switch pueden ser la causa de que otro dispositivo no reciba la ruta correcta hacia tu Mac. Si la PC puede explorar puertos o navegar por el servidor web de la Mac, sabrás que no necesariamente es la Mac.
  2. Problemas de DNS - en lugar de codificar la dirección IP, podrías navegar a http://192.168.0.13.xip.io - eso se asegurará de que el navegador web funcione si el dispositivo iOS está configurado solo en IPv6. Poco probable, pero en algún momento será más común. También podrías usar la dirección IPv6 de la Mac en lugar de la dirección IPv4.
  3. Configuración de proxy en iOS - nuevamente, si tu dispositivo iOS tiene configurada una VPN o un proxy web, no necesariamente llegará al servidor web de la Mac. Los pasos para solucionar eso también son variados.

0 votos

1. La herramienta de escaneo de puertos de iPhone muestra que el puerto está abierto. También, un escaneo de puertos en Mac encuentra el puerto.

0 votos

2. Cambiar a esta URL lamentablemente no funciona y 3. No tengo un proxy configurado en mi dispositivo iOS

0voto

code8x Puntos 101

Intente agregar su dirección IP local en httpd.conf (/etc/apache2/httpd.conf) como se muestra a continuación:

Listen 12.34.56.78:80

Listen: Permite vincular Apache a direcciones IP y/o puertos específicos, en lugar de los predeterminados.

Guarde, cierre y reinicie Apache con sudo apachectl restart.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X