2015-03-18 6 views
24

Zum ersten Mal seit dem Upgrade auf OSX Yosemite muss ich eine App auf meinem Computer von einem anderen Computer im selben Netzwerk anzeigen. Zuvor war dies so einfach wie das Finden meiner internen IP-Adresse und die Verwendung mit Port 3000, z. http://192.168.0.111:3000.Rails-Anwendung für lokales Netzwerk nicht sichtbar

Allerdings finde ich jetzt, dass mit Yosemite das nicht funktioniert. Die Anwendung läuft definitiv und ist über localhost:3000 verfügbar, aber nicht über meine interne IP.

Ich habe den Netzwerk-Dienstprogramm-Port-Scanner ausgeführt und es zeigt, dass Localhost Port 3000 freigibt, aber meine IP nicht. Auf anderen Computern im Netzwerk, die noch nicht aktualisiert wurden (10.7.5 und 10.9.5), tritt dieses Problem nicht auf.

Jede Hilfe würde sehr geschätzt werden.

Edit: Je nach Sicherheits-und Datenschutzbereich der Systemeinstellungen ist die Yosemite-Firewall derzeit deaktiviert - so dass das Problem nicht verursacht wird.

Antwort

47

Standardmäßig akzeptiert rails server nur Verbindungen von localhost. Sie können dies überprüfen, indem Sie an der Konsole Ausgang suchen:

Listening on localhost:3000, CTRL+C to stop 

auf alle Adressen zu hören, die Ihnen erlauben, von anderen Rechnern im lokalen Netzwerk zu verbinden, müssen Sie ausdrücklich auf eine permissive Adresse binden. Versuchen Sie folgendes:

rails server --binding=0.0.0.0 

Sie sollten jetzt sehen:

Listening on 0.0.0.0:3000, CTRL+C to stop 

Jetzt können Sie Ihre Rails-Anwendung verbinden von anderswo auf Ihrem lokalen Netzwerk, indem Sie zu z.B. http://192.168.0.111:3000.

+1

Ist diese Änderung mit 4.2 gekommen? Ich habe einige andere Rails 4.x-Projekte und sie binden immer noch an 0.0.0.0 ... Danke, dass ich nicht einmal daran gedacht hätte, Rails selbst zu betrachten. – BrightBlue

+0

Ja, ich bin mir ziemlich sicher, dass dies in 4.2.0 eingeführt wurde. –

+0

gibt es eh dort, wo man diesen Standard mit 4.2.0 machen kann. es ist nervig, das zu jeder Zeit zu tippen. –

Verwandte Themen