Comment accéder à un serveur Web local sur mon ordinateur portable à partir d'un autre ordinateur? [fermé]

37

J'ai une application en cours d'exécution sur mon ordinateur à l'adresse 127.0.0.1:3000

J'aimerais accéder à cette application à partir d'un iPhone connecté au même réseau. J'ai déjà fait cela auparavant, mais je n'ai pas précisé comment je l'avais fait. Des idées?

Tony
la source
2
essayez rails server -b 0.0.0.0, puis naviguez sur ceci sur votre iPhone.
Zx1986

Réponses:

37

Vous devez d’abord déterminer l’adresse IP ou le nom de la machine sur laquelle vous exécutez le serveur Web. Je suppose que vous utilisez le serveur Web sur un Mac puisque vous avez balisé votre message alors que macosxles instructions sont similaires pour les machines Linux. Alors, sur ton mac:

  • Ouvert Terminal.app. C'est sous Applications->Utilities.
  • Courez ifconfigdans le terminal. Cela vous montre toutes les interfaces réseau sur la machine. L'un d'eux est le réseau auquel votre machine est activement connectée. Si vous mac est sur une connexion filaire qui devrait être en0. Prenez note de l'adresse après inet. Cette adresse doit être celle utilisée par votre appareil.
    • Supposons que vous découvriez qu'il s'agit de 192.168.10.1.
  • Vérifiez que vous pouvez vous connecter à cette adresse depuis votre serveur avec nc -v 192.168.10.1 3000.
    • Vous devriez voir un message comme Connection to 192.168.10.1 3000 port [tcp/http] succeeded!.
    • Si cela ne fonctionne pas, voir ci-dessous.
    • Si cela fonctionne, appuyez sur ctrl-Cpour quitter la session nc.
  • Maintenant, essayez de vous connecter sur votre ordinateur client.
    • S'il s'agit d'une application Web, vous devriez pouvoir vous connecter via le navigateur.
    • Par exemple, essayez http://192.168.10.1:3000

Si vous ne parvenez pas à vous connecter à votre application à l'adresse réelle du serveur, cela signifie que votre application n'écoute pas cette adresse. Vous devrez étudier comment modifier la configuration de votre application pour modifier ce comportement. Étant donné que je ne sais pas quelle application vous utilisez, je ne peux offrir aucune bonne idée à ce sujet.

Phil Hollenback
la source
10x mate ... Quelle différence y a-t-il entre un système Windows et un serveur Wamp, existe-t-il une différence?
Sagive SEO
J'utilise mac sierra. Je peux accéder au serveur depuis mon Mac (où le serveur est en cours d'exécution) via 10.55.18.22:3000 mais je ne peux pas y accéder à partir d'une autre machine, même si les deux sont sur le même réseau. L'option de partage Web n'est pas disponible dans Sierra. Comment pouvons-nous faire ce travail?
Santhosh Kumar
saanthosh: Regardez dans la redirection de port sur votre routeur. C'est ce que je faisais avant de découvrir la fonctionnalité de partage Internet d'OSX (apparemment disponible depuis au moins OSX 10.6). J'ai effectué des tests sur localhost sur divers appareils mobiles dans la même pièce / le même réseau que mon ordinateur OSX dev, ce qui a été rendu possible par des modifications standard / minimes de la configuration du routeur (par exemple, la redirection de port). D'autres articles et discussions SO fournissent des informations sur la configuration du routeur. En fin de compte, je me trouve maintenant dans un nouvel emplacement et je n’ai pas accès au routeur. J’utilise donc le partage Internet OSX (High Sierra) pour obtenir le même résultat.
MarsAndBack
12

