在 Ubuntu 24.04 上,如果你希望 Redis 能被其他机器访问(例如从应用服务器连接 Redis 服务器),就需要配置防火墙(UFW)以允许外部访问 Redis 默认端口 6379。但请注意:Redis 默认没有加密和强身份验证机制,直接暴露到公网存在严重安全风险!
因此,强烈建议仅在受信任的内网环境中开放 Redis 端口,并配合密码认证、绑定特定 IP 等措施。
🔒 安全前提(务必先完成)
设置 Redis 密码
编辑配置文件:sudo nano /etc/redis/redis.conf找到
# requirepass foobared,取消注释并设置强密码:requirepass YourVeryStrongPassword123!限制监听地址(可选但推荐)
默认 Redis 只监听127.0.0.1(本地)。如需允许局域网访问,可修改为:bind 127.0.0.1 192.168.1.100 # 替换为你的服务器内网 IP或(不推荐)监听所有接口:
bind 0.0.0.0⚠️ 绝对不要在公网 IP 上
bind 0.0.0.0且无密码!重启 Redis 使配置生效
sudo systemctl restart redis-server
🛡️ 使用 UFW 配置防火墙
步骤 1:确保 UFW 已安装并启用
sudo apt install ufw -y
sudo ufw enable
如果已启用,会提示确认,输入
y即可。
步骤 2:查看当前规则(可选)
sudo ufw status verbose
步骤 3:仅允许特定 IP 或子网访问 Redis(推荐)
✅ 示例 1:只允许内网某台应用服务器(如 192.168.1.50)访问
sudo ufw allow from 192.168.1.50 to any port 6379 proto tcp
✅ 示例 2:允许整个内网子网(如 192.168.1.0/24)访问
sudo ufw allow from 192.168.1.0/24 to any port 6379 proto tcp
这是最安全的方式:最小权限原则。
步骤 4:(不推荐)开放 Redis 端口给所有 IP(高危!)
# ❌ 除非你明确知道自己在做什么,否则不要执行!
sudo ufw allow 6379/tcp
步骤 5:验证规则
sudo ufw status numbered
输出示例:
Status: active
To Action From
-- ------ ----
[ 1] 6379/tcp ALLOW IN 192.168.1.0/24
🧪 测试远程连接
从允许的客户端机器上测试:
redis-cli -h YOUR_REDIS_SERVER_IP -p 6379
进入交互后输入:
AUTH YourVeryStrongPassword123!
PING
如果返回 PONG,说明连接成功。
🧹 补充建议
- 禁用危险命令(在
redis.conf中):rename-command FLUSHDB "" rename-command FLUSHALL "" rename-command CONFIG "" - 启用 TLS/SSL(Redis 6+ 支持,适合公网场景)
- 使用专用 VPC/内网隔离,避免 Redis 暴露在公网上