在京东云服务器(JD Cloud ECS)上搭建 Redis 并设置远程访问,需要完成以下几个关键步骤:安装 Redis、修改配置以允许远程访问、配置安全组/防火墙、以及测试连接。
⚠️ 重要安全提示:
Redis 默认无身份验证,直接暴露到公网极易被攻击(如勒索软件、数据泄露)。请务必:
- 设置强密码;
- 仅通过安全组限制特定 IP 访问;
- 生产环境建议绑定内网 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 自动备份,并异地存储 |
❓ 常见问题排查
-
连接超时?
- 检查安全组是否放行 6379 端口;
- 检查服务器防火墙是否阻止;
- 确认
bind和protected-mode配置正确。
-
认证失败?
- 确认密码是否正确(注意大小写和特殊字符);
- 尝试不带密码连接看是否报错,确认是否设置了
requirepass。
-
权限不足?
- 确保以 root 或 sudo 用户操作;
- 检查
/var/lib/redis目录权限。
✅ 完成以上步骤后,你就成功在京东云服务器上搭建了可远程访问的 Redis 服务。请始终牢记:安全第一,谨慎暴露端口!
CLOUD技术笔记