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

37

Ich habe eine App, die auf meinem Computer um 127.0.0.1:3000 ausgeführt wird

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

Tony
quelle
2
versuchen Sie es rails server -b 0.0.0.0, dann durchsuchen Sie dies auf Ihrem iPhone.
zx1986

Antworten:

37

Zunächst müssen Sie die IP-Adresse oder den Namen des Computers ermitteln, auf dem Sie den Webserver ausführen. Ich gehe davon aus, dass Sie den Webserver auf einem Mac macosxausführen, da Sie Ihren Beitrag mit Tags versehen haben, obwohl die Anweisungen für Linux-Computer ähnlich sind. Also, auf deinem Mac:

  • Öffnen Terminal.app. Es ist unter Applications->Utilities.
  • ifconfigIm Terminal laufen . Das zeigt Ihnen alle Netzwerkschnittstellen auf dem Computer. Eine davon ist das Netzwerk, mit dem Ihr Computer aktiv verbunden ist. Wenn Ihr Mac über eine Kabelverbindung verfügt, sollte dies der Fall sein en0. Notieren Sie sich die Adresse danach inet- dies sollte die Adresse sein, die Ihr Gerät verwendet.
    • Nehmen wir an, Sie entdecken, dass es 192.168.10.1 ist.
  • Stellen Sie sicher, dass Sie von Ihrem Server mit 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, auf Ihrem Client-Computer eine Verbindung herzustellen.
    • Wenn es sich um eine Web-App handelt, sollten Sie über den Browser eine Verbindung herstellen können
    • Versuchen Sie beispielsweise http://192.168.10.1:3000

Wenn Sie über die tatsächliche Adresse des Servers keine Verbindung zu Ihrer Anwendung herstellen können, bedeutet dies, dass Ihre Anwendung diese Adresse nicht überwacht. Sie müssen untersuchen, wie Sie Ihre Anwendungskonfiguration ändern können, um dieses Verhalten zu ändern. Da ich nicht weiß, welche Anwendung Sie ausführen, kann ich hierzu keine guten Vorschläge machen.

Phil Hollenback
quelle
10x Kumpel ... was ist der Unterschied, wenn es um ein Windows-basiertes System mit Wamp-Server geht ... gibt es einen Unterschied?
Sagive SEO
Ich benutze Mac Sierra. Ich kann von meinem Mac (auf dem der Server ausgeführt wird) über 10.55.18.22:3000 auf den Server zugreifen, aber nicht von einem anderen Computer, obwohl sich beide im selben Netzwerk befinden. Die Web-Sharing-Option ist in Sierra nicht verfügbar. Wie können wir diese Arbeit machen?
Santhosh Kumar
saanthosh: Schau in die Portweiterleitung auf deinem Router. 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 auf einer Vielzahl von Mobilgeräten im selben Raum / Netzwerk wie mein OSX-Gerät getestet, was durch standardmäßige / 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 Standort und habe keinen Zugriff auf den Router. Stattdessen verwende ich die Internetfreigabe unter OSX (High Sierra), um das Gleiche zu erreichen.
MarsAndBack
12

Suchen Sie den Namen Ihres Mac mit hostname(an der Terminal-Eingabeaufforderung) und verwenden Sie diesen in Ihrer URL. ZB http: //Tonys-iMac.local: 3000 /

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

ipconfig getifaddr en1

oder generell mit

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

James
quelle
Diese Antwort hat einige gute Optimierungen in Bezug auf das Finden Ihres Hostnamens und Ihrer IP-Adresse.
Phil Hollenback
2
warum sollte bonjour nicht funktionieren? Ich finde, mein Hostname ist gm20152.local. Wenn ich aber gm20152.local: 3000 auf demselben Computer versuche , wird eine gültige Seite angezeigt . Aber wenn ich gm20152.local: 3000 auf meinem Android-Handy versuche , konnte der Browser auf meinem Handy den Host nicht finden. Ich denke, das liegt daran, dass mein Telefon keine Möglichkeit hat, gm20152.local der IP-Adresse meines Macbooks zuzuordnen. Wie kann ich das erreichen?
gprasant
@gprasant Die Verwendung von Bonjour für Android scheint ziemlich schwierig zu sein
James
5

Grundsätzlich können Sie in den Firewall-Einstellungen zulassen, dass eine bestimmte Anwendung (z. B. Ruby) eingehende Verbindungen akzeptiert. Um den Zugriff auf die Außenwelt zu ermöglichen (z. B. www), müssen Sie den Datenverkehr über die Router-Einstellungen an Ihren internen Gateway-Port weiterleiten.

So geht's:

  1. Mac-> Systemeinstellungen-> Freigabe-> Kontrollkästchen "Webfreigabe" aktivieren
  2. Mac-> Systemeinstellungen-> Sicherheit-> Ermöglichen Sie Ihrer Anwendung (z. B. Ruby), eingehende Verbindungen zu akzeptieren
  3. Öffnen Sie einen Port auf dem Router (über 192.168.1.1), um Datenverkehr von Ihrem_web_ip: -Port an einen lokalen_gateway: -Port weiterzuleiten

    1. ZB aus den Router-Einstellungen meines Verizons -> Portweiterleitung -> Regel erstellen: Weiterleiten an lokales Gateway (z. B. 192.168.1.4), benutzerdefinierter Port, Protokoll-TCP, Quelle = Beliebig, Ziel = 3280, alle Verbindungstypen, Weiterleiten an Port = 3000.

Getan. Öffnen Sie nun auf dem Remotecomputer Ihren Browser mit Ihrer Web-IP-Adresse ( siehe http://www.whatismyip.com/ ) + Zielportnummer oben, z. B. 72.189.194.65:3280. Dadurch wird eine Verbindung zu Ihrer lokalen 192.168.1.4 hergestellt : 3000

Hinweis: Ich verwende Mac OSX 10.7.5

Chase T.
quelle
2

127.0.0.1 ist die lokale Adresse, die jeder Computer für sich hat. Sie müssen herausfinden, wie die tatsächliche IP-Adresse (oder der Host- / Bonjour-Name) des Computers lautet. Gehen Sie zu Systemeinstellungen, Netzwerk und suchen Sie die IP-Adresse des Geräts, entweder für den Ethernet-Port, wenn Sie ein Kabel verwenden, oder für den Flughafen, wenn Sie WLAN verwenden. Öffnen Sie dann diese Adresse zusammen mit dem: 3000-Teil in Safari auf dem iPhone.

Sven
quelle
Außerdem wird im Bereich " Freigabeeinstellungen" immer ein Name oder eine Adresse angezeigt, über die Ihr Computer erreichbar ist.
James
2

Wenn die Anwendung nur 127.0.0.1:3000 abhört, können Sie nicht von einem anderen Computer aus darauf zugreifen. Dazu müssten Sie die Konfiguration ändern, um die IP oder 0.0.0.0 (alle verfügbaren Schnittstellen) abzuhören. Diese Option ist eine.

Die zweite Option ist die Verwendung eines Proxys.

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

ssh user @ host -L 3000: 127.0.0.1: 3000

Öffnen Sie dann auf Ihrem iPhone 127.0.0.1:3000

Sameer
quelle
1
AFAIK, auf einem iPhone ist keine SSH-Portweiterleitung möglich. Nicht, wenn es sowieso nicht kaputt ist.
Sven
Hören Sie zu 0.0.0.0! Wie konnte ich nicht daran denken?
Gustavo Straube