Ottenere MongoDB su Linux per ascoltare le connessioni remote

Ho installato con successo MongoDB su Windows (su un computer locale) come servizio, ma ora voglio spostare MongoDb su un server separato. Così ho estratto il tarball su un server virtuale sulla rete (eseguendo linux).

Quando mi sono collegato al server (“testmongoserver”) usando PuTTY dal mio computer locale, ho avviato il server mongod e mi ha detto che stava ascoltando la porta 28017 predefinita. Anche la console mongo funziona e mi ha permesso di creare un nuovo database (testdb) e di aggiungervi utenti.

Tuttavia, non ho potuto accedere al server da remoto. Quando testmongoserver:28017 non apre la console HTTP come localhost:28017 sul mio computer locale. Inoltre, non riesco a collegarmi utilizzando driver ufficiali e fornendo un connectiontring.

Quali sono i passaggi necessari per installare MongoDB su Linux, in modo che potessi accedervi da una macchina remota con un connectiontring e utilizzare la sua console HTTP tramite testmongoserver:28017

Grazie!

  1. Esegui netstat -a sul server mongo e controlla una porta.
  2. Controlla le impostazioni DNS e verifica che il server Linux consenta connessioni esterne.
  3. Verificare che mongodb possa accettare una connessione esterna / remota.

La porta predefinita per mongo è 27017. 28017 – porta per webstats.

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

1. Opzione IP di binding

Bind IP è un’opzione MongoDB che limita le connessioni agli IP specifici.

Dai un’occhiata al tuo file di configurazione di mongod, il più delle volte bind_ip è impostato su 127.0.0.1 per ovvi motivi di sicurezza. Puoi:

  1. Aggiungi l’IP desiderato concatenando un elenco di valori separati da virgola per associare MongoDB a più indirizzi IP.
  2. Rimuovi o commenta (con # carattere) la linea bind_ip . Ma tieni presente che tutte le connessioni remote saranno in grado di connettere il tuo server MongoDB!

Ulteriori informazioni bind_ip configurazione bind_ip : https://docs.mongodb.com/manual/reference/configuration-options/#net.bindIp

Bind IP può anche essere impostato come argomento di comando: http://docs.mongodb.org/manual/reference/program/mongod/#cmdoption–bind_ip

2. Firewall

Verifica di non essere in esecuzione dietro un firewall

Assicurati che nel tuo file /etc/mongodb.conf hai la seguente riga,

 bind_ip = 0.0.0.0 

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

Ho appena avuto questo problema e questo l’ha risolto:

Modifica /etc/mongod.conf con sudo nano /etc/mongod.conf assicurati che la sezione net abbia un aspetto simile al seguente (l’associazione localhost per impostazione predefinita non consente l’accesso remoto):

 # network interfaces net: port: 27017 bindIp: 0.0.0.0 

Assicurati di riavviare mongod quando hai finito con sopra (assumendo systemd ubuntu 16.04+ ecc.):

sudo service mongod restart

Ovviamente dal punto di vista della sicurezza se stai per aprire il mongo alla tua rete / il mondo sii consapevole delle implicazioni di questo (se esiste)

Un altro problema potrebbe essere che la porta mongodb non è abilitata. Verifica, da un altro host, le porte abilitate sul tuo server. Per questo puoi usare il comando:

 sudo nmap -P0 your_server_ip 

Puoi ottenere una risposta come questa:

 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 

Se si utilizza un server virtuale nel cloud, come AWS, è necessario aggiungere una nuova regola per aggiungere la porta mongodb (27017 per impostazione predefinita).

Importante : nota che con questa configurazione chiunque può avere accesso al tuo database

inserisci la descrizione dell'immagine qui