¿Cómo accedo a un servidor web local en mi computadora portátil desde otra computadora? [cerrado]

37

Tengo una aplicación ejecutándose en mi computadora a 127.0.0.1:3000

Me gustaría acceder a esa aplicación desde un iPhone conectado a la misma red. Ya he hecho esto antes, pero no entiendo cómo lo hice. ¿Algunas ideas?

Tony
fuente
2
intente rails server -b 0.0.0.0, luego navegue esto en su iPhone.
zx1986

Respuestas:

37

Primero debe determinar la dirección IP o el nombre de la máquina en la que está ejecutando el servidor web. Supongo que está ejecutando el servidor web en una Mac desde que etiquetó su publicación, macosxaunque las instrucciones son similares para las máquinas Linux. Entonces, en tu mac:

  • Abierto Terminal.app. Está debajo Applications->Utilities.
  • Corre ifconfigen la terminal. Eso le muestra todas las interfaces de red en la máquina. Una de ellas es la red a la que está conectada activamente su máquina. Si tu mac está en una conexión por cable, debería estarlo en0. Tome nota de la dirección después inet; esa debería ser la dirección que utiliza su máquina.
    • Supongamos que descubre que es 192.168.10.1.
  • Verifique que puede conectarse a esa dirección desde su servidor con nc -v 192.168.10.1 3000.
    • Deberías ver un mensaje como Connection to 192.168.10.1 3000 port [tcp/http] succeeded!.
    • Si eso no funciona, vea a continuación.
    • Si funciona, presione ctrl-Cpara salir de la sesión nc.
  • Ahora intente conectarse en su máquina cliente.
    • Si se trata de una aplicación web, debería poder conectarse a través del navegador
    • Por ejemplo, intente http://192.168.10.1:3000

Si no puede conectarse a su aplicación en la dirección real del servidor, eso significa que su aplicación no está escuchando en esa dirección. Deberá investigar cómo cambiar la configuración de su aplicación para modificar ese comportamiento. Como no sé qué aplicación está ejecutando, no puedo ofrecer ninguna buena idea al respecto.

Phil Hollenback
fuente
10x mate ... cuál es la diferencia cuando se habla de un sistema basado en Windows con el servidor Wamp ... ¿hay alguna diferencia?
Sagive SEO
Estoy usando mac sierra. Puedo acceder al servidor desde mi Mac (donde se está ejecutando el servidor) a través de 10.55.18.22:3000 pero no puedo acceder a él desde otra máquina a pesar de que ambos están en la misma red. La opción de compartir web no está disponible en sierra. ¿Cómo podemos hacer que esto funcione?
Santhosh Kumar
saanthosh: mire el reenvío de puertos en su enrutador. Eso es lo que estaba haciendo antes de descubrir la función de uso compartido de Internet de OSX (que aparentemente ha estado disponible desde al menos OSX 10.6). Hice pruebas de host local en una variedad de dispositivos móviles en la misma sala / red que mi máquina de desarrollo OSX, gracias a los cambios estándar / pequeños en la configuración del enrutador (es decir, el reenvío de puertos). Otros artículos y subprocesos SO proporcionan información sobre la configuración del enrutador. En última instancia, ahora estoy en una nueva ubicación y no tengo acceso al enrutador, así que en cambio uso el uso compartido de Internet OSX (High Sierra) para lograr lo mismo.
MarsAndBack
12

Encuentra el nombre de tu Mac usando hostname(en el indicador de Terminal) y úsalo en tu URL. Por ejemplo, http: //Tonys-iMac.local: 3000 /

Si por alguna razón Bonjour no funciona en su entorno, busque la dirección del aeropuerto en un iMac o MacBook con

ipconfig getifaddr en1

o en general con

ipconfig getifaddr $(route -n get default|awk '/interface/ { print $2 }')

James
fuente
Esta respuesta tiene algunas buenas optimizaciones sobre la mía con respecto a encontrar su nombre de host y dirección IP.
Phil Hollenback
2
¿Por qué Bonjour no funcionaría? Me parece que mi nombre de host es gm20152.local. Pero cuando intento gm20152.local: 3000 en la misma máquina, aparece una página válida. Pero cuando intento gm20152.local: 3000 en mi teléfono Android, el navegador de mi teléfono no pudo encontrar el host. Creo que esto se debe a que mi teléfono no tiene forma de mapear gm20152.local al ip addr de mi macbook. Cómo puedo lograr esto ?
gprasant
@gprasant Hacer que Android use Bonjour parece bastante difícil
James
5

Básicamente, desde la configuración del firewall puede permitir que una determinada aplicación (por ejemplo, ruby) acepte conexiones entrantes. Además, para permitir el acceso al mundo exterior (por ejemplo, www), deberá reenviar el tráfico a su puerta de enlace interna: puerto a través de la configuración de su enrutador.

Aquí se explica cómo hacer esto:

  1. Mac-> Preferencias del sistema-> Compartir-> Activar la casilla de verificación "Compartir web"
  2. Mac-> Preferencias del sistema-> Seguridad-> permite que tu aplicación (por ejemplo, ruby) acepte la conexión entrante
  3. Abra un puerto en el enrutador (a través de 192.168.1.1) para reenviar el tráfico de your_web_ip: port a local_gateway: port

    1. Por ejemplo, desde la configuración de mi enrutador de Verizon -> Reenvío de puertos -> crear regla: reenviar a puerta de enlace local (por ejemplo, 192.168.1.4), puerto personalizado, protocolo TCP, fuente = cualquiera, destino = 3280, todos los tipos de conexión, reenviar a puerto = 3000.

Hecho. Ahora desde la computadora remota, abra su navegador a su dirección IP web (busque a través de http://www.whatismyip.com/ ) + número de puerto de destino anterior, por ejemplo, 72.189.194.65:3280, esto se conectará a su 192.168.1.4 local : 3000

Nota: estoy ejecutando en Mac OSX 10.7.5

Chase T.
fuente
2

127.0.0.1 es la dirección local que cada computadora tiene para sí misma. Debe averiguar cuál es la dirección IP real (o el nombre de Host / Bonjour) de la máquina. Vaya a Preferencias del sistema, Red y busque la IP de la máquina, ya sea para el puerto Ethernet si usa un cable o el Aeropuerto si usa WLAN. Luego abra esta dirección junto con la parte: 3000 en Safari en el iPhone.

Sven
fuente
Además, el Panel de preferencias de uso compartido siempre muestra un nombre o una dirección por la cual se puede acceder a su computadora.
James
2

Si la aplicación solo está escuchando en 127.0.0.1:3000, entonces no puede acceder a ella desde otra computadora. Para hacerlo, deberá modificar la configuración para escuchar la IP o 0.0.0.0 (todas las interfaces disponibles). Esa es la opción uno.

La segunda opción es usar un proxy.

La tercera opción es si puede enviar ssh desde el iPhone, también puede usar el reenvío ssh

usuario ssh @ host -L 3000: 127.0.0.1: 3000

Luego, en su iPhone, abra 127.0.0.1:3000

Sameer
fuente
1
AFAIK, no puedes hacer reenvío de puertos ssh en un iPhone. No, si no está en jailbreak de todos modos.
Sven
Escuchar 0.0.0.0! ¿Cómo podría no pensar en eso?
Gustavo Straube el