我是linux服务器的新手。我在centos 6.3上安装了mongodb。我在这个命令中运行mongodb服务器:
Message:
Stacktrace:
at FirefoxDriver.prototype.findElementInternal_ (file:///c:/users/kubik/appdata/local/temp/tmp_sthxl/extensions/fxdriver@googlecode.com/components/driver-component.js:10659)
at FirefoxDriver.prototype.findElement (file:///c:/users/kubik/appdata/local/temp/tmp_sthxl/extensions/fxdriver@googlecode.com/components/driver-component.js:10668)
at DelayedCommand.prototype.executeInternal_/h (file:///c:/users/kubik/appdata/local/temp/tmp_sthxl/extensions/fxdriver@googlecode.com/components/command-processor.js:12534)
at DelayedCommand.prototype.executeInternal_ (file:///c:/users/kubik/appdata/local/temp/tmp_sthxl/extensions/fxdriver@googlecode.com/components/command-processor.js:12539)
at DelayedCommand.prototype.execute/< (file:///c:/users/kubik/appdata/local/temp/tmp_sthxl/extensions/fxdriver@googlecode.com/components/command-processor.js:12481)
[Finished in 30.3s]
我确信我已经让bind_ip听取所有ip:
mongod -config /etc/mongodb.conf &
但是,我也无法进行mongodb远程访问。我的服务器IP是192.168.2.24,我在我的本地电脑上运行mongo来访问这个mongodb,它告诉我这个错误:
# mongodb.conf
# Where to store the data.
dbpath=/var/lib/mongodb
#where to log
logpath=/var/log/mongodb/mongodb.log
logappend=true
rest = true
bind_ip = 0.0.0.0
port = 27017
但是,我可以使用此命令在mongodb安装的服务器中访问此mongodb:
Error: couldn't connect to server 192.168.2.24:2701
7 (192.168.2.24), connection attempt failed at src/mongo/shell/mongo.js:148
exception: connect failed
所以,我认为制作mongo远程访问可能会成功,但是linux服务器可能有问题,也许是防火墙?因此,我尝试使用该命令检查端口是否为远程访问打开:
mongo --host 192.168.2.24
没有返回任何内容,然后我使用此命令将端口添加到iptalbes:
iptables -L -n | grep 27017
并保存iptables&amp;重启它:
iptables -A INPUT -p tcp --dport 27017 -j ACCEPT
iptables -A OUTPUT -p tcp --source-port 27017 -m state --state ESTABLISHED -j ACCEPT
我可以看到27017的端口被添加到iptables列表中,但它仍然无法正常工作。我认为打开27017港口可能不会成功。我该怎么办呢?我是linux服务器的新手,就像我的linux服务器pc离线一样。所以它不能使用关于“yum”的命令。请详细给我解决方案。非常感谢。
答案 0 :(得分:2)
好像防火墙配置不正确。
免责声明:摆弄防火墙设置会带来安全隐患。 除非您知道自己要做什么,否则不要在生产系统上使用以下程序! 如果有任何疑问,请回到系统管理员或DBA。
简单地说,防火墙限制了未授权方在受保护机器上运行的MongoDB等服务的访问权限。
CentOS仅允许默认访问ssh。我们需要配置防火墙,以便您可以访问MongoDB服务。
我们将安装由CentOS提供的小工具&lt; 7(版本7提供了不同的方法),简化了iptables的使用,netfilter反过来配置root,Linux内核框架允许操作网络数据包 - 从而提供防火墙功能(以及其他酷)的东西)。
然后,我们将使用所述工具配置防火墙功能,以便可以从任何地方访问MongoDB 。我无法为您提供更安全的配置,因为我不知道您的网络设置。同样,在生产系统上使用此过程需要您自担风险。你被警告了!
system-config-firewall-tui
首先,您必须以身份登录CentOS框,这样可以安装和卸载软件包并更改系统范围的配置。
然后,您需要发出(美元符号表示shell提示符)
$ yum -y install system-config-firewall-tui
结果看起来应该是这样的
接下来,您需要启动刚刚安装的工具
$ system-config-firewall-tui
将创建一个小命令行GUI:
不要简单地禁用防火墙!。
分别按 Tab 或→| ,直到&#34;自定义&#34;按钮突出显示。现在按↵。在下一个屏幕中,突出显示&#34;转发&#34;然后按↵。您现在应该位于名为&#34;其他端口&#34;,
的屏幕中在其中突出显示&#34;添加&#34;然后按↵。这将带您进入一个屏幕&#34;端口和协议&#34;你填写如下所示
配置说明:MongoDB使用port 27017 by default for a standalone instance与客户端进行通信,并在上进行侦听。请注意,如果您不运行独立实例或副本集,则可能需要根据引用的列表更改端口。
下一步是突出显示&#34; OK&#34;并按↵,这似乎清除了输入。但是,我们刚刚进行的配置已保存。所以我们将按&#34;取消&#34;并返回&#34;其他港口&#34;屏幕,现在应该是这样的:
现在,我们按&#34;关闭&#34;并返回&#34; system-config-firewall-tui&#34;的主屏幕。在这里,我们按&#34; Ok&#34;并且该工具会询问您是否确实要应用您刚才所做的更改。花点时间真的想一想。 ;)
按&#34;是&#34;现在将修改Linux内核执行的防火墙规则。
我们可以通过发出
来验证$ iptables -L -n | grep 27017
应该导致下面的输出:
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:27017
现在您应该能够连接到MongoDB服务器。