外网连接不上redis的解决办法

本文详细介绍了如何解决Redis连接问题,包括修改连接超时时间、配置文件调整(解除bind限制并允许远程访问)、Linux防火墙设置,以及Redis配置文件的保护模式设置。
redis Caused by: io.lettuce.core.RedisConnectionException: Unable to connect to 192.168.182.128:6379
  • 1

解决思路:
一:修改application.yml的redis配置中的spring.redis.timeout中连接超时时间
在这里插入图片描述
二:linxu中找到redis的配置文件 redis.conf
执行命令: vim redis.conf;
1).注释掉 #bin 127.0.0.1 (原因:bind 127.0.0.1生效,只能本机访问redis)
2).将 protected-mode yes 改为:protected-mode no (原因:把yes改成no,允许外网访问)
在这里插入图片描述
3).将 daemonize yes 改为 daemonize no;该错误跟个属性基本没有关系,只是为了让redis在后台运行,不用打印很多日志

在这里插入图片描述
三:在linux中执行: /sbin/iptables -I INPUT -p tcp --dport 6379 -j ACCEPT
redis默认端口号6379是不允许进行远程连接的,所以在防火墙中设置6379开启远程服务;
在这里插入图片描述

我不能访问的原因就是因为思路三。。。。

补充一下:防火墙设置好之后要保存设置;可以参考这个
https://www.cnblogs.com/morgan363/p/11813092.html

<think>好的,我现在需要帮助用户解决RedisLinux启动后外网无法连接的问题。用户提到了绑定地址和防火墙配置,我需要结合提供的引用信息和自己的知识来梳理解决方案。 首先,用户提到配置了绑定地址但未生效。根据引用[2],绑定IP生效可能是因为防火墙的问题。引用[3]提到需要检查防火墙状态,可能是firewalld在运行导致端口被阻止。所以第一步应该检查防火墙的状态,如果处于active状态,需要停止或者开放Redis的端口。 然后,Redis的配置文件中的bind设置是否正确。默认情况下,bind 127.0.0.1会限制只能本地访问,需要改为bind 0.0.0.0或者注释该行,但需注意这样会暴露给所有网络,可能安全。同时,保护模式是否关闭,protected-mode设为no,否则即使bind了也会限制外部连接。 接着,检查Linux的端口是否开放。使用firewall-cmd命令查看6379端口是否开放,如果没有,需要添加规则并重新加载防火墙。引用[3]中的命令可以应用到这里。如果用户使用的是iptables,可能需要同的命令,但根据引用[1],CentOS默认使用firewalld,所以应优先考虑firewalld的配置。 另外,SELinux可能也会阻止外部访问,需要临时禁用或配置策略允许Redis端口。这可能是一个容易被忽视的点,需要提醒用户检查。 还有,确认Redis服务是否监听在正确的IP和端口上,使用netstat -tulnp | grep redis命令查看。如果只看到127.0.0.1:6379,说明绑定地址未正确配置,需要修改redis.conf。 最后,确保云服务提供商的安全组规则允许6379端口的入站流量,这点对于云服务器尤其重要,但引用中没有提到,可能需要补充作为扩展建议。 总结步骤:检查防火墙状态,配置Redis绑定地址和关闭保护模式,开放防火墙端口,处理SELinux,检查监听状态,确认安全组设置。过程中要参考引用中的命令,如停止防火墙、添加端口等。同时注意配置文件的修改后需要重启Redis生效,以及firewalld规则的重载。</think>### Redis外网连接问题排查步骤 #### 一、检查防火墙状态与端口开放 1. **查看防火墙运行状态** ```bash systemctl status firewalld ``` 若显示`active (running)`表示防火墙正在运行[^3] 2. **开放Redis默认端口(6379)** ```bash firewall-cmd --permanent --add-port=6379/tcp firewall-cmd --reload ``` 验证端口是否开放: ```bash firewall-cmd --list-ports | grep 6379 ``` 3. **临时关闭防火墙(测试用)** ```bash systemctl stop firewalld # 临时关闭 systemctl disable firewalld # 永久关闭 ``` #### 二、检查Redis配置 1. **修改redis.conf配置文件** ```bash vim /etc/redis.conf ``` 关键配置修改: ```conf bind 0.0.0.0 # 允许所有IP访问,或指定特定IP protected-mode no # 关闭保护模式[^2] ``` 2. **重启Redis服务** ```bash systemctl restart redis ``` #### 三、验证网络监听状态 ```bash netstat -tulnp | grep redis ``` 正常应显示: ``` tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN 1234/redis-server ``` #### 四、SELinux安全策略检查 1. **临时关闭SELinux** ```bash setenforce 0 ``` 2. **永久关闭(需谨慎)** 修改`/etc/selinux/config`文件: ```conf SELINUX=disabled ``` #### 五、服务自启动配置(可选) 若需设置开机自启动,注意使用正确方法: ```bash systemctl enable redis # 推荐方式[^4] ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值