登录
首页 >  文章 >  linux

Linux安装Redis及远程访问配置详解

时间:2026-05-25 18:10:23 371浏览 收藏

本文详解了在Linux系统中安装Redis并配置远程访问的完整流程与关键避坑指南,强调生产环境首选包管理器安装以规避依赖和集成问题,同时直击远程连接失败的三大核心原因:未将bind地址改为0.0.0.0、未关闭protected-mode、未配置requirepass密码——这三者缺一不可;此外还必须同步放行本地防火墙及云平台安全组的6379端口,并通过systemd正确重启服务与验证状态,帮助读者一次性解决90%以上“连不上Redis”的真实运维难题。

Linux系统安装Redis及开启远程访问配置

确认系统环境和安装方式选择 Redis 在 Linux 上主流安装方式有源码编译、包管理器安装(如 apt/yum/dnf)和容器部署。生产环境建议用包管理器安装,省去依赖处理和 systemd 集成问题;开发或需特定版本时再考虑源码编译。redis-server --version 能快速验证是否已装及版本。Ubuntu 22.04+ 默认仓库中 redis-server 版本为 6.0.x,CentOS Stream 9 的 dnf 源提供 7.0.x,但较旧发行版(如 CentOS 7)默认源只有 3.2,必须手动升级或换源——这点常被忽略,导致后续配置远程访问失败却误以为是配置问题。

推荐操作:

  • Ubuntu/Debian:sudo apt update && sudo apt install redis-server
  • CentOS/RHEL 8+:sudo dnf install redis
  • CentOS 7:先启用 EPEL 源,再执行 sudo yum install redis,或直接下载官方 RPM(注意 glibc 版本兼容性)

修改 redis.conf 启用远程访问 Redis 默认绑定 127.0.0.1 且启用保护模式(protected-mode yes),这是远程连不上的根本原因。不能只改 bind,还要同步关掉保护模式或设密码——否则即使绑定了 0.0.0.0,启动时也会拒绝非本地连接。

关键配置项(在 /etc/redis/redis.conf 中修改):

  • bind 127.0.0.1 ::1 → 改为 bind 0.0.0.0(IPv4 全开)或 bind 0.0.0.0 ::(同时支持 IPv6)
  • protected-mode yes → 必须改为 protected-mode no,否则 bind 生效也无效
  • requirepass foobared → 解开注释并设强密码(如 requirepass Jx9#kL2@qW$),这是远程访问的强制安全底线
  • daemonize yes 确保后台运行(systemd 环境下此值实际由服务单元控制,但保留为 yes 更稳妥)

调整防火墙与 systemd 服务 改完配置不重启服务等于没改。systemd 下必须重载配置并重启,且要检查防火墙是否放行 6379 端口。UFW(Ubuntu)和 firewalld(RHEL/CentOS)规则写法不同,容易漏掉。

操作顺序不能错:

  • 保存 redis.conf 后执行:sudo systemctl daemon-reload
  • 重启服务:sudo systemctl restart redis-server(Ubuntu)或 sudo systemctl restart redis(RHEL)
  • 检查状态:sudo systemctl status redis,确认 Active: active (running),且日志无 Failed to bindCould not create server TCP listening socket
  • 放行端口:sudo ufw allow 6379(Ubuntu)或 sudo firewall-cmd --permanent --add-port=6379/tcp && sudo firewall-cmd --reload(RHEL)
注意:若服务器在云厂商(如阿里云、AWS),安全组策略必须额外放行 6379,这比本地防火墙更容易被遗忘。

验证远程连接与常见连不上原因 用另一台机器执行 redis-cli -h -p 6379 -a 测试。连不上时别急着重配,先查三处:

典型错误链路:

  • telnet 6379 不通 → 查云安全组、本地防火墙、redis-server 是否真在监听:ss -tlnp | grep :6379
  • 能 telnet 通但 redis-cliNOAUTH Authentication required → 密码没设或客户端没带 -a
  • DENIED Redis is running in protected modeprotected-mode 没关,哪怕 bind 已改
  • Connection refusedss 查不到监听 → redis 进程崩溃,看 journalctl -u redis -n 50 找具体错误(常见于配置语法错误、requirepass 行末多了空格)
真实场景中,约七成“远程连不上”问题出在 protected-mode 和云平台安全组这两处,而不是 bind 地址本身。

以上就是《Linux安装Redis及远程访问配置详解》的详细内容,更多关于的资料请关注golang学习网公众号!

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>