web-dev-qa-db-fra.com

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

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

Je souhaite accéder à cette application à partir d'un iPhone connecté au même réseau. Je l'ai déjà fait auparavant, mais je n'ai pas expliqué comment je l'ai fait. Des idées?

38
Tony

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 exécutez le serveur Web sur un Mac depuis que vous avez marqué votre message macosx bien que les instructions soient similaires pour les machines Linux. Donc, sur votre mac:

  • Ouvert Terminal.app. C'est sous Applications->Utilities.
  • Exécutez ifconfig dans 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 votre Mac est sur une connexion filaire qui devrait être en0. Notez l'adresse après inet - qui devrait être l'adresse utilisée par votre machine.
    • Supposons que vous découvrez que c'est 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-C pour quitter la session nc.
  • Essayez maintenant 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:30

Si vous ne parvenez pas à vous connecter à votre application sur la véritable adresse du serveur, cela signifie que votre application n'écoute pas sur cette adresse. Vous devrez rechercher comment modifier la configuration de votre application pour modifier ce comportement. Comme je ne sais pas quelle application vous exécutez, je ne peux pas offrir de bonnes idées à ce sujet.

39
Phil Hollenback

Recherchez le nom de votre Mac à l'aide de 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 }')

13
James

Fondamentalement, à partir des paramètres du pare-feu, vous pouvez autoriser une certaine application (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 vers votre passerelle interne: port via les paramètres de votre routeur.

Voici comment procéder:

  1. Mac-> Préférences Sys-> Partage-> Cochez la case "Partage Web"
  2. Mac-> Préférences Sys-> Sécurité-> autoriser votre application (par exemple Ruby) à accepter la connexion entrante
  3. Ouvrez un port sur le routeur (via 192.168.1.1) pour transférer le trafic de votre_web_ip: port vers un local_gateway: port

    1. Par exemple. à partir des paramètres de mon routeur Verizon -> Port Forwarding -> create rule: forward to local gateway (e.g. 192.168.1.4), custom port, protocol tcp, source = any, destination = 3280, all connection types, forward to port = 3000.

Terminé. À partir de l'ordinateur distant, ouvrez votre navigateur sur votre adresse IP Web (recherchez via http://www.whatismyip.com/ ) + port de destination # ci-dessus, par ex. 72.189.194.65:3280, cela se connectera à votre 192.168.1.4:3000 local

Remarque: je fonctionne sur Mac OSX 10.7.5

6
Chase T.

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

2
Sven

Si l'application écoute uniquement sur 127.0.0.1:3000, vous ne pouvez pas y accéder à partir d'un autre ordinateur. Pour ce faire, vous devez modifier la configuration pour écouter l'IP ou 0.0.0.0 (toutes les interfaces disponibles) .C'est la première option.

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 votre iphone ouvrez 127.0.0.1:3000

2
Sameer

Avez-vous essayé cela, cela a fonctionné pour moi (je n'y suis pas affilié):

https://github.com/progrium/localtunnel

1
IanVaughan