在 Ubuntu 24.04 上,如果你希望 Redis 能被其他机器访问(例如从应用服务器连接 Redis 服务器),就需要配置防火墙(UFW)以允许外部访问 Redis 默认端口 6379。但请注意:Redis 默认没有加密和强身份验证机制,直接暴露到公网存在严重安全风险!

因此,强烈建议仅在受信任的内网环境中开放 Redis 端口,并配合密码认证、绑定特定 IP 等措施。


🔒 安全前提(务必先完成)

  1. 设置 Redis 密码
    编辑配置文件:

    sudo nano /etc/redis/redis.conf
    

    找到 # requirepass foobared,取消注释并设置强密码:

    requirepass YourVeryStrongPassword123!
    
  2. 限制监听地址(可选但推荐)
    默认 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 且无密码!

  3. 重启 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 暴露在公网上