已经知道了,想要限制特定的IP去访问连接mongo的话,是去修改配置文件:

vi /etc/mongod.conf

修改其中的bindIP

但是此处,需要搞清楚:

如何确定mongo的客户端的IP

mongo how check client ip

然后去本地去连接了远程的mongo了:

但是结果mongo shell中都还是无法打印出正在连接的ip[root@naturling-general-01 ~]# mongo

MongoDB shell version: 3.2.19

connecting to: test

> db.currentOp().inprog

> db.currentOp().inprog

> db.currentOp(true).inprog

> db.currentOp(true).inprog

进去对应数据库,也不行:> use gridfs

switched to db gridfs

> db.currentOp(true).inprog

去看服务端mongod的log:2018-04-08T17:32:04.543+0800 I NETWORK  [initandlisten] waiting for connections on port 27017

2018-04-08T17:32:12.235+0800 I NETWORK  [initandlisten] connection accepted from 127.0.0.1:35930 #1 (1 connection now open)

2018-04-08T17:32:12.237+0800 I ACCESS   [conn1] Unauthorized: not authorized on admin to execute command { getLog: "startupWarnings" }

2018-04-08T17:32:12.239+0800 I ACCESS   [conn1] Unauthorized: not authorized on admin to execute command { replSetGetStatus: 1.0, forShell: 1.0 }

2018-04-08T17:32:38.469+0800 I ACCESS   [conn1] Unauthorized: not authorized on admin to execute command { currentOp: 1.0 }

2018-04-08T17:32:56.056+0800 I NETWORK  [initandlisten] connection accepted from 112.4.64.141:49881 #2 (2 connections now open)

2018-04-08T17:32:56.208+0800 I ACCESS   [conn2] Successfully authenticated as principal gridfs on gridfs

2018-04-08T17:32:56.289+0800 I NETWORK  [initandlisten] connection accepted from 112.4.64.141:49882 #3 (3 connections now open)

2018-04-08T17:32:56.426+0800 I ACCESS   [conn3] Successfully authenticated as principal gridfs on gridfs

2018-04-08T17:32:56.513+0800 I NETWORK  [conn3] end connection 112.4.64.141:49882 (2 connections now open)

2018-04-08T17:32:56.513+0800 I NETWORK  [conn2] end connection 112.4.64.141:49881 (1 connection now open)

2018-04-08T17:33:01.485+0800 I NETWORK  [initandlisten] connection accepted from 112.4.64.141:49913 #4 (2 connections now open)

2018-04-08T17:33:01.588+0800 I ACCESS   [conn4] Successfully authenticated as principal gridfs on gridfs

2018-04-08T17:33:01.669+0800 I NETWORK  [initandlisten] connection accepted from 112.4.64.141:49914 #5 (3 connections now open)

2018-04-08T17:33:01.765+0800 I ACCESS   [conn5] Successfully authenticated as principal gridfs on gridfs

2018-04-08T17:33:01.864+0800 I NETWORK  [conn4] end connection 112.4.64.141:49913 (2 connections now open)

2018-04-08T17:33:01.865+0800 I NETWORK  [conn5] end connection 112.4.64.141:49914 (1 connection now open)

2018-04-08T17:33:05.178+0800 I NETWORK  [initandlisten] connection accepted from 112.4.64.141:49936 #6 (2 connections now open)

2018-04-08T17:33:05.301+0800 I ACCESS   [conn6] Successfully authenticated as principal gridfs on gridfs

2018-04-08T17:33:05.382+0800 I NETWORK  [initandlisten] connection accepted from 112.4.64.141:49937 #7 (3 connections now open)

2018-04-08T17:33:05.473+0800 I ACCESS   [conn7] Successfully authenticated as principal gridfs on gridfs

2018-04-08T17:33:07.218+0800 I NETWORK  [conn7] end connection 112.4.64.141:49937 (2 connections now open)

2018-04-08T17:33:07.219+0800 I NETWORK  [conn6] end connection 112.4.64.141:49936 (1 connection now open)

2018-04-08T17:33:09.472+0800 I ACCESS   [conn1] Unauthorized: not authorized on admin to execute command { currentOp: 1.0 }

2018-04-08T17:33:22.720+0800 I ACCESS   [conn1] Unauthorized: not authorized on admin to execute command { currentOp: 1.0, $all: true }

