Frage Wie greife ich von einem anderen Computer aus auf einen lokalen Webserver auf meinem Laptop zu? [geschlossen]


Ich habe eine App auf meinem Computer mit 127.0.0.1:3000

Ich möchte auf diese App von einem iPhone zugreifen, das mit demselben Netzwerk verbunden ist. Ich habe das schon mal gemacht, aber ich habe nicht darüber gesprochen, wie ich es gemacht habe. Irgendwelche Ideen?


32
2018-02-01 03:00


Ursprung


Versuchen rails server -b 0.0.0.0 , dann browse dies auf deinem iPhone. - zx1986


Antworten:


Zuerst müssen Sie die IP-Adresse oder den Namen des Rechners ermitteln, auf dem der Webserver läuft. Ich gehe davon aus, dass Sie den Webserver auf einem Mac ausführen, da Sie Ihren Post markiert haben macosx Die Anweisungen sind für Linux-Rechner ähnlich. Also, auf deinem Mac:

  • Öffnen Terminal.app. Es ist unter Applications->Utilities.
  • Lauf ifconfig im Terminal. Das zeigt Ihnen alle Netzwerkschnittstellen auf dem Computer. Einer davon ist das Netzwerk, mit dem Ihre Maschine aktiv verbunden ist. Wenn du mac auf einer Kabelverbindung bist sollte das sein en0. Notieren Sie sich die Adresse nach inet - Das sollte die Adresse sein, die Ihre Maschine verwendet.
    • Nehmen wir an, Sie entdecken, dass es 192.168.10.1 ist.
  • Stellen Sie sicher, dass Sie von diesem Server aus eine Verbindung zu dieser Adresse herstellen können nc -v 192.168.10.1 3000.
    • Sie sollten eine Nachricht wie sehen Connection to 192.168.10.1 3000 port [tcp/http] succeeded!.
    • Wenn das nicht funktioniert, siehe unten.
    • Wenn es funktioniert, drücken Sie ctrl-C um die NC-Sitzung zu beenden.
  • Versuchen Sie nun, eine Verbindung auf Ihrem Clientcomputer herzustellen.
    • Wenn dies eine Web-App ist, sollten Sie in der Lage sein, eine Verbindung über den Browser herzustellen
    • Zum Beispiel, versuche es http://192.168.10.1:3000

Wenn Sie keine Verbindung zu Ihrer Anwendung an der realen Adresse des Servers herstellen können, bedeutet dies, dass Ihre Anwendung diese Adresse nicht abhört. Sie müssen untersuchen, wie Sie die Anwendungskonfiguration ändern können, um dieses Verhalten zu ändern. Da ich nicht weiß, mit welcher Anwendung Sie arbeiten, kann ich dazu keine guten Ideen geben.


32
2018-02-01 03:41



10x Kumpel ... was ist der Unterschied, wenn über ein Windows-basiertes System mit Wamp-Server darauf gesprochen wird ... gibt es einen Unterschied? - Sagive SEO
Ich benutze Mac Sierra. Ich kann über meinen Mac (wo der Server läuft) auf den Server zugreifen 10.55.18.22:3000 aber nicht in der Lage, von einer anderen Maschine darauf zuzugreifen, obwohl beide im selben Netzwerk sind. Die Web-Sharing-Option ist in Sierra nicht verfügbar. Wie können wir das schaffen? - santhosh kumar
saanthosh: Schau dir Port Forwarding auf deinem Router an. Das habe ich getan, bevor ich die Internet-Sharing-Funktion von OSX entdeckte (die anscheinend seit mindestens OSX 10.6 verfügbar ist). Ich habe Localhost-Tests auf einer Vielzahl von Mobilgeräten im selben Raum / Netzwerk wie meine OSX-Dev-Maschine durchgeführt, was durch Standard / kleine Änderungen an der Routerkonfiguration (dh Portweiterleitung) möglich wurde. Andere Artikel und SO-Threads enthalten Informationen zur Routerkonfiguration. Letztendlich bin ich jetzt an einem neuen Ort und habe keinen Zugriff auf den Router. Stattdessen benutze ich OSX (High Sierra) Internet Sharing, um dasselbe zu erreichen. - MarsAndBack


Finden Sie den Namen Ihres Mac mit hostname (an der Eingabeaufforderung Terminal) und verwenden Sie das in Ihrer URL. Z.B. http: //Tonys-iMac.local: 3000 /

