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 unter Applications->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 sein en0
. Notieren Sie sich die Adresse danach inet
- 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.
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 }')
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
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.
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
0.0.0.0
! Wie konnte ich nicht daran denken?
Haben Sie dies versucht, es hat bei mir funktioniert (ich bin damit nicht verbunden):
rails server -b 0.0.0.0
, dann durchsuchen Sie dies auf Ihrem iPhone.