2018-04-08T17:34:11.478+0800 I NETWORK  [initandlisten] connection accepted from 112.4.64.141:50339 #8 (2 connections now open)

2018-04-08T17:34:11.614+0800 I ACCESS   [conn8] Successfully authenticated as principal gridfs on gridfs

2018-04-08T17:34:11.633+0800 I ACCESS   [conn8] Unauthorized: not authorized on admin to execute command { getLog: "startupWarnings" }

2018-04-08T17:34:11.713+0800 I ACCESS   [conn8] Unauthorized: not authorized on admin to execute command { replSetGetStatus: 1.0, forShell: 1.0 }

2018-04-08T17:34:23.127+0800 I ACCESS   [conn1] Unauthorized: not authorized on admin to execute command { currentOp: 1.0, $all: true }

2018-04-08T17:34:38.914+0800 I ACCESS   [conn1] Unauthorized: not authorized on admin to execute command { currentOp: 1.0, $all: true }

2018-04-08T17:36:42.435+0800 I NETWORK  [conn1] end connection 127.0.0.1:35930 (1 connection now open)

可以看出,先后3次的client的连接,都显示出了对应的ip(和端口)了:

112.4.64.141:49882

112.4.64.141:49913

112.4.64.141:49937

->从而确定了,此处的client的IP是:

112.4.64.141

另外的要加的IP:

同事的公司的IP:

112.4.64.138

对于:

net.bindIp

好像就是IP的列表,逗号隔开即可

所以接着去添加IP的限制:vi /etc/mongod.conf

26 # network interfaces

27 net:

28   port: 12345

29   bindIp: 127.0.0.1, 112.4.64.141 # Listen to specific IP

结果竟然重启mongod出错:

【总结】

mongod的配置中的:bindIp:主要指的是,mongod去监听listen哪个IP(的哪个port)端口

所以此处的IP都指的是:服务器本身的IP

典型的是:

127.0.0.1

等价于:localhost

新版mongo默认值就是127.0.0.1

服务器的内网/局域网/私有 IP

比如此处的:172.16.141.197

可以通过ifconfig或阿里云ECS服务器控制后台中找到

而不是外网的,作为mongo的client的IP的限制

这点很容易搞混淆

也有很多人,包括我,之前搞错了,以为是用来限制,只允许特定外网IP能访问mongo的呢

如果有多个IP,用逗号隔开

比如:

bindIp: 127.0.0.1,172.16.141.197

要注意:逗号中间不能有空格,否则会报错:

getaddrinfo(” 112.4.64.141″) failed: Name or service not known

而想要实现:

限制外网访问mongo,只允许特定的IP进来访问mongo的话,则:

Mongo的配置中,是无法实现这个效果的。

只能换用其他办法,比如:

通过设置防火墙,添加:

只允许某些IP,入网方向,能够访问mongo的对应的端口

从而禁止掉其他的IP访问mongo

而此处的阿里云的ECS服务器中,可以通过设置安全组,实现和防火墙一样的效果。

具体设置办法:

进去阿里云控制后台-》云服务器 ECS-》安全组-〉你的ECS服务器所在的区域-》对应的ECS服务器-〉配置规则:

增加2个规则:

(1)规则1: 允许特定的IP(单个IP,某个IP地址段(内的所有的IP),某几个IP)允许访问某端口

(2)规则2:禁止掉,其他的IP访问该端口

举例如下:授权策略协议类型端口范围授权类型授权对象描述优先级

允许自定义 TCP12345/12345地址段访问112.4.64.141允许外网特定IP访问MongoDB数据库1

拒绝自定义 TCP12345/12345地址段访问0.0.0.0/0禁止外网别的IP访问MongoDB数据库2

详见:

