it-swarm.com.de

Es kann keine Verbindung zum Mongo auf dem Remote-Server hergestellt werden

Ich habe mongo auf machine1 (Ubuntu 14.04.3 LTS server) in meinem lokalen Netzwerk installiert. Ich habe auch den Port 27017, wie in this guide erwähnt, mit folgenden Befehlen geöffnet:

Sudo iptables -A INPUT -p tcp --destination-port 27017 -m state --state NEW,ESTABLISHED -j ACCEPT
Sudo iptables -A OUTPUT  -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT

Aktuelle Regeln sind (iptables -L):

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:27017 state NEW,ESTABLISHED

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere             tcp spt:27017 state ESTABLISHED

Ich kann jedoch keine Verbindung zu diesem Port von Maschine2 (im selben Netzwerk) herstellen:

$ mongo --Host 192.168.0.108
MongoDB Shell version: 3.0.4
connecting to: 192.168.0.108:27017/test
2016-01-23T18:02:14.848+0530 W NETWORK  Failed to connect to 192.168.0.108:27017, reason: errno:61 Connection refused
2016-01-23T18:02:14.850+0530 E QUERY    Error: couldn't connect to server 192.168.0.108:27017 (192.168.0.108), connection attempt failed
    at connect (src/mongo/Shell/mongo.js:181:14)
    at (connect):1:6 at src/mongo/Shell/mongo.js:181
exception: connect failed

Ich habe auch versucht zu prüfen, ob der Port geöffnet ist oder nicht:

$ nc -v 192.168.0.108 27017
nc: connectx to 192.168.0.108 port 27017 (tcp) failed: Connection refused

Ich bin mir nicht sicher, was mir fehlt. Muss ein dummer Fehler sein, da ich zum ersten Mal Mongo einrichte. Pls helfen.

Update (für die in aktuellen Antworten aufgeworfenen Zweifel)

  1. Ja, es läuft. Ich kann eine Verbindung zum Mongo herstellen, der sich auf derselben Maschine befindet, aber nicht auf der anderen Maschine. Der Daemon läuft: $ service mongod status mongod start/running, process 31205 und der Port ist 27017 $ Sudo netstat -tulpn |grep 27017 tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 31205/mongod
  2. Ich änderte den bind_ip in 0.0.0.0 und startete den Mongo neu. Es kommt immer noch der gleiche Fehler.

Mongo-Protokolle:

