或者

admin
没问题,请提供您需要摘要的内容,我会立即为您生成一段100-200字的摘要。

Ubuntu Redis 远程连接失败排查指南:从配置到防火墙

在使用 Ubuntu 服务器部署 Redis 时,很多开发者会遇到“远程连接不上”的问题,明明服务已经启动,但在本地或另一台机器上尝试连接时却报错,这通常不是 Redis 没有运行,而是配置、防火墙或网络策略导致的。

本文将详细列出排查步骤,帮助你快速定位并解决 Ubuntu Redis 无法远程连接的问题。

或者

第一步:检查 Redis 服务状态

我们需要确认 Redis 服务是否真的在运行。

打开终端,输入以下命令检查服务状态:

sudo systemctl status redissudo systemctl status redis-server
  • 如果显示 active (running):服务正常,问题可能在配置或防火墙。
  • 如果显示 inactive (dead):你需要启动它,输入 sudo systemctl start redis

第二步:检查绑定地址 —— 最常见原因

Redis 默认只监听本地回环地址(127.0.0.1),这意味着它只接受来自服务器本地的连接,如果你从远程连接,Redis 会直接忽略该请求。

  1. 使用编辑器打开配置文件:

    sudo nano /etc/redis/redis.conf
  2. 找到 bind 这一行,默认通常是:

    bind 127.0.0.1
  3. 修改为允许所有 IP 连接(不推荐生产环境直接使用 0.0.0.0,除非配合强密码):

    bind 0.0.0.0

    或者,如果你只想允许特定 IP 连接,可以改为:

    bind 127.0.0.1 你的服务器公网IP
  4. 修改完成后,必须重启 Redis 服务才能生效:

    sudo systemctl restart redis

第三步:检查防火墙设置

即使 Redis 绑定了正确的 IP,Ubuntu 自带的防火墙(UFW)也可能阻止外部访问 6379 端口。

  1. 检查防火墙状态:

    sudo ufw status
  2. 如果状态是 active,需要开放 6379 端口:

    sudo ufw allow 6379
  3. 重启防火墙(通常不需要,但为了确保生效):

    sudo ufw reload

第四步:检查云服务商安全组

如果你使用的是云服务器(如阿里云、腾讯云、AWS、DigitalOcean 等),仅仅开放了 Ubuntu 内部的防火墙是不够的,你还需要在云控制台的安全组规则中,允许入站流量访问 TCP 端口 6379。

  • 操作:进入控制台 -> 安全组 -> 入站规则 -> 添加规则 -> 端口:6379 -> 协议:TCP -> 来源:0.0.0.0/0 (或限制特定 IP)。

第五步:检查保护模式与密码

Redis 绑定了 0.0.0.0 但依然连不上,可能是开启了“保护模式”。

  1. /etc/redis/redis.conf 中找到 protected-mode
  2. 确保它被设置为 yes(默认)或 no
  3. 重要:为了安全起见,建议配置密码,在配置文件中找到 requirepass,取消注释并设置一个强密码,如果未设置密码且 Redis 绑定了公网 IP,它可能会拒绝非本地连接。

第六步:测试连接

配置修改完成后,使用 telnetnc(netcat)测试端口是否通:

telnet 你的服务器IP 6379

如果连接成功,你会看到 Connected to ... 的提示,随后可以使用 redis-cli 命令进行连接测试:

redis-cli -h 你的服务器IP -p 6379

Ubuntu Redis 远程连接不上的原因通常集中在三点:

  1. 配置错误bind 没有配置为 0.0.0
  2. 防火墙阻挡:Ubuntu UFW 或云服务器
文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码