web-dev-qa-db-fra.com

Localhost s'exécutant sur mac .. Puis-je le voir sur mon téléphone Android?

Lancer un projet Ruby on Rails sur mon mac. Je dois le tester sur mon téléphone Android. Existe-t-il un moyen de visualiser mon hôte local mac sur mon téléphone Android?

43
Mark Steggles

Le nom "localhost" est juste un bouclage sur votre propre ordinateur. Pour y accéder sur votre Android, vous devez trouver l'adresse IP de l'ordinateur.

Le moyen le plus général de trouver cette information, qui fonctionne à la fois sur Mac et Linux, consiste à entrer dans le terminal et à taper ifconfig. Recherchez "en0" ou "en1", et sous cette entrée, recherchez la liste "inet". Ce sera quelque chose du genre "192.168.1.100". Lorsque vous trouverez cette adresse, c'est ce que vous voudrez mettre dans la barre d'adresse de votre navigateur.

(Sur un Mac en particulier, vous pouvez accéder à la sous-fenêtre Partage dans les Préférences Système et vous y apprendre.)

68
Chuck

Voici une rapide chose à faire pour que votre localhost soit disponible pour des tests sur d'autres appareils: 

1) identifiez l’adresse IP de votre Android: sélectionnez le Wi-Fi auquel vous êtes connecté (le même que celui sur lequel le Mac est allumé), vous aurez l’adresse IP détaillée). Pour l'exemple: nous supposons que votre IP Android est: 192.168.0.10

2) ouvrez un shell sur votre Mac et éditez votre hôte: 

Sudo nano /etc/hosts

3) éditez le fichier comme ceci: 

127.0.0.1 192.168.0.10

4) Identifiez votre adresse IP Mac: (comme @Chuck l’a parfaitement expliqué) (Dans votre shell): 

ifconfig

5) Ouvrez votre navigateur Web préféré que vous utilisez sur votre téléphone et connectez-vous à votre adresse IP Mac (avec le port si nécessaire) directement avec quelque chose comme: 

http://192.168.x.x:8000/

6) Profitez de votre test :) 

Notez que vous pouvez le faire pour chaque support connecté sur votre réseau Wi-Fi.

15
user1713964

La réponse de Chunk est correcte, en supposant que votre appareil mobile et votre ordinateur soient sur le même réseau. Toutefois, si vous souhaitez que votre serveur localhost soit visible sur Internet (par exemple, pour les tests 3G, le développement de Webhook ou la collaboration avec un collègue/client distant), il vous faut davantage d'adresses locales (à partir de 10. * ou 192.168. * ) ne sont pas visibles sur Internet au sens large.

