如何在京东云服务器上搭建Redis并设置远程访问?

在京东云服务器(JD Cloud ECS)上搭建 Redis 并设置远程访问,需要完成以下几个关键步骤:安装 Redis、修改配置以允许远程访问、配置安全组/防火墙、以及测试连接。

⚠️ 重要安全提示:
Redis 默认无身份验证,直接暴露到公网极易被攻击(如勒索软件、数据泄露)。请务必:

  1. 设置强密码;
  2. 仅通过安全组限制特定 IP 访问;
  3. 生产环境建议绑定内网 IP 或使用 SSH 隧道。

✅ 一、前提条件

  • 已登录京东云控制台,创建一台 Linux 实例(推荐 CentOS 7+/Ubuntu 20.04+)。
  • 拥有 root 权限或 sudo 权限。
  • 已知服务器的公网 IP 地址和内网 IP 地址。

✅ 二、安装 Redis

方法1:使用包管理器安装(推荐)

CentOS/RHEL:

sudo yum install -y epel-release
sudo yum install -y redis
sudo systemctl start redis
sudo systemctl enable redis

Ubuntu/Debian:

sudo apt update
sudo apt install -y redis-server
sudo systemctl start redis
sudo systemctl enable redis

方法2:从源码编译安装(获取最新版本)

# 安装依赖
sudo yum install -y gcc make tcl   # CentOS
# 或
sudo apt install -y build-essential tcl   # Ubuntu

# 下载 Redis
wget http://download.redis.io/releases/redis-7.2.3.tar.gz
tar xzf redis-7.2.3.tar.gz
cd redis-7.2.3

# 编译安装
make
sudo make install

# 启动 Redis(后台运行)
redis-server --daemonize yes

✅ 三、配置 Redis 允许远程访问

编辑 Redis 配置文件:

sudo vi /etc/redis/redis.conf    # CentOS
# 或
sudo vi /etc/redis/redis.conf    # Ubuntu(路径可能不同,用 find / -name redis.conf 查找)

找到并修改以下关键配置项:

1. 绑定地址(bind)

# 原配置:
bind 127.0.0.1 ::1

# 修改为(允许所有接口监听,或指定内网IP更安全):
bind 0.0.0.0
# 或更安全的做法:
bind <内网IP>

🔒 更推荐方式:保留 bind 127.0.0.1,但通过安全组和端口映射实现间接访问(见后文“最佳实践”)。

2. 保护模式(protected-mode)

protected-mode no

3. 设置密码(requirepass)

requirepass YourStrongPassword123!

4. 其他可选优化

# 禁用危险命令(生产环境强烈建议)
rename-command FLUSHALL ""
rename-command FLUSHDB ""
rename-command CONFIG ""
rename-command KEYS ""

# 持久化策略(按需开启)
appendonly yes
save 900 1
save 300 10
save 60 10000

保存后重启 Redis:

sudo systemctl restart redis
# 若手动编译安装:
pkill redis-server
redis-server /etc/redis/redis.conf &

✅ 四、配置防火墙与安全组

1. 开放服务器本地防火墙(如 firewalld 或 ufw)

CentOS (firewalld):

sudo firewall-cmd --permanent --add-port=6379/tcp
sudo firewall-cmd --reload

Ubuntu (ufw):

sudo ufw allow from <你的客户端IP>/32 to any port 6379
sudo ufw reload

2. 配置京东云安全组(关键!)

登录 京东云控制台 → 进入你的 ECS 实例 → 找到“安全组”规则:

  • 添加一条入站规则:
    • 协议:TCP
    • 端口范围:6379
    • 源 IP:务必限制为你的固定公网 IP 或 CIDR 范围(如 123.45.67.89/32),切勿设为 0.0.0.0/0!
    • 动作:允许

🛡️ 这是防止黑客扫描和暴力破解的最重要一步!


✅ 五、测试远程连接

从你的本地电脑(Windows/Mac/Linux)使用 Redis 客户端测试:

使用 redis-cli(命令行):

redis-cli -h <服务器公网IP> -p 6379 -a YourStrongPassword123!

成功应显示:

<服务器公网IP>:6379> PING
PONG

使用 Python 示例:

import redis

r = redis.Redis(
    host='<服务器公网IP>',
    port=6379,
    password='YourStrongPassword123!',
    decode_responses=True
)

r.set('test', 'hello')
print(r.get('test'))  # 输出: hello

✅ 六、最佳实践与安全加固建议

项目 建议
网络隔离 将 Redis 部署在内网,通过 NAT 或 SSH 隧道访问,不直接暴露公网
最小权限原则 安全组仅允许可信 IP 访问 6379 端口
强密码 使用 ≥16 位复杂密码,定期更换
禁用危险命令 如前所述,重命名或禁用 FLUSHALL、CONFIG 等
启用 TLS 如需加密传输,可结合 stunnel 或 Redis 6+ 的 TLS 支持
监控与日志 开启慢查询日志,定期审计访问记录
备份 配置 RDB/AOF 自动备份,并异地存储

❓ 常见问题排查

  1. 连接超时?

    • 检查安全组是否放行 6379 端口;
    • 检查服务器防火墙是否阻止;
    • 确认 bind 和 protected-mode 配置正确。
  2. 认证失败?

    • 确认密码是否正确(注意大小写和特殊字符);
    • 尝试不带密码连接看是否报错,确认是否设置了 requirepass。
  3. 权限不足?

    • 确保以 root 或 sudo 用户操作;
    • 检查 /var/lib/redis 目录权限。

✅ 完成以上步骤后,你就成功在京东云服务器上搭建了可远程访问的 Redis 服务。请始终牢记:安全第一,谨慎暴露端口!