Je peux accéder à mon serveur Web portable à l'aide de l'émulateur Android. J'utilise 10.0.2.2:portno
fonctionne bien.
Mais lorsque je connecte mon vrai téléphone Android, le navigateur du téléphone ne peut pas se connecter au même serveur Web sur mon ordinateur portable. Le téléphone est connecté à l'ordinateur portable à l'aide d'un câble USB. Si je lance la commande Adb devices, je peux voir mon téléphone.
Qu'est-ce que je rate?
L'USB ne fournit pas de réseau à un appareil mobile.
Si votre ordinateur et votre téléphone sont connectés au même réseau WiFi (ou à tout autre réseau local), utilisez l'adresse IP de votre ordinateur de bureau attribuée par le routeur (pas localhost
et pas 127.0.0.1
).
Pour trouver l'adresse IP de votre bureau:
ipconfig
(Windows) ou ifconfig
(Unix) ifconfig | grep "inet " | grep -v 127.0.0.1
ne donnera que les choses importanteslocalhost
et 127.0.0.1
susmentionnés)Si votre téléphone est connecté au réseau mobile, les choses vont être plus difficiles.
Soit aller hardcore:
<your desktop IP>:<server port number>
C'est très simple.
Activez le point d'accès Wi-Fi de votre téléphone/routeur Android et connectez votre ordinateur portable à votre téléphone.
Démarrez votre serveur chez localhost (j'utilise wamp server)
Maintenant, ouvrez la commande Invite et entrez ipconfig command vous obtiendrez les choses suivantes
Wireless LAN adapter Wireless Network Connection:
Connection-specific DNS Suffix . :
Link-local IPv6 Address . . . . . : fe80::80bc:e378:19ab:e448%11
IPv4 Address. . . . . . . . . . . : **192.168.43.76**
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.43.1
Copiez cette 192.168.43.76 dans votre navigateur mobile.
Remarque: Veuillez définir votre réseau comme "Réseau domestique". Paramétrer le réseau domestique signifie permettre à votre PC de partager des éléments avec d’autres périphériques sur le même réseau . Si vous utilisez Windows 10, accédez à WiFi> Propriétés réseau du réseau actuel> Rendre ce PC détectable.
j'ai eu du succès en permettant la gestion à distance:
- assurer votre
phone and laptop are connected to the same wifi network
- sur mac, allez à
system preferences/sharing
enable remote management
Vous verrez un message semblable à celui-ci
Les autres utilisateurs peuvent gérer votre ordinateur en utilisant l'adresse
some.url.com
Sur votre appareil Android, vous devriez maintenant pouvoir appuyer sur some.url.com
, qui délègue à localhost
sur votre mac. Vous pouvez également utiliser ifconfig
pour obtenir l'ip de votre macbook
Si cela ne vous dérange pas d'exposer votre projet avec un domaine temporaire, vous pouvez utiliser ngrok
. Disons que j'ai une application qui tourne sur localhost:9460
npm install ngrok -g
ngrok http 9460
Cela me donnera:
Session Status online
Update update available (version 2.2.8, Ctrl-U to update)
Version 2.2.3
Region United States (us)
Web Interface http://127.0.0.1:4040
Forwarding http://f7c23d14.ngrok.io -> localhost:9460
Forwarding https://f7c23d14.ngrok.io -> localhost:9460
Connections ttl opn rt1 rt5 p50 p90
0 0 0.00 0.00 0.00 0.00
Je peux maintenant accéder à https://f7c23d14.ngrok.io
comme moyen de visualiser à distance localhost. C’est génial de partager le travail de conception ou les progrès avec les clients
Si vous utilisez quelque chose comme ceci via nginx proxy_pass, il vous faudra un peu plus de peaufinage - c'est une approche simpliste, mais cela fonctionne pour moi et je suis ouvert aux suggestions pour l'améliorer:
81
au lieu de 80
Sudo nginx -s reload
http://youripaddress:81
`` `
server {
listen 80;
listen 81; # <-------- add this to expose the app on unique port
server_name ~^(local|local\.m).example.com$;
...
}
recharger et visiter http://youripaddress:81
Sur un ordinateur Windows, vous n'avez peut-être besoin de rien d'autre que de connaître votre adresse IPv4 à l'aide de la commande "ipconfig".
Autres détails Env: Windows 7, Google Nexus 4 (4.2.2), Serveur Tomcat, Application Grails.
Vous devez également vous assurer que vous avez l'autorisation d'accéder à Internet dans le fichier AndroidManifest:
<uses-permission Android:name="Android.permission.INTERNET"/>
J'ai trouvé une solution rapide à ce problème. Essayez ceci link . Cela devrait vous aider à résoudre le problème.
J'ai seulement changé une chose, lorsque le didacticiel indique que vous remplacez "127.0.0.1" par "Tous", remplacez-le par l'adresse IP sur laquelle votre serveur est exécuté.
Après cela, vous devriez pouvoir vous connecter à votre hôte local.
Ci-dessous se trouve une copie (relue) des informations de la page liée:
Installez le serveur Wamp (ou celui que vous préférez).
C'est l'un des meilleurs serveurs que je connaisse pour configurer un serveur local. Si vous avez installé Apache ou un autre serveur, ignorez cette étape.
Téléchargez et installez Wamp Server à partir d'ici.
Ajoutez une nouvelle règle pour le port 80 dans le pare-feu Windows.
Ouvrez le Panneau de configuration et sélectionnez Pare-feu Windows.
Sélectionnez Paramètres avancés dans le panneau de gauche de la page de paramètres du Pare-feu Windows.
Sélectionnez Règles entrantes dans le panneau de gauche, puis sélectionnez Nouvelle règle.
Sélectionnez Port et cliquez sur Suivant.
Sélectionnez le bouton radio «Ports locaux spécifiques» et entrez 80 comme valeur de port.
Laissez la connexion inchangée et passez à l'étape suivante.
Laissez les options de profil inchangées et cliquez sur Suivant.
Donnez un joli nom à votre nouvelle règle et cliquez sur Terminer.
Cela activera l'accès au port 80 sur l'IP du réseau local.
Editez le fichier httpd.conf du serveur Wamp pour corriger l'erreur 403.
Nous devons éditer ce fichier. Sinon, nous obtiendrons l'erreur 403 interdite lorsque nous accéderons à l'hôte local via un IP de réseau local.
Cliquez sur l'icône de la barre d'état serveur Wamp.
Ouvrez le sous-menu du serveur Apache.
Sélectionnez httpd.conf.
Recherchez cette section de la configuration dans le fichier httpd.conf:
Directory “c:/wamp/www/”
#
# Possible values for the Options directive are “None”, “All”,
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that “MultiViews” must be named *explicitly* — “Options All”
# doesn’t give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.Apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be “All”, “None”, or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride all
#
# Controls who can get stuff from this server.
#
# onlineoffline tag – don’t remove
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Recherchez et remplacez ‘127.0.0.1’ par ‘Tout’, enregistrez le fichier et redémarrez votre serveur Wamp.
Trouvez l'adresse IP de votre réseau local.
Ouvrez l'invite de commande.
Tapez et entrez la commande ipconfig
.
Dans mon cas, mon adresse de réseau local est 10.0.0.2.
Ceci est l'adresse IP dont vous avez besoin pour accéder à votre hôte local sur votre téléphone Android en wifi. Pour vérifier si cela fonctionne, tapez cette adresse IP dans votre navigateur de bureau sur lequel votre serveur localhost est installé. Le navigateur doit afficher votre page localhost avec succès. Cela garantira que cette adresse IP du réseau local est maintenant accessible avec succès sur votre téléphone Android.
J'espère que ce tutoriel vous aidera à accéder à votre hôte local via wifi.
Avec la solution simple (il suffit d'accéder à laptop_ip_addr:port
à partir d'un appareil mobile, lorsque les appareils mobiles et portables sont sur le même réseau Wi-Fi), l'erreur ERR_CONNECTION_REFUSED est générée. C'est-à-dire que mon MacBook semble refuser la tentative de connexion depuis mon téléphone portable.
Cette solution fonctionne pour moi (testée avec un MacBook):
adb reverse tcp:4000 tcp:4000
4000
http://localhost:4000/
et il se connectera réellement à l'ordinateur portable, pas au périphérique mobile.Voir les instructions ici .
L'inconvénient est que cela ne fonctionne qu'avec un seul appareil mobile à la fois. Si vous souhaitez accéder à un autre appareil mobile, vous devez d'abord déconnecter le premier (désactiver débogage USB), connecter le nouveau (activer débogage USB), puis exécuter à nouveau adb reverse tcp:4000 tcp:4000
.
Une autre solution qui devrait toujours fonctionner est ngrok (comme mentionné dans d'autres réponses). Cela fonctionne sur Internet et non sur le réseau local.
C'est extrêmement facile à utiliser:
brew cask install ngrok
ngrok http 4000
Cette commande affiche, entre autres informations, une ligne comme
Forwarding http://4cc5ac02.ngrok.io -> localhost:4000
Désormais, vous pouvez accéder à http://4cc5ac02.ngrok.io
sur tout périphérique connecté à Internet. Cette URL redirige ensuite vers localhost:4000
de votre ordinateur portable.
Notez que tant que la commande ngrok est en cours d'exécution (jusqu'à ce que vous appuyiez sur Ctrl-C), votre projet est publiquement servi. Tout le monde qui a l'URL peut le voir.
Il existe cependant une bien meilleure solution. Vous pouvez accéder à votre ordinateur hôte avec l'adresse IP "10.0.2.2". Cela a été conçu de cette manière par l'équipe Android. Ainsi, votre serveur Web peut parfaitement fonctionner sur localhost et depuis votre application Android, vous pouvez y accéder via "http://10.0.2.2:8080".
Comme il s’agit d’une question ancienne, il existe une nouvelle façon de procéder qui est vraiment très simple. Téléchargez le ADB Chrome Extension puis suivez les instructions suivantes:
https://developers.google.com/chrome-developer-tools/docs/remote-debugging
"Le transfert de port sur Chrome pour Android facilite le test de votre site de développement sur mobile. Il fonctionne en créant un port d'écoute TCP sur votre appareil mobile mappé sur un port TCP particulier de votre ordinateur de développement. Le trafic entre ces ports se fait par USB, la connexion ne dépend donc pas de la configuration de votre réseau. "
Plus de détails ici: https://developer.chrome.com/devtools/docs/remote-debugging#port-forwarding
Votre serveur Web peut écouter sur votre interface de bouclage et non sur votre interface réseau. Les principaux signes de ceci sont:
127.0.0.1
et localhost
(de l'émulateur localhost ou Android) fonctionnent192.168.xxx.xxx
ne fonctionnent pas, que ce soit de localhost, LAN ou WANJe parle plus de diagnostiquer cela et de résoudre ceci dans une réponse ici .
enfin fait dans Ubuntu, j'exécute le serveur nodejs sur localhost: 8080
1) type de terminal ouvert ifconfig vous obtiendrez quelque chose comme ça IP: inet addr: 192.168.43.17
2) il suffit maintenant de mettre l'adresse URL comme ceci: "192.168.43.17:8080" (port 8080 provenant du numéro de port localhost) ex: "192.168.43.17:8080/fetch"
Exécuter CMD en tant qu'administrateur
et sur le type d’écran CMD ipconfig et l’écran apparaîtra avec le texte
comme cette photo
et vous pouvez accéder à votre hôte local en utilisant cette adresse IP vous devez être connecté au même réseau que votre ordinateur connecté à
Essayez d’accéder à ce fichier: C:\wamp\bin\Apache\Apache2.2.11\conf\httpd.conf
# onlineoffline tag - don't remove
Order Deny,Allow
Allow from all // change it Deny
Allow from 127.0.0.1
Et changez 10.0.2.2 en votre adresse IP.
Tout d’abord, connectez votre téléphone et votre ordinateur au wifi commun.
Ensuite, ouvrez l'invite de commande en utilisant Exécuter en tant qu'administrateur.
Donne la commande ipconfig
Qui montre IP sans fil LAN
Utilisez ip: port de votre serveur pour accéder au téléphone
Le moyen le plus simple de configurer par défaut localhost est d'utiliser http: // localhost: port . Cela fonctionne dans un ordinateur portable et Android.
Si cela ne fonctionne pas, définissez l'adresse IP par défaut de votre téléphone sur 127.0.0.1:port dans Android :)
Terminal ouvert et tapez: -
hostname -i
#127.0.0.1
hostname -I
#198.168.*.*
J'ai utilisé ce processus:
Notez que cette procédure nécessite de modifier les paramètres WiFi sur le périphérique Android au début et à la fin de chaque session. J'ai trouvé cela moins pénible que d'enraciner mon appareil Android.
Une solution pour connecter mon appareil mobile à mon serveur wamp basé sur mon ordinateur portable:
Tout d'abord, le wifi n'est pas un routeur. Donc, pour connecter mon appareil mobile à mon serveur wamp basé sur localhost sur mon ordinateur portable, j'ai besoin d'un routeur. J'ai téléchargé et installé un routeur virtuel gratuit: https://virtualrouter.codeplex.com/
La configuration est très simple:
Ensuite, vous pouvez vous connecter à votre ordinateur portable via votre appareil en lançant un navigateur et en indiquant l'adresse IPV4 de votre ordinateur portable
Vous devriez voir la page d'accueil de votre serveur Wamp.
Je rencontrais ce problème en utilisant plusieurs serveurs localhost différents. Enfin, mon application est opérationnelle en quelques secondes, simplement en utilisant le serveur Python simple. Cela ne prend que quelques secondes et vaut donc la peine d’être essayé avant d’entrer dans des solutions plus complexes. Tout d'abord, assurez-vous que Python est installé. cmd+r
et tapez python
pour Windows ou $ python --version
dans un terminal mac.
Suivant:
cd <your project root>
$ python -m SimpleHTTPServer 8000
Ensuite, il suffit de trouver l’adresse de votre ordinateur hôte sur le réseau, j’ai utilisé System Preferences/Sharing
sur mac pour le trouver. Tapez cela dans votre appareil Android et devrait charger votre index.html
et vous devriez être bon.
Sinon, le problème est autre chose et vous voudrez peut-être examiner certaines des solutions suggérées. Bonne chance!
* MODIFIER *
Une autre solution rapide à essayer si vous utilisez Chrome est l’extension Web Server for Chrome. Je l'ai trouvé un moyen rapide et super facile d'avoir accès à localhost sur mon téléphone. Assurez-vous simplement de vérifier Accessible to local network
sous la Options
et cela devrait fonctionner sur votre cellule sans aucun problème.
Tout d’abord, assurez-vous que votre adresse IP (où le serveur fonctionne) est statique. Entrez cette adresse IP statique dans le code Android. Ensuite, allez sur l'interface de votre routeur wifi et vérifiez le panneau de gauche. Vous verrez des options telles que le transfert de port/transfert. Cliquez dessus et transférez le port 80 . Modifiez maintenant votre fichier htttpd.conf
et modifiez-le pour
Autoriser de tous
. Redémarrez votre serveur. Tout devrait bien fonctionner maintenant.
De plus, vous pouvez réserver l'adresse IP de votre machine afin qu'elle vous soit toujours attribuée . Dans le panneau de gauche de l'interface de votre routeur, recherchez DHCP -> Address Reservation
, cliquez dessus. Entrez l'adresse MAC de votre appareil et l'adresse IP que vous avez entrée dans le code. Cliquez sur sauvegarder. Ceci réservera l'adresse IP donnée à votre machine.
C'est ce qui a fonctionné pour moi. J'ai ajouté une autre ligne après l'adresse IP 127.0.0.1 pour spécifier l'adresse IP exacte du réseau local (et non l'adresse IP publique) du périphérique que je voulais utiliser. Dans mon cas mon Samsung Galaxy S3
Comme suggéré par Bangptit, éditez le fichier httpd.conf (x étant les numéros de version): C:\wamp\bin\Apache\Apache2.x.x\conf\httpd.conf
Recherchez le tag onlineoffline et ajoutez l'adresse IP de votre téléphone (j'ai trouvé l'adresse IP de mon téléphone dans les pages de configuration de mes routeurs):
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from 192.168.1.65
Allow from ::1
Allow from localhost
Cela pourrait être étendu à un sous-domaine entier, par exemple. 192.168.1.0/24 etc
Utilisez-le dans votre ubuntu/Macbook pour obtenir l’adresse IP de votre système. Votre mobile et votre système doivent être sur le même réseau
ip addr | grep inet
Cela vous donnera une adresse IP qui ressemble à 192.168.168.46
. Utilisation de ceci dans votre smartphone.
J'espère que cela t'aides.
Ngrok est la meilleure solution . Si vous développez PHP, je vous recommande d'installer Laravel Valet , qui possède des versions MacOS et Linux, vous pouvez alors utiliser la commande valet share
. Si vous développez une technologie frontale et avez besoin de partager un port comme 3000, utilisez directement ngrok ngrok http 3000
Le moyen le plus simple (cela a parfaitement fonctionné pour moi) d’héberger votre site localement à 0.0.0.0:<port_no>
et d’y accéder à l’aide d’appareils mobiles, utilisez <local_ipv4_address>:<port_no>/<path>
dans le navigateur.
ipconfig
dans cmdBien qu'une réponse ait été acceptée mais que cela a fonctionné pour moi:
ifconfig
dans le terminal et cherchez en0/en1 -> inet
, il devrait ressembler à 19*.16*.1.4
.) (sous Windows, utilisez `ipconfig) Ouvrez vos paramètres de mobile et allez sur réseau-> appuyez longuement sur votre réseau wifi-> modifier le réseau -> faites défiler les options avancées -> choisissez le proxy proxy et dans le nom d'hôte proxy, entrez votre adresse i.e. 19*.16*.1.4
à l'intérieur du port, entrez votre port. et enregistrez-le.
rechercher what is my ip
dans Google Chrome et obtenir votre adresse IP, disons qu'il s'agit de 1**.1**.15*.2**
1**.1**.15*.2**:port/
à partir de votre appareil mobile.C'est aussi simple que cela.
ngrok vous permet de placer votre localhost sur un serveur temporaire et est très simple à configurer. J'ai fourni quelques étapes ici que vous pouvez trouver dans le lien:
ngrok http [port number]
Vous verrez un petit tableau de bord dans votre terminal avec une adresse pointant vers votre hôte local. Pointez votre application vers cette adresse et construisez-la sur votre appareil.
Ce qui a fonctionné pour moi (cible: déboguer une application serveur Windows s'exécutant sur localhost: 99999 à partir d'une application client exécutée sur un téléphone Android)
l'URL de l'application de service (my_dev_machine_ip: 99999/path_to_service) était accessible à partir du téléphone.
Personnellement, je n’insiste pas pour utiliser localhost lorsque vous utilisez un appareil, il n’existe pas de solution simple.
Commencez simplement l'activité où vous vous connectez à localhost où vous pouvez utiliser l'émulateur. Toutes les informations que vous devez obtenir de l'appareil peuvent être générées facilement et peuvent être envoyées à l'activité en tant que paramètre.
c'est très simple, - Ligne de commande GOTO (Fenêtre + R [type cmd]) - Type ipconfig, qui affichera l'adresse IP actuelle de votre PC - Écrivez l'adresse IP sur le navigateur de votre téléphone Android avec: 80 par exemple ( http: //192.168.xx:80 )
Terminé
localhost apparaîtra sur votre téléphone
Ajouter une solution pour les futurs développeurs.
Copier l'adresse de votre adresse IP. faites un clic droit sur votre réseau -> réseau et partage-> cliquez sur la connexion que vous avez actuellement-> détails-> puis l'adresse à côté de l'adresse ipv4 est votre adresse ip, notez-la quelque part
Accédez au panneau de configuration -> Système et sécurité -> Pare-feu Windows -> Paramètres avancés -> Règles entrantes -> Nouvelles règles (suivez les étapes pour ajouter un port, par exemple 80, très simple à suivre)
indiquez l'adresse IP que vous avez notée dans le navigateur de votre téléphone et le numéro de port pour lequel vous avez créé la règle. par exemple 192.168.0.2:80 et wala.
Solution possible si elle ne se connecte pas . Clic droit réseau-> ouvrir un réseau et partager-> regarder sous Voir vos connexions actives, sous le nom de votre connexion au type de connexion et cliquer dessus si elle est publique, et assurez-vous de le changer pour un réseau domestique.
(par exemple, si vous utilisez le serveur WAMP):
1) Installez vos pilotes Android sur votre PC et téléchargez le fichier portable Android Tethering Reverse Tool et connectez votre appareil Android via l’application Reverse Tool.
2) Cliquez sur l'icône WAMP> Mettre en ligne (après le redémarrage).
3) Ouvrez votre adresse IP dans le navigateur Android (c.-à-d. http://192.168.1.22
OR http://164.92.124.42
).
Pour trouver votre adresse IP locale, cliquez sur Démarrer> Exécuter> cmd et tapez ipconfig. Votre adresse IP s'affichera dans le résultat.
C'est tout. Maintenant, vous pouvez accéder à (ouvert) localhost depuis Android.
utilisez connectify
et xampp
ou l’équivalent, puis tapez ip address sur la barre d’URL du mobile pour accéder
Si vous utilisez Linux, cela fonctionne pour moi.
Sudo iptables -F
Sous linux, utilisez ip addr
au lieu de ifconfig
car ifconfig
est obsolète depuis de nombreuses années et n’est pas installé par défaut dans les distributions récentes.