ip地址配置 mongodb_【已解决】给MongoDB限制IP访问相关推荐

  1. 计算机ip地址配置参数,如何正确设置电脑的IP地址和DNS等参数[图文]

    使用宽带路由器的话一般建议手工指定电脑的IP地址和DNS等参数,设置方法参考下文. 如果你使用的是Windows 2000或Windows XP系统,请点击 "网上邻居"――> ...

  2. 网络适配器本地连接没有有效ip地址配置错误的解决办法

    作者:朱金灿 来源:http://blog.csdn.net/clever101 win server2008通过一台win xp的共享网络来上网,采用ipv4,网址设置如下: win xp是可以上网 ...

  3. linux使用running网卡ping,Linux CentOS 7 IP地址配置及网络问题排查

    一.Linux CentOS 7 IP地址配置 输入命令"ifconfig" 查看本机IP地址.[[email protected] ~]# ifconfig ens33: fla ...

  4. 计算机网络·ip地址计算+ip地址配置+静态路由配置

    看完能会做计网作业你说神不神奇 一.解决各类IP地址 二.搭建网络拓扑图 三.配置ip地址 四.配置静态路由 某公司内部的网络拓扑如下图所示: 其中网络1有主机120台,网络2有主机60台,网络3有主 ...

  5. IP地址配置冲突导致路由振荡怎么办

    本期小编为大家带来的是:由于IP地址配置冲突导致路由振荡,使用户业务时断时通. 背景知识: IP地址在一个局域网内具有唯一性,也就是说局域网内,不能为不同的设备配置相同的IP地址. 组网情况: RTA ...

  6. 远程拷贝、查看端口、vim常见快捷键、查找替换命令、grep命令、查看存储空间的命令、chkconfig命令、系统自动启动级别、主机名配置、IP地址配置、域名映射、防火墙设置

    2.1.远程拷贝 (将/export/servers/hadoop上的文件拷贝到bigdate@192.168.1.1:/export/servers/ ) scp –r /export/server ...

  7. ip服务器ip地址信息配置,服务器ip地址配置

    服务器ip地址配置 内容精选 换一换 当创建文件系统后,您需要将文件系统挂载至云服务器上,在为root用户创建一个本地目录.如已成功挂载文件系统,可跳过此章节.请记录步骤4的本地目录后,按照为每个用户 ...

  8. 虚拟机如何配置网络ip地址_木杉入门Elasticsearch(2):虚拟机IP地址配置

    木杉入门 本系列的目标是在本地搭建一个Elasticsearch的服务集群,通过在阿里云服务器搭建FRP通道对外提供服务,为小规模应用提供一种高性价比的解决思路. 系列内容: 木杉入门Elastics ...

  9. 配置计算机名及工作组;TCP/IP地址配置;网络连通性测试

    1:配置计算机名及工作组 1.1 问题 本例要求为修改计算机名并加入工作组: 1)设置计算机名:姓名拼音 2)设置工作组名:TARENA-NETWORK 1.2 方案 修改Windows 2008服务 ...

最新文章

  1. Python-S13-day2-之购物车
  2. SAP Tax计算逻辑
  3. Unity——Shader
  4. 以太网帧的最小长度_802.3?以太网?看完你就懂了
  5. /usr/bin/ld: skipping incompatible -转
  6. 零基础学python还是c语言-为什么大一先学C语言,而不是Python,你知道为什么吗?...
  7. 自动化部署之git merge和git rebase的区别
  8. html代码在线获取,在线客服系统html代码的获取与生成方式 - 快商通
  9. 计算机编码怎么记忆,怎样有效记忆数字编码?
  10. 夜深人静写算法(十四)- 基数估计 (Cardinality Estimation)
  11. win10专业版和企业版的区别_Win10专业版和家庭版有什么区别?
  12. Vue-电子签名(E-Signature)
  13. 设计模式之访问者模式(Vistor)
  14. 2019最新抖音全方位数据分析报告
  15. MySQL中DML语言的插入语句、修改语句、删除语句(增删改)——笨蛋笔记4
  16. c语言怎么描述逢2进1,C语言之进制
  17. 蓝牙nrf52832的架构和开发
  18. Linux test
  19. dwcc怎么设置html默认,Dreamweaver CC2018写div自适应页面布局的教程
  20. 如何在本地上次文件到GitHub

热门文章

  1. cad输入法自动切换_银河麒麟操作系统用户教程(八):如何设置输入法?
  2. 展厅设计全面优化企业形象,取得客户的信任为合作打下良好的基础
  3. Chrome插件 Tamper Dev
  4. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java智能物流管理系统k852w
  5. 返回值取vector容器的前n个元素
  6. JavaSwing_4.1: JFrame(窗口)
  7. Zabbix简单检查的使用
  8. 【Hive】快速入门~
  9. 哪些外贸软件比较好用?常用外贸软件有哪些?
  10. Arrays.sort与Arrays.parallelSort区别