La solution traditionnelle à cela est la redirection de port et le DNS dynamique, mais récemment, quelques services sont apparus qui visent à simplifier ce processus (disclaimer: je suis l'auteur de l'un d'entre eux, PageKite).

Ces services vous fournissent un nom DNS public et un logiciel qui connecte votre "localhost" à un serveur de relais dans le nuage (par exemple, un proxy inverse). Par exemple, si vous utilisez PageKite, vous pouvez exécuter la commande suivante dans le terminal:

$ pagekite.py 80 votrenom.pagekite.me

... pour créer un mappage de http://yourname.pagekite.me/ sur le serveur Web exécuté sur http://localhost:80. Pendant que le programme est en cours d'exécution, votre site localhost sera visible par le reste de l'Internet. Pour le rendre à nouveau privé, vous devez simplement désactiver le programme de connecteur pagekite.py.

Pour être complet, voici quelques-uns des services de tunnelisation en localhost que je connaisse:

  • PageKite est un logiciel libre (Python) avec un service en ligne "payez ce que vous voulez". Vous pouvez créer autant de sous-domaines de longue durée que vous le souhaitez, un certificat SSL générique est inclus et des relais frontaux exécutés dans plusieurs emplacements géographiques pour assurer la redondance et la réactivité.
  • Localtunnel est une solution Ruby gratuite (sponsorisée par Twilio) qui donne aux connexions des noms temporaires. Notez que les noms sont recyclés afin que vous puissiez voir un trafic inattendu lorsque la connexion est active.
  • Showoff.io et Tunnlr.com sont des services propriétaires payants comparables à Localtunnel, reposant sur la même technologie de base (tunnels SSH).

(Désolé de ne pas créer de lien vers les deux derniers, la protection anti-spam de SO m'empêche d'être équitable envers mes concurrents. ;-)

12
Bjarni Rúnar

Cela a fonctionné pour moi pour accéder au serveur Rails avec IP sur un réseau local:

  • Le pare-feu doit être désactivé.
  • / etc/hosts devrait avoir cette entrée:

    127.0.0.1 192.168.100.12
    

    où 192.168.100.12 est l'adresse IP qui peut être trouvée par la commande ifconfig dans le terminal.

  • Démarrez le serveur Rails avec cette commande: 

    Rails server -b 0.0.0.0 -p 8080
    

J'ai pu accéder à mon hôte local via http://192.168.100.12:8080/

8
Simmi Badhan

J'ai trouvé cet excellent outil gratuit aujourd'hui - vraiment facile à configurer et fonctionne comme un charme Des versions pour Mac OS, Linux et Windows sont également disponibles.

https://ngrok.com/

(je n'y suis associé d'aucune façon)

6
rassom

après avoir lu ce fil de discussion (et les suggestions ont fonctionné!), j'ai élaboré un guide unique pour résoudre ce problème. Ce lien vers ce guide qui contient des captures d’écran pour chaque étape et où regarder . Ou le texte est collé ci-dessous. Merci pour l'aide!

Tout d’abord, votre téléphone et votre ordinateur portable doivent être connectés au même réseau WiFi. Si vous utilisez le point d'accès mobile de votre téléphone, il fonctionnera toujours. Cependant, assurez-vous de connecter les deux périphériques au même réseau avant de poursuivre.

Ensuite, collectez l'adresse IP de votre téléphone. Pour ce faire, j'utilise l'application Network Info II. Il y a très certainement une autre façon d'accomplir cela. Cependant, Network Info II fonctionne selon les besoins et constitue un document dans l’intérêt de ce didacticiel. 

Ouvrez maintenant le terminal sur votre ordinateur (ne vous inquiétez pas du répertoire dans lequel vous vous trouvez) et exécutez la commande Sudo nano/etc/hosts /. Après avoir entré votre mot de passe système, vous verrez une chaîne de chiffres dans le haut du terminal, suivie du mot localhost. En fait, Localhost n'est qu'un alias pour l'adresse du serveur de votre ordinateur. Ainsi, lorsque vous accédez à l'hôte local dans un navigateur, il achemine simplement la requête http vers votre ordinateur local. Afin de lier votre téléphone à cette boucle, entrez son adresse IP juste entre la chaîne de chiffres et Localhost.

Pour enregistrer ceci, appuyez sur Ctrl + X puis sur Y lorsque vous êtes invité à enregistrer. Après cela, la touche Entrée vous ramènera à la ligne de commande standard.

Ouvrez un deuxième onglet dans le terminal et lancez un serveur local. Je n'ai testé cela qu'avec un simple serveur python, qui peut être exécuté en exécutant python -m SimpleHTTPServer 8000. Cependant, je suppose que vous pouvez lancer n'importe quel serveur local, à condition que vous ayez besoin de tout ce dont vous aurez besoin. faire référence est le numéro de port. Si vous utilisez le serveur python simple, le numéro de port est 8000.

Exécutez ifconfig dans le terminal. Cela amènera une foule d'informations sur lesquelles vous devriez faire défiler à mi-chemin. Ce que vous recherchez, c'est une chaîne de nombres qui suit un inet et un masque de réseau avant dans la clé en0: ou en1:.

Terminé! Sur votre Android, ouvrez un navigateur et visitez le numéro d’inet, suivi de deux points (:) et du numéro de port.

2
Sebastian Scholl

Bien qu'une réponse ait été acceptée mais que cela a fonctionné pour moi:

  1. Assurez-vous que votre ordinateur et votre appareil Android sont sur le même réseau.
  2. obtenez l'adresse IP de votre ordinateur. (Dans le cas où mac saisissez ifconfig à l'intérieur du terminal et cherchez en0/en1 -> inet, il devrait ressembler à 19*.16*.1.4.)
  3. 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, saisissez votre adresse i.e. 19*.16*.1.4 à l'intérieur du port, entrez votre port. et enregistrez-le.

  4. rechercher what is my ip dans Google Chrome et obtenir votre adresse IP, disons qu'il s'agit de 1**.1**.15*.2**

  5. essayez d’accéder à 1**.1**.15*.2**:port/ à partir de votre appareil mobile.

C'est aussi simple que cela.

1
best wishes

De plus, si vous souhaitez tester sur un appareil Android/iOS une PWA Apps développé avec Angular , vous devez utiliser:

ng serve --Host 0.0.0.0 pour démarrer la CLI du serveur.

Si vous recevez "En-tête d'hôte invalide", utilisez:

ng serve --Host 0.0.0.0 --disableHostCheck true

1
yaircarreno

Comme mentionné dans d'autres réponses, l'URL doit être composé de l'adresse IP de l'ordinateur et non de localhost. Si cela ne fonctionne pas, avant d'essayer quoi que ce soit, vérifiez si le port est correctement mentionné, ainsi que l'adresse IP lorsque vous passez un appel api dans l'application Android. C'est-à-dire que vous devriez faire un appel d'api à une URL au format: http://192.168.X.X:80/api/..

0
nb2998