Obtenir MongoDB sous Linux pour écouter les connexions distantes

J’ai réussi à installer MongoDB sur Windows (sur une machine locale) en tant que service, mais maintenant je veux déplacer MongoDb sur un serveur séparé. J’ai donc extrait l’archive tar sur un serveur virtuel sur le réseau (sous Linux).

Lorsque je me suis connecté au serveur (“testmongoserver”) en utilisant PuTTY depuis mon ordinateur local, j’ai démarré le serveur mongod et il m’a dit qu’il écoutait le port 28017 par défaut. La console mongo fonctionne également et m’a permis de créer une nouvelle firebase database (testdb) et d’y append des utilisateurs.

Cependant, je ne pouvais pas accéder au serveur à distance. Lorsque je tape testmongoserver:28017 la console HTTP ne s’ouvre pas comme localhost:28017 sur ma machine locale. Je ne peux pas non plus me connecter en utilisant des pilotes officiels et en fournissant une chaîne de connexion.

Quelles sont les étapes nécessaires pour installer MongoDB sous Linux, afin de pouvoir y accéder depuis une machine distante avec une testmongoserver:28017 connexion et utiliser sa console HTTP via testmongoserver:28017

Merci!

  1. Exécutez netstat -a sur le serveur mongo et vérifiez un port.
  2. Vérifiez les parameters DNS et vérifiez que le serveur Linux autorise les connexions externes.
  3. Vérifiez que mongodb peut accepter une connexion externe / distante.

Le port par défaut pour mongo est 27017. 28017 – port pour webstats.

Voir http://www.mongodb.org/display/DOCS/Security+and+Authentication#SecurityandAuthentication-Ports

1. Option IP de liaison

Bind IP est une option MongoDB qui limite les connexions aux adresses IP spécifiques.

Jetez un coup d’œil à votre fichier de configuration mongod. La plupart du temps, bind_ip est défini sur 127.0.0.1 pour des raisons de sécurité évidentes. Vous pouvez:

  1. Ajoutez votre adresse IP souhaitée en concaténant une liste de valeurs séparées par des virgules pour lier MongoDB à plusieurs adresses IP.
  2. Supprimer ou commenter (avec # caractère # ) la ligne bind_ip . Mais sachez que toutes les connexions à distance pourront connecter votre serveur MongoDB!

En savoir plus sur l’option de configuration bind_ip : https://docs.mongodb.com/manual/reference/configuration-options/#net.bindIp

Bind IP peut également être défini comme argument de commande: http://docs.mongodb.org/manual/reference/program/mongod/#cmdoption–bind_ip

2. pare-feu

Vérifiez que vous ne courez pas derrière un pare-feu

Assurez-vous que dans votre fichier /etc/mongodb.conf vous avez la ligne suivante,

 bind_ip = 0.0.0.0 

http://jitu-blog.blogspot.com.br/2013/06/allow-mongo-to-connect-from-remote-ip.html

Juste eu ce problème et cela a résolu le problème:

Editez /etc/mongod.conf avec sudo nano /etc/mongod.conf assurez-vous que la section net ressemble à la suivante (la liaison localhost par défaut ne permet pas l’access à distance):

 # network interfaces net: port: 27017 bindIp: 0.0.0.0 

Assurez-vous de redémarrer mongod lorsque vous avez terminé avec ci-dessus (en supposant que systemd ubuntu 16.04+, etc.):

sudo service mongod restart

De toute évidence, du sharepoint vue de la sécurité, si vous allez ouvrir mongo à votre réseau / le monde sera conscient de ses implications (le cas échéant).

Un autre problème peut être que le port mongodb n’est pas activé. Vérifiez, à partir d’un autre hôte, les ports activés sur votre serveur. Pour cela vous pouvez utiliser la commande:

 sudo nmap -P0 your_server_ip 

Vous pouvez obtenir une réponse comme celle-ci:

 Host is up (0.052s latency). Not shown: 997 filtered ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 443/tcp closed https 

Si vous utilisez un serveur virtuel dans le cloud, comme AWS, vous devez append une nouvelle règle pour append le port mongodb (27017 par défaut).

Important : Notez qu’avec cette configuration, tout le monde peut avoir access à votre firebase database

entrer la description de l'image ici