Wenn Bonjour aus irgendeinem Grund nicht in Ihrer Umgebung funktioniert, finden Sie die Adresse des Flughafens auf einem iMac oder MacBook mit

ipconfig getifaddr en1

oder allgemein mit

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


11
2018-02-01 11:59



Diese Antwort hat einige gute Optimierungen in Bezug auf meinen Hostnamen und die IP-Adresse. - Phil Hollenback
Warum würde Bonjour nicht funktionieren? Ich finde, dass mein Hostname gm20152.local ist. Aber wenn ich es versuche gm20152.local: 3000 Auf derselben Maschine wird eine gültige Seite angezeigt. Aber wenn ich es versuche gm20152.local: 3000 Auf meinem Android-Handy konnte der Browser meines Telefons den Host nicht finden. Ich denke, das liegt daran, dass mein Handy keine Möglichkeit hat, gm20152.local auf die IP-Adresse meines Macbooks zu mappen. Wie kann ich das erreichen? - gprasant
@ Gprasant Android für die Verwendung von Bonjour scheint ziemlich schwer - James


Im Grunde können Sie den Firewall-Einstellungen erlauben, dass eine bestimmte Anwendung (z. B. Ruby) eingehende Verbindungen akzeptiert. Um den Zugriff auf die Außenwelt (z. B. www) zu ermöglichen, müssen Sie den Datenverkehr über die Routereinstellungen an Ihr internes Gateway weiterleiten.

So geht's:

  1. Mac-> Sys Preferences-> Sharing-> Aktivieren Sie das Kontrollkästchen "Web Sharing"
  2. Mac-> Sys Preferences-> Security-> erlauben Sie Ihrer Anwendung (z. B. Ruby), eingehende Verbindung zu akzeptieren
  3. Öffnen Sie einen Port auf dem Router (über 192.168.1.1), um Datenverkehr von Ihrem Port_web_ip: an einen Port local_gateway: weiterzuleiten

    1. Z.B. von meinen Verizon Router-Einstellungen -> Portweiterleitung -> Regel erstellen: weiter zum lokalen Gateway (z. B. 192.168.1.4), benutzerdefinierter Port, Protokoll tcp, source = any, Ziel = 3280, alle Verbindungstypen, weiter zu Port = 3000.

Erledigt. Öffnen Sie nun vom Remote - Computer aus Ihren Browser mit Ihrer Web - IP - Adresse http://www.whatismyip.com/) + Zielport # oben, z.B. 72.189.194.65:3280, wird dies mit Ihrem lokalen 192.168.1.4:3000 verbinden

Hinweis: Ich verwende Mac OSX 10.7.5


5
2017-12-07 06:52





127.0.0.1 ist die lokale Adresse, die jeder Computer für sich hat. Sie müssen herausfinden, was die reale IP-Adresse (oder Host / Bonjour Name) der Maschine ist. Gehen Sie zu Systemeinstellungen, Netzwerk und suchen Sie die IP-Adresse des Geräts, entweder für den Ethernet-Anschluss, wenn Sie ein Kabel verwenden, oder für den Flughafen, wenn Sie WLAN verwenden. Dann öffne diese Adresse zusammen mit dem: 3000 Teil in Safari auf dem iPhone.


2
2018-02-01 03:09



Auch die Teilen Preference Pane zeigt immer einen Namen oder eine Adresse an, über die Ihr Computer erreichbar ist. - James


Wenn die Anwendung nur auf 127.0.0.1:3000 hört, können Sie nicht von einem anderen Computer darauf zugreifen. Dazu müssten Sie die Konfiguration auf Listen the IP oder 0.0.0.0 (alle verfügbaren Schnittstellen) ändern. Dies ist Option eins.

Die zweite Möglichkeit besteht darin, einen Proxy zu verwenden.

Die dritte Option ist, wenn Sie ssh aus dem iPhone können Sie auch ssh-Weiterleitung verwenden.

SSH Benutzer @ Host -L 3000: 127.0.0.1: 3000

Dann auf Ihrem iPhone öffnen 127.0.0.1:3000


2
2018-02-01 03:36



AFAIK, Sie können SSH-Port-Weiterleitung auf einem iPhone nicht tun. Nicht, wenn es sowieso nicht jailbroken ist. - Sven♦
Zuhören 0.0.0.0! Wie konnte ich nicht daran denken? - Gustavo Straube


Hast du das versucht, es hat für mich funktioniert (ich bin nicht damit verbunden):

https://github.com/progrium/localtunnel


0
2017-09-25 14:42