我已经在本地网络的machine1(Ubuntu 14.04.3 LTS server)上安装了mongo.我还使用以下命令打开了this指南中提到的端口27017:

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

目前的规则是(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

但我无法从machine2(在同一网络中)连接到此端口:

$ 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

我还try 判断端口是否打开:

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

我不确定我错过了什么.一定是我第一次设置mongo时犯了个愚蠢的错误.请帮忙.

Update (for the doubts raised in current answers)

  1. 是的,它在跑.我可以从同一台机器连接到mongo,但不能从另一台机器连接.守护进程正在运行:$ service mongod status mongod start/running, process 31205,端口为27017 $ sudo netstat -tulpn |grep 27017 tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 31205/mongod
  2. 我把bind_ip换成了0.0.0.0,重新启动了mongo.但同样的错误仍在发生.

Mongo logs:

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

推荐答案

问题是bindIp没有改变.从我这边重启mongo有点问题.

习惯应该是验证bindIp是否真的改变了.(使用sudo netstat -tulpn | grep 27017)

Mongodb相关问答推荐

MongoDB中的字符串聚合

如何匹配 MongoDB 中同一文档中两个字段的比较?

mongoDB中数组中的聚合和元素

Mongodb聚合中基于其他字段值的多个条件的动态新字段值

映射数组导致 mongodb 聚合

mongoose中的 required是什么意思?

Meteor 方法与deny/allow 规则

如何在mongo中插入带有日期的文档?

如何更新 mongodb 文档以向数组添加新元素?

什么是 mongodb 中的admin数据库?

如何在 MongoDB 聚合查询中使用 $hint?

如何使用node.js http服务器从mongodb返回大量行?

带有 Java 驱动程序的 MongoDB 聚合

MongoDB限制内存

Java Mongodb 正则表达式查询

判断 mongoDB 是否连接

查询不等于 null 或空的地方

如何向 mongodb 2.6 添加身份验证?

对于社交网站(使用 Ruby on Rails 开发)来说,MongoDB 会是一个好主意吗?

使用 Mongoose ORM 的杀手锏是什么?