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 todo lo que debería hacer es reemplazar localhost con la dirección IP local de mi Mac como 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 alguna.

Este es definitivamente 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 o cambiar el puerto tampoco cambia nada.

Estoy usando Mac OSX 10.11.5 y mi firewall está desactivado.

¿Cómo puedo resolver este problema?

Tablas de Enrutamiento (netstat -r)

(Eliminado)

0 votos

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

0 votos

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

0 votos

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

2voto

klanomath Puntos 19587

Por lo que puedo ver, el comportamiento es correcto. Un servidor web básico de nodos utiliza dns.js para resolver cualquier nombre de host, que 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 en el sentido directo ni en el inverso).

Así que usa la dirección 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 página de preguntas y respuestas.

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 termino de entender.

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 de alguna manera reducido 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 en compartir), solo funciona con el 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 escaneo de puertos desde el iPhone para asegurarte de que el puerto esté realmente abierto en la Mac. Reglas de firewall, NAT incorrecto, problemas de enrutador/switch pueden ser la causa de que otro dispositivo no obtenga la ruta correcta hacia tu Mac. Si la PC puede escanear puertos o navegar por el servidor web de la Mac, sabrás que no es necesariamente la Mac.
  2. Problemas de DNS - en lugar de codificar la dirección IP, podrías navegar hacia http://192.168.0.13.xip.io - eso se asegurará de que el navegador web funcione si el dispositivo iOS está en una configuración solo IPv6. Poco probable, pero en algún momento será más común. También podrías utilizar 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. Además, un escaneo de puerto 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) de la siguiente manera:

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