J'ai un simple serveur Sinatra que j'exécute via textmate mais je ne peux pas accéder à partir d'un autre ordinateur sur le même réseau.
J'exécute Ruby 1.9.3p327 et Sinatra 1.4.1 sur un Mac OS 10.8.3. Le pare-feu est désactivé.
J'ai testé le même scénario sur différents réseaux et ordinateurs.
L'ordinateur répond à des pings simples mais lorsque j'essaie de connecter le port 4567 telnet, je ne peux pas établir de connexion.
Il y avait un commit récent pour Sinatra qui a changé l'adresse d'écoute par défaut en localhost
de 0.0.0.0
en mode développement pour des raisons de sécurité.
Pour autoriser explicitement l'accès à partir du réseau, vous devez soit exécuter votre application dans un autre mode (par exemple, la production), soit définir bind
option sur 0.0.0.0
.
Vous pouvez le faire à partir de la ligne de commande en utilisant le serveur intégré en utilisant le -o
option:
$ ./my_sinatra_file.rb -o 0.0.0.0
Assurez-vous que le serveur sinatra n'écoute que sur l'adresse IP localhost (127.0.0.1).
J'interviens avec un peu d'informations supplémentaires qui pourraient aider des gens comme moi à se cogner la tête contre le mur.
Je suis sur une machine Windows, pas un Mac, et j'ai dû ouvrir le port que j'utilisais (par défaut pour Sinatra est 4567) au public (même si je suis sur un réseau universitaire).
Pour ce faire dans Windows 10:
Maintenant, une autre chose à considérer est de savoir qui peut accéder à votre serveur Web. Si vous voulez quelqu'un, choisissez public. Je ne sais pas avec certitude (et j'adorerais les commentaires des autres) comment obtenir uniquement des appareils sur le même réseau public pour se connecter. Vous pouvez également autoriser des adresses IP spécifiques, mais pour cela, je vous suggère de faire des recherches par vous-même.