8 votes

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

J'ai Ruby 2.1.2 installé et Rails 4.2.

Bundle install s'exécute sans erreur.

Je peux faire un Rails C sans erreur.

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

Quand je navigue jusqu'à mytestsite:3004 safari, firefox et chrome signalent tous "impossible de se connecter au serveur"

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

Si je lance mon site 4.04, les ports 3001, 3002 fonctionnent bien. Si je ferme 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 indique que le port 3004 est ouvert:

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

Rails rapporte:

=> Démarrage de WEBrick
=> Application Rails 4.2.0.beta1 démarrée en mode développement sur http://localhost:3004
=> Exécutez `rails server -h` pour plus d'options de démarrage
=> Ctrl-C pour arrêter le serveur
[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 thin).

Le telnet localhost 3004 fonctionne depuis le serveur, mais le telnet depuis un autre serveur vers le port et l'adresse IP entraîne une connexion refusée.

et ps rapporte 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 indique que le port est fermé:

Démarrage de Nmap 6.40 ( http://nmap.org ) à 2014-09-02 21:33 UTC
Rapport de scan Nmap pour localhost (127.0.0.1)
L'hôte est actif (latence de 0,000059s).
Enregistrement rDNS pour 127.0.x.1: local_host.local_domain
ÉTAT DU PORT SERVICE
3004/udp fermé inconnu

Et un telnet vers le serveur 3004 signale une connexion refusée.

Comme je l'ai dit, je pensais que c'était un problème de pare-feu, sauf que le changement de port à 3001, qui fonctionne avec Rails 4.04, échoue avec 4.2. Des suggestions quelqu'un?

16voto

Michael Hampton Points 232226

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

rails s -b 0.0.0.0 -p 3004

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X