Redis在Debian上的网络配置要点
bind指令用于指定Redis监听的网络接口,直接影响可访问的客户端来源。默认配置(bind 127.0.0.1 ::1)仅允许本地连接(IPv4/IPv6回环地址)。若需允许远程访问,可注释该行或设置为具体内网IP(如bind 192.168.1.100);若需监听所有接口,可设置为0.0.0.0(需配合安全措施,如防火墙限制)。修改后需重启Redis生效。
protected-mode是Redis的安全防护机制,默认开启(yes)。当开启且未设置密码时,Redis仅接受本地连接(127.0.0.1/::1)或Unix套接字。若需允许远程访问,需关闭保护模式(protected-mode no),但需同时配置密码或其他安全措施(如防火墙),避免未授权访问。
port指令定义Redis监听的TCP端口,默认为6379。可根据需求修改(如port 6380),但需确保新端口未被其他服务占用。修改后需重启Redis,并同步调整防火墙规则以允许新端口的流量。
tcp-backlog设置TCP监听积压队列的大小(默认511),用于应对高并发连接请求。若队列过小,可能导致大量连接被拒绝。需根据服务器性能调整(如tcp-backlog 1024),同时需确保Linux内核参数/proc/sys/net/core/somaxconn的值不小于tcp-backlog(否则会被内核截断)。
timeout指令设置空闲客户端的连接超时时间(单位:秒),0表示永不关闭。建议设置为合理值(如timeout 300),以释放长期空闲的连接资源,提升服务器性能。
tcp-keepalive开启TCP心跳检测(默认300秒,即5分钟),用于检测客户端连接是否存活。若设置为0,则不进行检测。建议开启(如tcp-keepalive 60),及时清理无效连接,避免资源浪费。
bind-source-addr用于指定Redis出站连接(如从备节点到主节点、哨兵到实例的通信)绑定的本地IP地址。默认不绑定,由操作系统自动选择。若需固定出站接口(如多网卡环境),可设置为具体IP(如bind-source-addr 10.0.0.1)。
若需通过Unix域套接字(而非TCP)通信,可配置unixsocket指令(如unixsocket /run/redis.sock),并设置套接字权限(unixsocketperm 700,仅所有者可读写)。此方式适用于本地高安全需求场景,但需客户端支持Unix socket连接。
从Redis 6开始支持TLS加密,可通过以下指令配置:
tls-port:开启TLS监听端口(如tls-port 6379);tls-cert-file:证书文件路径(如/etc/redis/cert.pem);tls-key-file:私钥文件路径(如/etc/redis/key.pem);tls-ca-cert-file:CA证书路径(如/etc/redis/ca.crt)。无论是否开启远程访问,均需通过防火墙限制Redis端口的访问。以UFW为例,允许特定IP或子网访问Redis端口(默认6379):
sudo ufw allow proto tcp from 192.168.1.0/24 to any port 6379 # 仅允许192.168.1.0/24子网
# 或允许所有IP(需谨慎,仅测试环境使用)
sudo ufw allow 6379/tcp
配置后需启用UFW(sudo ufw enable)并验证规则(sudo ufw status)。