Impossible d'accéder aux ports attribués à Rails 4.2, mais 4.04 fonctionne correctement


8

J'ai installé Ruby 2.1.2 et Rails 4.2.

L'installation du bundle s'exécute sans erreur.

Je peux faire un Rails C sans erreur.

Rails s -p3004 se lance avec webrick ou thin sans erreur

Lorsque je navigue vers mytestsite: 3004 safari, firefox et chrome, tous indiquent "impossible de se connecter au serveur"

Aucune erreur n'apparaît dans les journaux système; syslog, lfd.log, auth.log ou l'un des journaux apache.

Si je lance mon site 4.04, les ports 3001, 3002 fonctionnent correctement. Si j'arrête 4.04 et lance 4.2 sur le port 3001 ou 3002, j'obtiens l'erreur «impossible de se connecter au serveur». Cela semble signifier pour moi que ce n'est pas un problème de pare-feu bloquant le port. Néanmoins, iptables -L signale que le port 3004 est ouvert:

ACCEPT     tcp  --  anywhere             anywhere             ctstate NEW tcp dpt:3004

Rapports Rails:

=> Booting WEBrick  
=> Rails 4.2.0.beta1 application starting in development on http://localhost:3004   
=> Run `rails server -h` for more startup options  
=> Ctrl-C to shutdown server  
[2014-09-02 21:31:06] INFO WEBrick 1.3.1  
[2014-09-02 21:31:06] INFO ruby 2.1.1 (2014-02-24) [x86_64-linux]  
[2014-09-02 21:31:06] INFO WEBrick::HTTPServer#start: pid=4599 port=3004  

(même résultat avec mince).

Telnet localhost 3004 fonctionne à partir du serveur mais telnet d'un autre serveur au port et à l'adresse IP entraîne une connexion refusée.

et ps signale que le programme est chargé:

ps aux|grep 3004  
user 1062 0.0 0.5 578600 183996 pts/2 Sl+ 20:15 0:03 /home/user/.rvm/rubies/ruby-    2.1.1/bin/ruby bin/rails s -p3004

ce qui est également confirmé par netstat:

netstat -tpln | grep 3004  
tcp 0 0 127.0.0.1:3004 0.0.0.0:* LISTEN 1062/ruby  

mais mmap signale que le port est fermé:

Starting Nmap 6.40 ( http://nmap.org ) at 2014-09-02 21:33 UTC  
Nmap scan report for localhost (127.0.0.1)  
Host is up (0.000059s latency).  
rDNS record for 127.0.x.1: local_host.local_domain  
PORT STATE SERVICE  
3004/udp closed unknown  

Et un telnet au serveur 3004 signale que la connexion a été refusée.

Comme je l'ai dit, je pense que c'était un problème de pare-feu, sauf que le passage au port 3001, que je sais fonctionner avec Rails 4.04, échoue avec 4.2. Quelqu'un a des suggestions?

Réponses:


16

WEBrick lié à 127.0.0.1 plutôt qu'à INADDR_ANY, vous ne pouvez donc y accéder que via cette adresse. Si vous souhaitez définir l'adresse à laquelle il se lie, utilisez l' -boption. Par exemple:

rails s -b 0.0.0.0 -p 3004
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.