如何优化Ubuntu Redis网络设置
导读:Ubuntu 上优化 Redis 网络设置 一 基础网络与安全加固 绑定与访问控制 仅监听必要接口:在 /etc/redis/redis.conf 设置 bind 127.0.0.1 内网IP(避免使用 bind 0.0.0.0 暴露到...
Ubuntu 上优化 Redis 网络设置
一 基础网络与安全加固
- 绑定与访问控制
- 仅监听必要接口:在 /etc/redis/redis.conf 设置 bind 127.0.0.1 内网IP(避免使用 bind 0.0.0.0 暴露到公网);如需监听多个 IP,可写成 bind 127.0.0.1 192.168.1.10 192.168.1.11。修改后重启服务:sudo systemctl restart redis-server。
- 防火墙白名单
- UFW:仅放行受信网段或主机,例如 sudo ufw allow from 192.168.1.0/24 to any port 6379;或放行单 IP:sudo ufw allow from 203.0.113.10 to any port 6379。
- firewalld(如系统使用 firewalld):例如 firewall-cmd --permanent --add-rich-rule=‘rule family=“ipv4” source address=“203.0.113.10” port protocol=“tcp” port=“6379” accept’ & & firewall-cmd --reload。
- 保护模式与密码
- 开启 protected-mode yes(默认开启);若必须从外部访问,务必设置强密码 requirepass 并保持默认绑定或仅内网绑定,避免将 protected-mode 关闭。
- 加密传输
- 启用 TLS/SSL(Redis 6+):配置 tls-port 6380、tls-cert-file、tls-key-file,客户端使用 TLS 端口连接,避免明文传输凭据与数据。
- 禁用危险命令
- 通过 rename-command 隐藏或禁用高危命令,例如:rename-command FLUSHALL “”、rename-command CONFIG “”、rename-command SHUTDOWN “”。
- 云环境
- 同时配置云厂商安全组,仅允许受信 IP 访问 6379/6380,不要使用 0.0.0.0/0。
二 关键网络参数调优
- 保持长连接
- 设置 tcp-keepalive 60,定期探测空闲连接,减少 NAT/防火墙导致的半开连接与异常断开。
- 并发与资源控制
- 根据业务与系统资源设置 maxclients 1000(示例值),避免连接风暴;同时结合系统 ulimit -n 提升文件描述符上限。
- 超时与回收
- 设置 timeout < 秒> 回收长时间空闲客户端;结合 maxmemory 与 maxmemory-policy allkeys-lru/volatile-lru 避免内存挤占引发阻塞与网络拥塞。
- 持久化与带宽
- 若使用 AOF,建议 appendfsync everysec 平衡性能与持久性;RDB 快照频率按业务容忍度设置,避免频繁快照造成带宽与 I/O 抖动。
三 验证与排障
- 监听与连通性
- 查看监听地址与端口:ss -atpn | grep 6379 或 netstat -tulpen | grep 6379;应仅看到配置的 127.0.0.1/内网IP:6379。
- 远程连接测试:redis-cli -h < 服务器IP> -p 6379 -a < 密码> ;如使用 TLS:redis-cli -h -p 6380 --tls。
- 防火墙与云安全组
- 核对规则:sudo ufw status 或 firewall-cmd --list-rich-rules;云上检查安全组入站是否仅放行受信 IP 的 6379/6380。
- 日志与异常
- 检查日志:sudo tail -f /var/log/redis/redis-server.log,关注 maxclients、RDB/AOF 相关告警与慢查询。
四 场景化配置示例
- 仅内网访问(推荐)
- 配置:bind 127.0.0.1 192.168.1.10,port 6379,requirepass ,protected-mode yes,tcp-keepalive 60。
- 防火墙:内网放行 192.168.1.0/24 到 6379。
- 公网访问但强制加密与白名单
- 配置:bind 内网IP(不建议 0.0.0.0),port 6379,tls-port 6380,tls-cert-file /path/cert.pem,tls-key-file /path/key.pem,requirepass ,protected-mode yes,rename-command FLUSHALL “”。
- 防火墙:仅放行受信 IP 到 6379/6380;云安全组同样仅放通受信 IP。
五 监控与持续优化
- 实时监控
- 使用 redis-cli --stat 观察 instantaneous_ops_per_sec、hit rate、used_memory、connected_clients;结合 slowlog 定位慢命令。
- 连接治理
- 客户端使用连接池复用连接,控制连接超时与重试;避免应用频繁短连接。
- 架构扩展
- 高并发/大数据量场景考虑 Redis 集群 或 读写分离/代理,分摊网络与计算压力。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何优化Ubuntu Redis网络设置
本文地址: https://pptw.com/jishu/755556.html
