用包管理器安装最省事,但必须改配置才能设密码;源码编译更可控,适合生产环境,但步骤多、容易漏权限或路径问题。

直接结论:用包管理器安装最省事,但必须改配置才能设密码;源码编译更可控,适合生产环境,但步骤多、容易漏权限或路径问题。
用 apt/yum 安装后怎么设密码
Ubuntu/Debian 直接 sudo apt install redis-server,CentOS/RHEL 先装 EPEL 再 sudo yum install redis。装完默认没密码,且只监听 127.0.0.1:6379,远程连不上。
关键三步:
- 备份配置:
sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.bak - 编辑
/etc/redis/redis.conf,找到# requirepass foobared,删掉#并改成requirepass YourStrongPassword123(注意前面不能有空格) - 重启服务:
sudo systemctl restart redis-server,然后用redis-cli -a 'YourStrongPassword123' ping测试,返回PONG才算生效
常见错误:改完没重启、密码里有特殊字符没加单引号、requirepass 行开头多了空格导致配置不被识别。
源码编译安装时如何正确设置密码
下载 tar 包(比如 redis-7.2.4.tar.gz)、解压、make、sudo make install 是基础。但默认安装后没有配置文件,也不会自动创建用户或目录。
必须手动处理这些:
- 创建运行用户:
sudo useradd -r -s /bin/false redis - 建目录并赋权:
sudo mkdir -p /var/lib/redis /var/log/redis /etc/redis,再sudo chown redis:redis /var/lib/redis /var/log/redis - 复制配置:
sudo cp redis.conf /etc/redis/redis.conf,然后同样修改requirepass行 - 启用 systemd 服务:需写
/etc/systemd/system/redis.service,里面指定User=redis和ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
漏掉用户或目录权限,会导致 redis-server 启动失败,日志里常出现 Failed to open .rdb file 或 Permission denied。
为什么连上 Redis 后 AUTH 总失败
不是密码输错,大概率是配置没生效或客户端没走对端口/认证流程。
排查点:
- 确认当前连接的实例确实是改过配置的那个:
redis-cli info server | grep config_file看加载的是哪个redis.conf - 检查是否启用了
protected-mode yes(默认开启),它会拒绝所有非本地连接,即使有密码也不行 —— 改成no或配合bind使用 - 远程连接必须显式带参数:
redis-cli -h your-server-ip -p 6379 -a 'YourStrongPassword123',单独redis-cli默认连本地无密码实例 - 如果用
redis-cli连上了但auth报错NOAUTH Authentication required,说明密码配置根本没加载,回看配置文件路径和requirepass格式
密码之外,最容易被忽略的两个安全项
设了密码不代表就安全了。生产环境必须同步处理:
-
bind 127.0.0.1默认值很安全,但一旦改成0.0.0.0或注释掉,又没开防火墙,等于把密码当唯一防线 —— 建议配iptables或ufw限制 IP 段 -
protected-mode yes不只是“远程连不上”的开关,它还阻止未授权的CONFIG REWRITE、FLUSHDB等危险命令,关之前想清楚代价
很多线上事故不是密码被爆破,而是配置疏漏让攻击者绕过认证直接执行命令。