Recherchez le nom de votre Mac en utilisant hostname(à l'invite du terminal) et utilisez-le dans votre URL. Par exemple, http: //Tonys-iMac.local: 3000 /

Si, pour une raison quelconque, Bonjour ne fonctionne pas dans votre environnement, recherchez l'adresse de l'aéroport sur un iMac ou un MacBook avec

ipconfig getifaddr en1

ou en général avec

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

James
la source
Cette réponse a quelques bonnes optimisations par rapport à la mienne concernant la recherche de votre nom d’hôte et de votre adresse IP.
Phil Hollenback
2
pourquoi bonjour ne marcherait-il pas? Je trouve mon nom d'hôte est gm20152.local. Mais lorsque j'essaie gm20152.local: 3000 sur la même machine, une page valide est affichée . Mais lorsque j'essaie gm20152.local: 3000 sur mon téléphone Android, le navigateur de mon téléphone n'a pas pu trouver l'hôte. Je pense que c'est parce que mon téléphone n'a aucun moyen de mapper gm20152.local sur l'adresse IP de mon macbook. Comment puis-je accomplir cela ?
gprasant
@gprasant Utiliser Android avec Bonjour semble assez difficile
James
5

En gros, à partir des paramètres du pare-feu, vous pouvez autoriser une application donnée (par exemple, ruby) à accepter les connexions entrantes. De plus, pour permettre l’accès au monde extérieur (par exemple, www), vous devrez transférer le trafic sur votre passerelle interne: port via les paramètres de votre routeur.

Voici comment faire ceci:

  1. Mac-> Préférences Système-> Partage-> Cochez la case "Partage Web"
  2. Mac-> Préférences Système-> Sécurité-> Autoriser votre application (par exemple, ruby) à accepter les connexions entrantes
  3. Ouvrez un port sur le routeur (via 192.168.1.1) pour transférer le trafic de your_web_ip: port vers une passerelle local: port

    1. Par exemple, à partir des paramètres de routeur de Verizon -> Transfert de port -> Créer une règle: transfert vers une passerelle locale (par exemple 192.168.1.4), port personnalisé, protocole TCP, source = any, destination = 3280, tous les types de connexion, transfert vers port = 3000.

Terminé. Maintenant, à partir de l’ordinateur distant, ouvrez votre navigateur avec votre adresse IP web (recherchez via http://www.whatismyip.com/ ) + le numéro de port de destination ci-dessus, par exemple 72.189.194.65:3280, ce qui permettra de vous connecter à votre 192.168.1.4 local. : 3000

Remarque: j'utilise Mac OSX 10.7.5.

Chase T.
la source
2

127.0.0.1 est l'adresse locale que chaque ordinateur possède pour lui-même. Vous devez connaître la véritable adresse IP (ou le nom d'hôte / Bonjour) de la machine. Accédez aux Préférences Système, Réseau et recherchez l'adresse IP de la machine, que ce soit pour le port Ethernet si vous utilisez un câble ou pour l'aéroport si vous utilisez le WLAN. Ouvrez ensuite cette adresse avec la partie: 3000 dans Safari sur iPhone.

Sven
la source
De plus, la sous- fenêtre Préférences de partage affiche toujours un nom ou une adresse permettant d’atteindre votre ordinateur.
James
2

Si l'application écoute uniquement sur 127.0.0.1:3000, vous ne pourrez pas y accéder depuis un autre ordinateur. Pour ce faire, vous devez modifier la configuration sur Listen the IP ou 0.0.0.0 (toutes les interfaces disponibles) .Cette option 1.

La deuxième option consiste à utiliser un proxy.

La troisième option est que si vous pouvez utiliser SSH depuis l'iPhone, vous pouvez également utiliser le transfert SSH.

utilisateur ssh @ hôte -L 3000: 127.0.0.1: 3000

Puis sur ton iphone ouvert 127.0.0.1:3000

Sameer
la source
1
Autant que je sache, vous ne pouvez pas faire de redirection de port ssh sur un iPhone. Pas si ce n'est pas jailbreaké de toute façon.
Sven
Ecoute 0.0.0.0! Comment pourrais-je ne pas penser à ça?
Gustavo Straube