指定其它IP访问本机

环境

CentOS 6.x + mongoDB 4.2

mongoDB 服务端IP:192.168.101.235 (只有一个IP)

对MongoDB配置中 bind_ip 的理解

它的意思是将MongoDB实例绑定到那个IP上,表示该实例可以以那个IP对外提供服务。

# 表示以本地回环地址对外提供服务,由于本地回环地址只能被本机所能访问到
# 因此,表示只能在本机的mongo客户端上才能连接到
bind_ip=127.0.0.1
# 表示MongoDB实例以192.168.101.235这个IP对外提供服务
# 只要能访问到192.168.101.235:27017的任何mongo客户端上都能连接到
bind_ip=192.168.101.235

bind_ip=0.0.0.0 的理解:

如果MongoDB实例所在的服务器只有一个IP:192.168.101.235,那么 bind_ip=0.0.0.0bind_ip=192.168.101.235 是一个效果

如果MongoDB实例所在的服务器有多个IP,比如:192.168.101.235192.168.11.22 那么 bind_ip=0.0.0.0bind_ip=127.0.0.1,192.168.101.235,192.168.11.22 是一个效果。

bind_ip_all 的理解

bind_ip_allbind_ip 是互斥的,配置只要有它们其中一个就行了。bind_ip_all 的用法:

# bind_ip_all 其实相当于: bind_ip=0.0.0.0
bind_ip_all=true
# 或者
bind_ip_all=on

注意:bind_ip的值不是 限制某些IP能访问服务端,如果要先限制,可以使用服务器自带的防火墙处理。

需求

限定只能某些IP能访问我们的mongodb服务端,比如:除了192.168.101.231和127.0.0.1之外的均不可访问

思路

使用mongodb配置中的bind_ip 选项和 CentOS自带的防火墙

MongoDB实例以127.0.0.1192.168.101.235 对外提供服务

步骤

  1. 配置MongoDB实例的bind_ip

    bind_id=127.0.0.1,192.168.101.235
    # 或者
    bind_id=0.0.0.0
    # 或者
    bind_ip_all=true
    
  2. 重启MongoDB服务端

  3. 配置防火墙

    在防火墙中增加如下配置内容(其它系统的防火墙请自行配置)

    # 禁止所有的IP访问27017端口
    -I INPUT -p tcp --dport 27017 -j DROP
    # 对192.168.101.231放行27017端口
    -I INPUT -s 192.168.101.231 -p tcp --dport 27017 -j ACCEPT
    # 对127.0.0.1放行27017端口
    -I INPUT -s 127.0.0.1 -p tcp --dport 27017 -j ACCEPT
    
最后一步重中之重

防护墙修改后请重启

发布了22 篇原创文章 · 获赞 0 · 访问量 1158

猜你喜欢

转载自blog.csdn.net/bigpatten/article/details/103618967
今日推荐