我尝试配置Redis(redis.conf
,bind
参数)以仅接受来自某些ips的访问权限。在我的情况下,我想启用对环回网络接口(127.0.0.1
/ ::1
)的访问,对于ip 192.168.56.101
(192.168.56.102
是Redis服务器的ip)。根据我到目前为止阅读的所有文档,下面的配置应该有效...
bind 127.0.0.1 ::1 192.168.56.101
......但事实并非如此。
我已经尝试了其他几种配置......
bind 127.0.0.1 192.168.56.101 ::1
bind 127.0.0.1 192.168.56.101
bind 192.168.56.101
bind 192.168.56.0
bind 192.168.0.0
......没有任何作用。 = |
唯一有效的配置是......
bind 0.0.0.0
但是,此配置可以打开任何ip!
的访问权限 注意: protected-mode
参数(redis.conf
)的值为no
。
知道可能会发生什么吗?
参考:
Redis bind to more than one IP
更多问题:
如何启用IP范围(bind
参数)的访问权限?有点像...
bind 192.168.56.0
......或......
bind 192.168.56.0/24
在这些示例中,任何一台ip开头于" 192.168.56"将有权访问Redis服务器。
@Carl Dacosta @Jacky
谢谢!
答案 0 :(得分:2)
我认为你误解了bind
配置和IP-whitelist
。
bind
配置指定Redis侦听的IP地址。如果将Redis绑定到环回接口,则只有本地客户端可以访问Redis。如果您希望其他主机访问Redis,则必须将Redis绑定到所有网络接口(即0.0.0.0)或某些指定的网络接口。
您需要的是IP-whitelist
,它列出了可以访问Redis的IP地址。 AFAIK,到目前为止,Redis 不支持支持(纠正我,如果我错了)。
还有其他解决方案可以限制对Redis的访问(所有这些解决方案都需要Redis NOT 来绑定环回接口)。
通过身份验证限制访问
您可以使用requirepass
配置为Redis设置密码。只有拥有密码的客户才能访问Redis。
限制OS实用程序的访问
在Linux上,您可以使用iptables
来控制网络访问。使用此实用程序,您只能允许指定的主机访问Redis绑定到的端口。