一、Redis端口修改步骤
找到配置文件
Redis配置文件redis.conf的位置因系统和安装方式而异:
/etc/redis/redis.conf(部分发行版可能在/etc/下直接使用redis.conf);C:\Program Files\Redis\redis.windows.conf)。find / -name redis.conf 2>/dev/null(Linux)或手动搜索安装目录(Windows)定位文件。修改端口参数
使用文本编辑器(如Linux的vim/nano、Windows的记事本)打开redis.conf,找到port配置项(默认值为6379),将其修改为非标准端口(建议选择1024-65535之间的未被占用的端口,避免使用常见服务端口如22、80、443等)。例如:
port 6380 # 修改为自定义端口
注:若需临时测试,也可通过命令行参数启动Redis(不推荐生产环境):redis-server --port 6380,但此方式重启后失效。
重启Redis服务
修改配置文件后,需重启服务使更改生效:
sudo systemctl restart redis # 或 sudo systemctl restart redis.service
redis-server.exe进程,再重新启动redis-server.exe redis.windows.conf(确保指向修改后的配置文件)。验证端口修改
使用redis-cli连接新端口,确认服务正常:
redis-cli -p 6380 # 连接新端口
127.0.0.1:6380> PING # 发送PING命令,返回PONG表示成功
同时,可通过netstat(Linux)或nmap(跨平台)检查端口是否监听:
netstat -tuln | grep 6380 # Linux查看端口监听状态
nmap -p 6380 localhost # 跨平台扫描端口
若旧端口(如6379)不再显示,说明修改成功。
二、Redis端口保护措施
设置强密码认证
端口修改后,必须启用密码认证以防止未授权访问:
redis.conf,找到requirepass配置项(默认被注释),取消注释并设置复杂密码(长度≥16位,包含大小写字母、数字、特殊字符,如YourStrongPassword@2025)。例如:requirepass YourStrongPassword@2025
-a参数输入密码:redis-cli -p 6380 -a YourStrongPassword@2025
注:密码需定期更换(建议每90天),避免长期使用同一密码。
限制网络访问范围
避免Redis监听所有IP地址(0.0.0.0),仅允许信任的IP访问:
redis.conf,找到bind配置项,修改为特定IP(如内网IP192.168.1.100)或仅本机127.0.0.1。例如:bind 127.0.0.1 192.168.1.100 # 仅允许本机和内网IP访问
# Linux iptables示例:允许192.168.1.0/24访问6380端口,拒绝其他IP
sudo iptables -A INPUT -p tcp -s 192.168.1.0/24 --dport 6380 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 6380 -j DROP
注:绝对禁止将Redis绑定到0.0.0.0(公网所有IP),否则会增加被扫描攻击的风险。
禁用危险命令
Redis默认提供的高危命令(如FLUSHALL清空数据库、CONFIG修改配置、SHUTDOWN关闭服务)可能被恶意利用,需通过rename-command重命名或禁用:
redis.conf,添加以下配置:rename-command FLUSHALL "" # 禁用FLUSHALL(空字符串表示禁用)
rename-command CONFIG "b840fc02d524045429941cc15f59e41cb7be6c52" # 重命名CONFIG为随机字符串
rename-command SHUTDOWN "safe_shutdown" # 重命名SHUTDOWN为安全名称
ERR unknown command,避免误操作或恶意破坏。启用TLS加密传输
默认情况下,Redis通信是明文的,易被窃听或篡改。Redis 6.0及以上版本支持TLS加密,需配置证书并修改端口:
cert.pem(证书文件)和key.pem(私钥文件);redis.conf,添加以下配置:tls-port 6380 # TLS加密端口(可与原端口不同)
tls-cert-file /path/to/cert.pem
tls-key-file /path/to/key.pem
-a(密码)和--tls(启用TLS)参数连接:redis-cli -p 6380 -a YourStrongPassword@2025 --tls
注:TLS加密可防止中间人攻击,建议在公网环境下强制启用。
配置防火墙规则
无论是否修改端口,都应通过防火墙限制对Redis端口的访问:
sudo ufw allow from 192.168.1.0/24 to any port 6380 # 允许内网IP访问
sudo ufw deny 6380 # 拒绝其他IP访问
sudo ufw enable # 启用ufw
使用非root用户运行
避免以root用户运行Redis,降低被攻击后的权限提升风险:
redis):sudo adduser --system --group --no-create-home redis # 创建系统用户
sudo chown -R redis:redis /var/lib/redis # 数据目录
sudo chown -R redis:redis /var/log/redis # 日志目录
sudo chown -R redis:redis /etc/redis/redis.conf # 配置文件
redis.conf,指定运行用户:user redis # 添加此行
ps -ef | grep redis确认进程以redis用户运行。