redis无法远程连接问题解决

博主在本地尝试使用redisDesktopManager连接腾讯云服务器上的Redis服务时遇到问题。首先确认6379端口监听,但telnet测试失败。检查安全组设置和防火墙状态,发现防火墙被屏蔽并启用,开放6379端口。接着发现Redis配置文件中bind参数限制了访问,修改为允许所有IP,并禁用protected-mode。经过这些步骤,最终成功连接Redis服务。

早期在腾讯云购买了一台服务器,部署了redis服务,今天想在本地使用可视化工具redis Desktop Manager 连接一下,发现无法连接成功。

首先查看服务器6307端口是否在监听状态,运行命令netstat -antp结果如下:
端口监听状态
发现6379端口在监听状态,在本地用telent命令测试6379端口无法通过。
telent测试
觉得应该是腾讯云安全组没有放开6379端口,查看发现安全组是放开的,然后就去查看防火墙状态(systemctl status firewalld),发现防火墙被屏蔽
防火墙屏蔽提示

  • 运行命令 systemctl unmusk firewalld 解除屏蔽。
  • 运行systemctl start firewalld运行防火墙。
  • 运行命令 firewall-cmd --zone-public --add-port=6379/tcp --permanent 放开6379端口。

再一次进行telent测试,还是无法成功,不知怎么搞。
百度后看到端口状态发现服务器监听本地127.0.0.1,
本地监听
修改配置文件redis.conf
注释bind 127.0.0.1 ::1
添加注释修改下面的127.0.0.1为0.0.0.0,表示运行所有IP访问
修改为0.0.0.0
同时将protected-mode的yes修改为no
修改为no
再次使用telent测试,结果成功。
使用Redis Desktop Manager成功连接。

### Redis 远程连接配置 在 Linux 环境下,如果遇到 Redis 无法远程连接问题,通常可以通过以下几个方面来检查和解决问题。 #### 配置文件调整 默认情况下,Redis 的绑定地址可能被设置为 `127.0.0.1`,这会阻止外部 IP 地址访问。需要修改 Redis 配置文件 `/etc/redis/redis.conf` 或者其他路径下的配置文件,找到并更改以下参数: ```bash bind 127.0.0.1 ``` 将其更改为: ```bash bind 0.0.0.0 ``` 此操作允许 Redis 接受来自任意 IP 地址的请求[^1]。 #### 设置密码保护 为了安全起见,在生产环境中建议启用密码验证机制。可以在同一配置文件中添加或修改以下字段: ```bash requirepass your_password_here ``` 重启 Redis 后,客户端需要通过 `-a` 参数提供该密码才能成功连接[^3]。 #### 开启防火墙端口 确认服务器上的防火墙规则是否开放了 Redis 默认使用的 6379 端口。对于基于 iptables 的环境,执行命令如下: ```bash iptables -A INPUT -p tcp --dport 6379 -j ACCEPT service iptables save ``` 如果是 ufw,则应运行: ```bash ufw allow 6379/tcp ``` 确保网络层面没有任何阻碍到达目标机器的服务监听端口的数据包传输过程。 #### 故障排查方法 当仍然存在无法正常建立远距离通信的情况时,可按照下面几个方向逐一检验原因所在: - **测试本地连通性**: 使用 telnet 命令尝试从另一台设备向目标主机发起握手动作, 如:`telnet target_host_ip 6379`. - **查看日志记录**: 查阅 /var/log/redis/*.log 文件了解是否有异常报错提示. - **重新加载配置而不需停服**: 如果只是单纯改动了一些动态生效项(比如 auth), 可考虑发送 HUP 信号通知守护进程重读设定而无需完全中断现有链接. ```bash killall -s HUP redis-server ``` 最后再次强调安全性的重要性——即使已经对外暴露接口也务必记得实施必要的防护措施! ```python import redis r = redis.StrictRedis(host='your_remote_redis_server', port=6379, password="your_password", decode_responses=True) print(r.ping()) # Should output 'PONG' if everything is set up correctly. ``` 以上脚本可用于初步验证 Python 应用层面对新部署好的实例能否顺利交互[^4]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值