Puedo acceder al servidor web de mi computadora portátil usando el emulador de Android, estoy usando 10.0.2.2:portno
funciona bien.
Pero cuando conecto mi teléfono Android real, el navegador del teléfono no puede conectarse al mismo servidor web en mi computadora portátil. El teléfono está conectado a la computadora portátil mediante un cable USB. Si ejecuto el comando adb devices, puedo ver mi teléfono.
¿Qué me estoy perdiendo?
Respuestas:
USB no proporciona red al dispositivo móvil.
Si tanto su computadora de escritorio como su teléfono están conectados al mismo WiFi (o cualquier otra red local), use la dirección IP de su computadora de escritorio asignada por el enrutador (no
localhost
y no127.0.0.1
).Para averiguar la dirección IP de su escritorio:
ipconfig
(Windows) oifconfig
(Unix)ifconfig | grep "inet " | grep -v 127.0.0.1
producirá solo las cosas importanteslocalhost
y127.0.0.1
)Si su teléfono está conectado a la red móvil , las cosas serán más difíciles.
O ve al hardcore:
<your desktop IP>:<server port number>
De lo contrario, use algo como xip.io o ngrok .
NOTA : El
ifconfig
comando ha quedado en desuso y, por lo tanto, falta por defecto en Debian Linux, comenzando desde el estiramiento de Debian. La alternativa nueva y recomendada para examinar una configuración de red en Debian Linux es el comando ip. Por ejemplo, para usar el comando ip para mostrar una configuración de red, ejecute lo siguiente:El comando ip anterior se puede abreviar a:
Si aún prefiere usarlo
ifconfig
como parte de su rutina diaria de administración del sistema, puede instalarlo fácilmente como parte delnet-tools
paquete.La referencia está aquí.
fuente
En realidad es bastante simple.
localhost
(Estoy usando el servidor WAMP para Windows)Una vez que hayas hecho eso, verás algo como lo siguiente:
192.168.43.76
)Nota: configure su red como " Red doméstica ". Configurar la red como Red doméstica significa que está permitiendo que su PC comparta cosas con otros dispositivos en la misma red.
Si está utilizando Windows 10, esto se puede hacer con lo siguiente:
Si tiene un problema, es más probable que lo haga con el Firewall de Windows.
fuente
Usuarios de Mac OS X
Logré esto habilitando la administración remota :
System preferences/sharing
Verá un mensaje similar a este:
some.url.com
En su dispositivo Android, ahora debería poder ir a
some.url.com
, que delegalocalhost
en su Mac. También puede usarifconfig
para obtener la dirección IP de su Mac.Solución portátil con
ngrok
(cualquier sistema operativo con Node.js)Si no le importa exponer su proyecto con un dominio temporal, puede usarlo
ngrok
. Digamos que tengo una aplicación que se ejecutalocalhost:9460
, simplemente puedo escribirEsto me dará:
Ahora puedo alcanzar
https://f7c23d14.ngrok.io
como una forma de ver de forma remotalocalhost
. Esto es genial para compartir el trabajo de diseño o el progreso con los clientes.Solución alternativa con
nginx
pase de proxySi está ejecutando algo como esto
nginx proxy_pass
, requerirá un poco más de ajustes: este es un enfoque hacky, pero funciona para mí y estoy abierto a sugerencias para mejorarlo:81
en lugar de80
http://youripaddress:81
Recargar y visitar
http://youripaddress:81
fuente
192.168.0.101
pero el nombre de host no funcionó.Con la solución simple (solo acceso
laptop_ip_addr:port
desde el dispositivo móvil, cuando el móvil y la computadora portátil están en el mismo WiFi), recibo un error ERR_CONNECTION_REFUSED . Es decir, mi MacBook parece rechazar el intento de conexión desde mi móvil.ADB Reverse Socket (solo Android)
Esta solución funciona para mí (probado con una MacBook):
adb reverse tcp:4000 tcp:4000
4000
http://localhost:4000/
y realmente se conectará a la computadora portátil, no al dispositivo móvilVea las instrucciones aquí .
La desventaja es que esto funciona solo con un solo dispositivo móvil a la vez . Si desea acceder con otro dispositivo móvil, primero debe desconectar el primero (deshabilitar la depuración USB ), conectar el nuevo (habilitar la depuración USB ) y ejecutar de
adb reverse tcp:4000 tcp:4000
nuevo.ngrok (funciona con todos los dispositivos)
Otra solución que siempre debería funcionar es ngrok (como se menciona en otras respuestas). Funciona a través de Internet y no de la red local.
Es extremadamente fácil de usar:
Esto genera, entre otra información, una línea como
Ahora, puede navegar
http://4cc5ac02.ngrok.io
en cualquier dispositivo que esté conectado a Internet, y esta URL redirige alocalhost:4000
su computadora portátil.Tenga en cuenta que el tiempo que el comando ngrok está en marcha (hasta llegar a Ctrl-C ), su proyecto está públicamente servido. Todos los que tienen la URL pueden verla.
fuente
Encontré una solución rápida a este problema. Prueba este enlace . Debería ayudarte a solucionar el problema.
Solo cambié una cosa, donde el tutorial dice que cambia '127.0.0.1' a 'Todos', cámbielo a la dirección IP en la que se ejecuta su servidor.
Después de eso, deberías poder conectarte a tu host local.
A continuación se muestra una copia (corregida) de la información de la página vinculada:
Paso 1
Instale el servidor Wamp (o cualquier otro que prefiera).
Este es uno de los mejores servidores que conozco para configurar un servidor local. Si ha instalado Apache o cualquier otro servidor, ignore este paso.
Descargue e instale el servidor Wamp desde aquí.
Paso 2
Agregue una nueva regla para el puerto 80 en Firewall de Windows.
Abra el Panel de control y seleccione Firewall de Windows.
Seleccione Configuración avanzada en el panel izquierdo de la página de configuración del Firewall de Windows.
Seleccione Reglas de entrada en el panel izquierdo, luego seleccione Nueva regla.
Seleccione Puerto y haga clic en Siguiente.
Seleccione el botón de opción "Puertos locales específicos" e ingrese 80 como el valor del puerto.
Mantenga Permitir la conexión sin cambios y avance al siguiente paso.
Mantenga las opciones de Perfil sin cambios y haga clic en Siguiente.
Dale un buen nombre a tu nueva regla y haz clic en Finalizar.
Esto permitirá el acceso al puerto 80 en la red IP local.
Paso 3
Edite el archivo httpd.conf del servidor Wamp para corregir el error 403.
Necesitamos editar este archivo. De lo contrario, obtendremos el error prohibido 403 cuando accedamos al host local a través de una IP de red local.
Haga clic en el icono de la bandeja del servidor Wamp.
Abra el submenú del servidor Apache.
Seleccione httpd.conf.
Encuentre esta sección de configuración en el archivo httpd.conf:
Busque y reemplace '127.0.0.1' con 'Todos', guarde el archivo y reinicie su servidor Wamp.
Paso 4
Encuentra tu red IP local.
Abra el símbolo del sistema.
Escriba e ingrese el
ipconfig
comando.En mi caso, la dirección de mi red de área local es 10.0.0.2.
Esta es la IP que necesita para acceder a su host local en su teléfono Android a través de wifi. Para probar si está funcionando, escriba esta dirección IP en su navegador de escritorio donde está instalado su servidor localhost. El navegador debe mostrar su página localhost con éxito. Esto asegurará que esta IP de la red local ahora sea exitosamente accesible en su teléfono Android.
Espero que este tutorial te ayude a acceder a tu localhost a través de wifi.
fuente
# onlineoffline tag - don't remove Order Allow,Deny Allow from all
En una PC con Windows Es posible que no necesite hacer nada más que averiguar su dirección IPv4 utilizando el comando "ipconfig".
Otros detalles del entorno: Windows 7, Google Nexus 4 (4.2.2), servidor Tomcat, aplicación Grails.
También debe asegurarse de tener permiso para acceder a Internet en el archivo AndroidManifest:
fuente
java.io.FileNotFoundException: http://192.168.8.65:8000/app/web/users/
Sin embargo, hay una solución mucho mejor. Puede acceder a su máquina host con la dirección IP "10.0.2.2". Esto ha sido diseñado de esta manera por el equipo de Android. Por lo tanto, su servidor web puede ejecutarse perfectamente en localhost y desde su aplicación de Android puede acceder a través de "http://10.0.2.2:8080".
fuente
Como esta es una vieja pregunta, hay una nueva forma de hacerlo que es realmente muy simple. Descargue la extensión ADB Chrome y luego siga estas instrucciones:
https://developers.google.com/chrome-developer-tools/docs/remote-debugging
fuente
"El reenvío de puertos en Chrome para Android facilita la prueba de su sitio de desarrollo en dispositivos móviles. Funciona creando un puerto TCP de escucha en su dispositivo móvil que se asigna a un puerto TCP particular en su máquina de desarrollo. El tráfico entre estos puertos viaja a través de USB, por lo que la conexión no depende de la configuración de su red ".
Más detalles aquí: https://developer.chrome.com/devtools/docs/remote-debugging#port-forwarding
fuente
Esta solución es utilizable cuando su dispositivo móvil y computadora no están en la misma red:
Debe utilizar el reenvío de puertos en este caso. En la ventana de inspección de Google Chrome (Chrome: // inspeccionar) Puede ver los dispositivos conectados.
Haga clic en el botón de descarga de puertos y configure un puerto aleatorio, digamos 3000, para el puerto que usa su computadora portátil, digamos 8080.
ahora use localhost: 3000 del dispositivo para acceder al localhost: 8080 (o_whatever_ip: portno) en la computadora portátil. Puede verificarlo en el navegador móvil. Pruebe localhost: 3000 en el navegador móvil. Asegúrese de marcar la casilla de verificación "Habilitar el reenvío de puertos" en la ventana "Configuración de reenvío de puertos"
fuente
Ejecute CMD como administrador
y en la pantalla CMD escriba ipconfig y la pantalla aparecerá con texto
como esta foto
y puede acceder a su localhost usando esta ip, debe estar conectado a la misma red que su PC
fuente
Es posible que su servidor web escuche en su interfaz de bucle invertido y no en su interfaz de red. Los principales signos de esto son:
127.0.0.1
y funcionalocalhost
(desde localhost o emulador de Android)192.168.xxx.xxx
no funcionan, ya sea desde localhost, LAN o WANHablo más sobre diagnosticar esto y arreglar esto en una respuesta aquí .
fuente
Intenta ir a este archivo:
C:\wamp\bin\apache\Apache2.2.11\conf\httpd.conf
Y cambie 10.0.2.2 a su dirección IP.
fuente
finalmente hecho en Ubuntu, estoy ejecutando el servidor nodejs en localhost: 8080
1) abra el tipo de terminal ifconfig obtendrá ip algo como esto: inet addr: 192.168.43.17
2) ahora simplemente ponga la dirección de url de esta manera: "192.168.43.17:8080" (el puerto 8080 proviene del número de puerto localhost), por ejemplo: "192.168.43.17:8080/fetch"
fuente
Use esto en su ubuntu / Macbook para obtener la dirección IP de su sistema. Su dispositivo móvil y sistema deben estar en la misma red
ip addr | grep inet
Esto le dará una dirección IP que se parece192.168.168.46
. Use esto en su teléfono inteligente.Espero que esto ayude.
fuente
Usé este proceso:
Tenga en cuenta que este proceso requiere que cambie la configuración de WiFi en el dispositivo Android al comienzo y al final de cada sesión. Esto me pareció menos doloroso que rootear mi dispositivo Android.
fuente
La forma más fácil de predeterminar localhost es usar http: // localhost: port . Esto también funciona en una computadora portátil y Android.
Si no funciona, en Android configure la IP predeterminada de su teléfono en 127.0.0.1:port :)
Abra la terminal y escriba: -
fuente
Estaba teniendo este problema usando varios servidores localeshost diferentes. Finalmente, puse en marcha mi aplicación en el teléfono en segundos con solo usar el servidor Python simple. Solo toma unos segundos, por lo que vale la pena intentarlo antes de buscar soluciones más complicadas. Primero, asegúrese de tener Python instalado.
cmd+r
y escribapython
para Windows o$ python --version
en la terminal de Mac.Próximo:
Luego, solo encuentre la dirección de su máquina host en la red, utilicé
System Preferences/Sharing
en Mac para encontrarla. Toque eso en su dispositivo Android y debería cargar suindex.html
y debería ser bueno.Si no es así, el problema es otra cosa y es posible que desee considerar algunas de las otras soluciones sugeridas. ¡Buena suerte!
* EDITAR *
Otra solución rápida para probar si está usando Chrome es el servidor web para la extensión de Chrome. Encontré una forma rápida y súper fácil de obtener acceso a localhost en mi teléfono. Solo asegúrese de verificar
Accessible to local network
debajo deOptions
y debería funcionar en su celular sin ningún problema.fuente
ngrok le permite poner su localhost en un servidor temporal y es muy sencillo de configurar. He proporcionado algunos pasos aquí que se pueden encontrar en el enlace:
ngrok http [port number]
Verá un pequeño tablero en su terminal con una dirección que apunta a su host local. Apunte su aplicación a esa dirección y compile en su dispositivo.
fuente
En primer lugar, conecte su teléfono y computadora a wifi común.
Luego, abra el símbolo del sistema con ejecutar como administrador
Dar comando ipconfig
Que muestra la LAN inalámbrica
Use ip: puerto de su servidor para acceder en el teléfono
fuente
En primer lugar, haga que su máquina (donde se está ejecutando el servidor) sea una dirección IP estática. Ingrese esta dirección IP estática en el código de Android. A continuación, vaya a la interfaz de su enrutador wifi y verifique el panel izquierdo. Verá opciones como el reenvío / reenvío de puertos. Haga clic en él y reenvíe el puerto 80. Ahora edite su
htttpd.conf
archivo y edítelo paraPermitir desde todos
. Reinicia tu servidor. Todo debería funcionar bien ahora.
Además, puede reservar la dirección IP de su máquina para que siempre se le asigne. En el panel izquierdo de la interfaz de su enrutador, busque
DHCP -> Address Reservation
, haga clic en él. Ingrese la dirección MAC de su máquina y la dirección IP que ingresó en el código. Haga clic en guardar. Esto reservará la dirección IP dada para su máquina.fuente
Una solución para conectar mi dispositivo móvil a mi servidor wamp basado en mi computadora portátil:
Primero, wifi no es un enrutador. Entonces, para conectar mi dispositivo móvil a mi servidor wamp basado en localhost en mi computadora portátil, necesito un enrutador. He descargado e instalado un enrutador virtual gratuito: https://virtualrouter.codeplex.com/
Configurarlo es realmente simple:
Luego, puede conectarse a su computadora portátil a través de su dispositivo iniciando un navegador y llenando la dirección IPV4 de su computadora portátil (para encontrarla en Windows, escriba cmd: ipconfig y busque la dirección ipv4)
Debería ver la página de inicio de su servidor wamp.
fuente
Aunque se ha aceptado una respuesta, pero esto funcionó para mí:
ifconfig
dentro de la terminal y búsqueloen0/en1 -> inet
debería ser algo así como19*.16*.1.4
) (en Windows, use `ipconfig)Abra la configuración de su dispositivo móvil y vaya a red-> mantenga presionada su red wifi-> modifique la red -> desplácese hacia abajo para ver las opciones avanzadas -> elija el proxy proxy y en el nombre del host proxy escriba su dirección, es decir,
19*.16*.1.4
ingrese su puerto en el puerto interno. y guárdalo.buscar
what is my ip
en google chrome y obtener su ip, digamos que es1**.1**.15*.2**
1**.1**.15*.2**:port/
desde su dispositivo móvil.Es tan simple como esto.
fuente
Esto es lo que funcionó para mí, agregué otra línea después de la ip 127.0.0.1 para especificar la dirección IP de la red local exacta (no la dirección IP pública) del dispositivo que quería usar. En mi caso mi Samsung Galaxy S3
Según lo sugerido por Bangptit, edite el archivo httpd.conf (x siendo los números de versión): C: \ wamp \ bin \ apache \ Apache2.xx \ conf \ httpd.conf
Busque la etiqueta en línea sin conexión y agregue la dirección IP de su teléfono (encontré la dirección IP de mi teléfono en las páginas de configuración de mis enrutadores):
etiqueta en línea sin conexión: no eliminar
mis teléfonos ip en la línea de abajo
Se podría extender esto para incluir un subdominio completo también, por ejemplo, 192.168.1.0/24, etc.
fuente
La forma MÁS FÁCIL (esto funcionó a la perfección para mí) es alojar localmente su sitio en
0.0.0.0:<port_no>
y acceder a él utilizando dispositivos móviles, usar<local_ipv4_address>:<port_no>/<path>
en el navegador.ipconfig
cmdfuente
Ngrok es la mejor solución. Si está desarrollando PHP, le recomiendo instalar Laravel Valet , tiene versiones de MacOS y Linux, entonces puede usar el
valet share
comando. Si está desarrollando una tecnología frontend y necesita compartir un puerto como 3000, use ngrok directamentengrok http 3000
fuente
Agregar una solución para futuros desarrolladores.
Copie la dirección de su dirección IP. haga clic derecho en su red -> red y uso compartido-> haga clic en la conexión que tiene actualmente-> detalles-> luego la dirección junto a la dirección ipv4 es su dirección IP, anote esto en alguna parte
Vaya al panel de control -> sistema y seguridad -> firewall de Windows -> configuración avanzada -> reglas de entrada -> nuevas reglas (siga los pasos para agregar un puerto, por ejemplo, 80, es realmente fácil de seguir)
ponga su dirección IP que anotó en el navegador de su teléfono y el número de puerto para el que creó la regla al lado. por ejemplo, 192.168.0.2:80 y wala.
Posible solución si no se conecta. haga clic derecho en red-> abrir red y compartir-> mire debajo de ver sus conexiones activas, debajo del nombre de su conexión en el tipo de conexión y haga clic en ella si es pública, y asegúrese de cambiarla a una red doméstica.
fuente
Otra cosa a verificar es que algunos enrutadores tienen problemas para unir las solicitudes cuando están habilitados 2.4G y 5G y los dispositivos están en diferentes frecuencias. Intenta deshabilitar una de las frecuencias para que ambos dispositivos estén conectados a la misma interfaz.
fuente
use
connectify
y /xampp
o equivalente, y escriba la dirección IP en la barra de URL móvil para accederfuente
Personalmente no insisto en usar localhost cuando uso el dispositivo, no hay una solución fácil.
Simplemente comience la actividad donde se conecta a localhost donde puede usar el emulador. Cualquier información que tenga que obtener del dispositivo se puede generar con facilidad y se puede enviar a la actividad como parámetro.
fuente