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?
rails server -b 0.0.0.0
, dann durchsuchen Sie dies auf Ihrem iPhone.Antworten:
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
macosx
ausführen, da Sie Ihren Beitrag mit Tags versehen haben, obwohl die Anweisungen für Linux-Computer ähnlich sind. Also, auf deinem Mac:Terminal.app
. Es ist unterApplications->Utilities
.ifconfig
Im 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 seinen0
. Notieren Sie sich die Adresse danachinet
- dies sollte die Adresse sein, die Ihr Gerät verwendet.nc -v 192.168.10.1 3000
.Connection to 192.168.10.1 3000 port [tcp/http] succeeded!
.ctrl-C
, um die NC-Sitzung zu beenden.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.
quelle
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 }')
quelle
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:
Ö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
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
quelle
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.
quelle
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
quelle
0.0.0.0
! Wie konnte ich nicht daran denken?Haben Sie dies versucht, es hat bei mir funktioniert (ich bin damit nicht verbunden):
https://github.com/progrium/localtunnel
quelle