2016-01-23 9 views
12

Ich habe Mongo auf Maschine1 (Ubuntu 14.04.3 LTS server) in meinem lokalen Netzwerk installiert. Ich habe auch eröffnen den Port 27017 wie in this Führung mit folgenden Befehlen erwähnt:Verbindung mit Mongo auf Remote-Server nicht möglich

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 

Aber ich bin nicht in der Lage zu diesem Port verbinden von Maschine 2 (im selben Netzwerk):

$ 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 überprü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 ich vermisse. Muss ein dummer Fehler sein, da ich zum ersten Mal Mongo aufstelle. Bitte helfen.

Update (für die Zweifel in der aktuellen Antworten angehoben)

  1. Ja seinen Lauf. Ich bin in der Lage, mit Mongo die gleiche Maschine aber nicht von der anderen Maschine zu verbinden. 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 habe die bind_ip zu 0.0.0.0 geändert und Mongo neu gestartet. Immer noch kommt der gleiche Fehler.

Mongo protokolliert:

$ 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) 
+0

Wäre es möglich, mongod Server-Logs irgendwo hinzuzufügen? Die ersten 100 Zeilen wären genug. – nobody

+0

@nobody Aktualisiert die Mongo-Logs –

+0

Ich hoffe, Sie haben schon einen Hinweis von den Protokollen. – nobody

Antwort

5

Das Problem bindIp ändern war nicht ändern. Es gab ein Problem beim Neustart von Mongo von meiner Seite.

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

0

Vergewissern Sie sich, einen Daemon, der auf machine1 läuft, die in den Hafen hören 27017. Wir waren die gleichen Fehler und festgestellt, dass Daemon nicht ausgeführt wurde.

+0

Ja, es läuft. Ich bin in der Lage, mit Mongo die gleiche Maschine aber nicht von der anderen Maschine zu verbinden.Der Dämon läuft: '$ service mongod Status mongod Start/Laufen, Prozess 31205' und der Port 27017 ' $ sudo netstat -tulpn | grep 27017 tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 31205/mongod' –

11

sicher, dass mongodb Dämon läuft, und hört auf 0.0.0.0, aber nicht 127.0.0.1 Port

zum Beispiel für meine lokalen mongodb, hat es 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 

für mongodb Server für Remote-Verbindungen zu hören, können Sie

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

Ich habe 'bind_ip' geändert und mongo neu gestartet. Immer noch kommt der gleiche Fehler. –

+0

ist die Firewall geöffnet? Welche Linux Distribution wird verwendet? ist SELINUX aktiviert? Gibt es irgendwelche Informationen in mongodb-Logs? – vodolaz095

+0

Was meinst du mit Firewall geöffnet? Ich weiß nicht viel über Firewall. Ich habe gerade die Regeln in 'iptables' hinzugefügt. Distro: '$ cat/etc/* Release DISTRIB_ID = Ubuntu DISTRIB_RELEASE = 14,04 DISTRIB_CODENAME = treuen DISTRIB_DESCRIPTION = "Ubuntu 14.04.3 LTS" NAME = "Ubuntu" VERSION = "14.04.3 LTS, Trusty Tahr" ID = ubuntu ID_LIKE = debian pretty_name = "Ubuntu 14.04.3 LTS" VERSION_ID = "14.04" ' Es gibt nichts in Protokollen ist –