当前位置:首页 > 问答 > 正文

Redis里头怎么搞定IP连接配置,设置过程其实没那么复杂

(信息来源:Redis官方文档、运维社区经验分享)

Redis的IP连接配置说白了就是控制谁能连上Redis服务器,刚装好的Redis默认只允许本机访问,这显然不适合实际应用,下面直接说操作步骤和关键点,不绕弯子。

Redis里头怎么搞定IP连接配置,设置过程其实没那么复杂

第一步:找到并打开Redis的配置文件 这个文件通常叫 redis.conf,它在哪里取决于你的安装方式,如果用Linux的包管理器安装(比如apt),它可能在 /etc/redis/redis.conf,如果是从源码编译的,它就在你解压源码的目录里,找到它,用文本编辑器(如vim或nano)打开就行。

第二步:修改bind参数(核心步骤) 这是控制IP绑定的核心设置。

Redis里头怎么搞定IP连接配置,设置过程其实没那么复杂

  • 默认情况:通常是 bind 127.0.0.1 或者 bind 127.0.0.1 ::1,这表示Redis只监听本地回环地址(就是你自己的这台机器),其他任何网络的电脑都连不上。
  • 允许所有IP连接(最简单但也最危险):把bind这一行改成 bind 0.0.0.0,这表示Redis会监听服务器上所有网络接口的IP地址,任何能通过网络访问到你服务器的电脑都能尝试连接。警告: 在生产环境轻易不要这么设,除非你清楚后果并且有防火墙等其他安全措施,这就好比把你家大门完全敞开。
  • 允许指定IP或网段连接(推荐做法):比如你的服务器IP是 168.1.100,而你只想让同一个局域网(比如168.1.0/24这个网段)的电脑连接,可以设为 bind 192.168.1.100,如果服务器有多个IP,想监听其中几个,可以用空格隔开,如 bind 192.168.1.100 10.0.0.100,这样,只有通过这些指定IP的请求才会被Redis接收。

第三步:留意protected-mode参数 这个是Redis的一个安全保护模式。(信息来源:Redis 3.2版本后的新增特性说明)

  • bind没有明确设置(注释掉了)且没有设置密码时protected-mode默认是 yes,这种情况下,即使你改了bind 0.0.0.0,Redis还是会拒绝外部连接,作为一种最后的安全防线。
  • 如何应对
    1. 推荐:按照第二步的方法,明确设置bind参数为你需要的IP。
    2. 或者:设置一个访问密码(见下一步)。
    3. 或者(不推荐):强行把 protected-mode 设为 no 来关闭它,这相当于拆掉了最后一道安全门,风险很大。

第四步:设置访问密码(强烈建议) 光靠IP限制还不够,万一有人摸进你的内网呢?加个密码就像给门再加把锁。(信息来源:Redis配置中requirepass指令的说明) 在配置文件里找到 requirepass 这一行,默认是注释掉的,取消注释,把后面的 foobared 改成你自己设定的强密码。 requirepass your_strong_password_here 重启Redis后,任何客户端连接时都必须先用 AUTH 命令输入这个密码才能操作。

Redis里头怎么搞定IP连接配置,设置过程其实没那么复杂

第五步:考虑防火墙 (信息来源:通用服务器安全实践) 别忘了,你服务器本身的操作系统防火墙(如iptables、firewalld)或云服务商的安全组规则也会阻挡连接,即使Redis配好了bind 0.0.0.0,如果防火墙没放开Redis的端口(默认6379),外面还是连不上,你需要确保防火墙规则允许来自你客户端的IP地址访问6379端口。

第六步:重启Redis服务使配置生效 改完配置文件后,必须重启Redis服务,不能用简单的 reload,需要完全重启。

  • Linux系统服务方式sudo systemctl restart redissudo service redis-server restart
  • 直接启停:如果是一开始直接运行redis-server启动的,需要先停掉进程,再带上配置文件启动:redis-server /path/to/redis.conf

第七步:测试连接 重启后,千万别想当然,一定要测试。

  1. 从服务器本机测试:用redis-cli连一下,看是否正常。
  2. 从外部电脑测试:在另一台被允许的电脑上,用redis-cli -h your_redis_server_ip -p 6379尝试连接,如果设置了密码,连上后还要执行AUTH your_password,能成功执行个ping命令得到PONG回复,才算大功告成。

常见问题与排错:

  • 连不上:按顺序检查:1. bind配置对了没?2. 密码输对了没?3. 防火墙/安全组端口放行了没?4. 网络本身通不通(用ping命令试)?
  • 不想重启Redis:很遗憾,修改bindrequirepass这两个关键参数必须重启服务才能生效,网上说的通过CONFIG SET命令在线修改,通常只适用于临时调整一些运行时参数,对于监听地址和密码这种基础设置,重启是最可靠的方式。

搞定Redis的IP连接配置,核心就是四件事:bind绑对IP、requirepass设好密码、防火墙开对端口、最后重启服务,流程不复杂,但每一步都得做扎实,安全意识最重要。