Greifen Sie von einem anderen PC auf WEBrick zu

8

Ich habe verwendet:

%Vor%

Aber ich konnte die Webanwendung nicht von einem anderen PC aus erreichen.

Wie kann ich dies in Rails 3 erreichen?

    
mlzboy 28.11.2010, 13:19
quelle

5 Antworten

14

Die Standardbindungs-IP ist 0.0.0.0. Das Problem kann also darin bestehen, dass Ihre Firewall diesen Port blockiert. Versuchen Sie, rails s -b IP_ADDRESS -p PORT zu verwenden, um sicher zu sein, dass das Problem mit Ihrer Firewall zusammenhängt.

Übrigens. Linux, Osx, Windows?

    
Nucc 28.11.2010, 15:14
quelle
5

Nucc hat es richtig gemacht. Sie sollten in der Lage sein, über Ihre IP-Adresse auf die Website zuzugreifen, aber von dem, was ich verstehe, versuchen Sie es über 0.0.0.0 zu erreichen (ich habe irrtümlich geglaubt, dass dies eine Null-Adresse ist), da Nucc korrekt 0.0.0.0 Maps angibt INADDR_ANY wird also allen Ihren Netzwerkschnittstellen zugeordnet.

Wenn Sie eine bestimmte IP-Adresse angeben möchten, verwenden Sie (vorausgesetzt Ihre IP-Adresse lautet 192.168.0.50):

%Vor%

Ich würde den Standard-Port bei 3000 beibehalten, damit Sie nicht mit einem echten Webserver in Konflikt geraten, wenn Sie einen auf Ihrem Computer ausführen, aber wenn Sie nicht in der Lage sind, ihn wie folgt auf 80 zu ändern:

%Vor%

Der Befehlszeilenparameter -b ändert die IP-Adresse, an die WEBrick bindet, und der Parameter -p ändert den Standardport. Für eine vollständige Liste der Optionen geben Sie Folgendes ein:

%Vor%

Wie bereits erwähnt, müssen Sie sicherstellen, dass der Port offen ist, wenn Sie eine Software-Firewall verwenden. Wenn Sie nicht versuchen, 0.0.0.0 zu verwenden, aber die richtige IP-Adresse vom zweiten Computer verwendet haben, ist dies wahrscheinlich der Schuldige.

Um nun von einem anderen Computer zu Ihrer Rails-Site zu gelangen, tippen Sie einfach eine Augenbraue ein:

%Vor%

Oder wenn Sie den Standard-Port auf den Standard-Port von 80 geändert haben, können Sie einfach Folgendes verwenden:

%Vor%     
Mike Bethany 28.11.2010 16:17
quelle
4

(Entschuldigung, ich kann nicht antworten: ()

  

"Die verbindliche Standard-IP-Adresse ist 0.0.0.0, die von einem anderen Computer aus nicht erreichbar ist, da es sich um eine nicht routingfähige Adresse handelt."

Tut mir leid, aber es ist nicht wahr. Hier bedeutet 0.0.0.0 INADDR_ANY, also bindet es an alle Schnittstellen ...

    
Nucc 28.11.2010 18:24
quelle
2

Wenn Verbindungen über LAN hergestellt werden, verwenden Sie den Befehl ifconfig in Ihrem Terminal, um die Adresse inet zu finden > 192.148.0.100, und verwenden Sie 192.148.0.100:3000 , 3000 ist der Port, auf dem der Server ausgeführt wird.

    
Nithin 15.04.2013 14:19
quelle
0

Stellen Sie sicher, dass keine Firewall diesen Port blockiert. Stellen Sie außerdem sicher, dass Sie den Anschluss einschließen, wenn Sie versuchen, es von dem anderen Computer zu schlagen. Es sollte einfach so weit wie Schienen gehen.

    
karmajunkie 28.11.2010 14:15
quelle