$ cat /var/log/mongodb/mongod.log
2016-01-23T16:28:13.155+0530 I CONTROL  [initandlisten] MongoDB starting : pid=31205 port=27017 dbpath=/var/lib/mongodb 64-bit Host=dexter
2016-01-23T16:28:13.156+0530 I CONTROL  [initandlisten] db version v3.2.1
2016-01-23T16:28:13.156+0530 I CONTROL  [initandlisten] git version: a14d55980c2cdc565d4704a7e3ad37e4e535c1b2
2016-01-23T16:28:13.156+0530 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.1f 6 Jan 2014
2016-01-23T16:28:13.156+0530 I CONTROL  [initandlisten] allocator: tcmalloc
2016-01-23T16:28:13.156+0530 I CONTROL  [initandlisten] modules: none
2016-01-23T16:28:13.156+0530 I CONTROL  [initandlisten] build environment:
2016-01-23T16:28:13.156+0530 I CONTROL  [initandlisten]     distmod: ubuntu1404
2016-01-23T16:28:13.156+0530 I CONTROL  [initandlisten]     distarch: x86_64
2016-01-23T16:28:13.156+0530 I CONTROL  [initandlisten]     target_Arch: x86_64
2016-01-23T16:28:13.156+0530 I CONTROL  [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1", port: 27017 }, storage: { dbPath: "/var/lib/mongodb", journal: { enabled: true } }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } }
2016-01-23T16:28:13.173+0530 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=1G,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2016-01-23T16:28:14.444+0530 I CONTROL  [initandlisten]
2016-01-23T16:28:14.444+0530 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2016-01-23T16:28:14.444+0530 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2016-01-23T16:28:14.444+0530 I CONTROL  [initandlisten]
2016-01-23T16:28:14.444+0530 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2016-01-23T16:28:14.444+0530 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2016-01-23T16:28:14.444+0530 I CONTROL  [initandlisten]
2016-01-23T16:28:14.444+0530 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/var/lib/mongodb/diagnostic.data'
2016-01-23T16:28:14.444+0530 I NETWORK  [HostnameCanonicalizationWorker] Starting hostname canonicalization worker
2016-01-23T16:28:14.949+0530 I NETWORK  [initandlisten] waiting for connections on port 27017
2016-01-23T16:38:37.046+0530 I NETWORK  [initandlisten] connection accepted from 127.0.0.1:37032 #1 (1 connection now open)
2016-01-23T16:39:31.447+0530 I NETWORK  [conn1] end connection 127.0.0.1:37032 (0 connections now open)
2016-01-23T16:49:24.240+0530 I NETWORK  [initandlisten] connection accepted from 127.0.0.1:37033 #2 (1 connection now open)
2016-01-23T16:49:38.249+0530 I NETWORK  [conn2] end connection 127.0.0.1:37033 (0 connections now open)
2016-01-23T16:51:51.707+0530 I NETWORK  [initandlisten] connection accepted from 127.0.0.1:37034 #3 (1 connection now open)
2016-01-23T16:51:55.785+0530 I NETWORK  [conn3] end connection 127.0.0.1:37034 (0 connections now open)
2016-01-23T17:32:15.546+0530 I NETWORK  [initandlisten] connection accepted from 127.0.0.1:37036 #4 (1 connection now open)
2016-01-23T17:32:21.180+0530 I NETWORK  [conn4] end connection 127.0.0.1:37036 (0 connections now open)
2016-01-23T18:11:57.885+0530 I NETWORK  [initandlisten] connection accepted from 127.0.0.1:37037 #5 (1 connection now open)
2016-01-23T18:29:55.365+0530 I NETWORK  [conn5] end connection 127.0.0.1:37037 (0 connections now open)
13
Abhishek Gupta

Das Problem war, dass bindIp sich nicht geändert hat. Es gab einige Probleme beim Neustart des Mongo von meiner Seite. 

Die Angewohnheit sollte sein, zu überprüfen, ob sich der bindIp tatsächlich geändert hat oder nicht. (mit Sudo netstat -tulpn | grep 27017)

6
Abhishek Gupta

stellen Sie sicher, dass der Dämon mongodb ausgeführt wird und dass der Port 0.0.0.0, aber nicht der Port 127.0.0.1 überwacht wird

für mein lokales mongodb hat es beispielsweise diese config:

[[email protected] ~]$ cat /etc/mongod.conf 
##
### Basic Defaults
##

# Comma separated list of ip addresses to listen on (all local ips by default)
bind_ip = 127.0.0.1

# Specify port number (27017 by default)
#port = 27017

wenn der mongodb-Server auf Remote-Verbindungen wartet, können Sie dies ändern

# Comma separated list of ip addresses to listen on (all local ips by default)
bind_ip = 0.0.0.0
17
vodolaz095

Mit der mongoDB-Serverversion 3.6.4, Ubuntu 16.4.4, habe ich dies gelöst, indem ich den Abschnitt net in der Datei /etc/mongod.conf so eingestellt habe:

net:
  port: 27017
  bindIpAll: true
#  bindIp: 127.0.0.1
8
Mirko

Stellen Sie sicher, dass auf Ihrem Rechner1 ein Daemon läuft, der Port 27017 überwacht. Wir haben den gleichen Fehler erhalten und festgestellt, dass der Daemon nicht ausgeführt wurde. 

0
Ashish Anand