Redis配置外网可访问(redis远程连接不上)的方法


Posted in Redis onDecember 24, 2022

默认情况下,当我们在部署了redis服务之后,redis本身默认只允许本地访问。Redis服务端只允许它所在服务器上的客户端访问,如果Redis服务端和Redis客户端不在同一个机器上,就要进行配置。

使用redis报错

例如使用redis的PHP代码:

<?php
$redis = new Redis();
$redis->connect('192.168.1.4', 6379);
$redis->set('tag', 'hello');

echo 'name:', $redis->get('tag');
?>

执行以上代码时,报错如下:

Fatal error: Uncaught exception ‘RedisException' with message ‘Redis server went away' in xxxx
RedisException: Redis server went away in xxxxxx

 错误分析

默认情况下,如果没有指定bind配置指令,则 Redis 监听来自服务器上所有可用网络接口的连接。可以使用bind配置指令来监听一个或多个选定的接口,在bind后拼接一个或多个 IP 地址即可。

服务器可以有一个网络接口(通俗的说网卡),或者多个。打个比方说机器上有两个网卡,分别为 192.168.205.5 和 192.168.205.6,如果 bind 192.168.205.5,那么只有该网卡地址接受外部请求,如果不绑定,则两个网卡口都接受请求。所以,如果要让公网可以连接该服务器上的 Redis 服务,除了直接注释掉 bind 这一行来绑定到所有的网络接口之外,更正确的做法应该是不注释

警告:如果运行 Redis 的计算机直接暴露在互联网上,绑定到所有的接口是很危险的,并会将实例暴露给互联网上的每个人。因此,默认情况下,我们取消注释以下绑定指令,这将强制 Redis 只监听 IPv4 回环接口地址(这意味着 Redis 只接受来自运行它的计算机上的客户端的连接)。

解决办法

1、找到自己服务器中redis的配置文件redis.conf 文件
如果不清楚,可执行 find / -name redis.conf
如果是你通过yum安装的redis,则redis的默认配置文件为:/etc/redis/redis.conf

修改 redis 的配置文件,将所有 bind 信息全部屏蔽。

# bind 192.168.1.100 10.0.0.1 
# bind 192.168.1.8 
# bind 127.0.0.1

2、如果你的服务器开启了防火墙策略,此时需要配置修改 Linux 的防火墙(iptables),开放对应的redis端口,该端口为你启动的redis配置文件中对应的端口号 ,默认是 6379。

-A INPUT -m state –state NEW -m tcp -p tcp –dport 6379 -j ACCEPT 
…… 
-A INPUT -j REJECT –reject-with icmp-host-prohibited

请注意,一定要将 redis 的防火墙配置放在 REJECT 的前面。然后执行 service iptables restart。

3、重启redis服务

到此这篇关于Redis配置外网可访问(redis远程连接不上)的方法的文章就介绍到这了,更多相关Redis外网访问内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Redis 相关文章推荐
基于Redis位图实现用户签到功能
May 08 Redis
redis实现排行榜功能
May 24 Redis
缓存替换策略及应用(以Redis、InnoDB为例)
Jul 25 Redis
使用redis实现延迟通知功能(Redis过期键通知)
Sep 04 Redis
详解redis在微服务领域的贡献
Oct 16 Redis
分布式Redis Cluster集群搭建与Redis基本用法
Feb 24 Redis
redis击穿 雪崩 穿透超详细解决方案梳理
Mar 17 Redis
Redis集群节点通信过程/原理流程分析
Mar 18 Redis
基于Redis6.2.6版本部署Redis Cluster集群的问题
Apr 01 Redis
Redis 报错 error:NOAUTH Authentication required
May 15 Redis
redis protocol通信协议及使用详解
Jul 15 Redis
基于Redission的分布式锁实战
Aug 14 Redis
Redis实战之Lettuce的使用技巧详解
Dec 24 #Redis
python中使用redis用法详解
Dec 24 #Redis
Redis主从复制操作和配置详情
Sep 23 #Redis
基于Redission的分布式锁实战
基于redis+lua进行限流的方法
Jul 23 #Redis
Redis过期数据是否会被立马删除
Jul 23 #Redis
如何使用注解方式实现 Redis 分布式锁
Jul 23 #Redis
You might like
PHP 冒泡排序算法的实现代码
2010/08/08 PHP
ThinkPHP整合百度Ueditor图文教程
2014/10/21 PHP
常见效果实现之返回顶部(结合淡入、淡出、减速滚动)
2012/01/04 Javascript
jquery ajax提交整个表单元素的快捷办法
2013/03/27 Javascript
Javascript中 关于prototype属性实现继承的原理图
2013/04/16 Javascript
js去除空格的12种实用方法
2013/11/08 Javascript
jQuery级联操作绑定事件实例
2014/09/02 Javascript
JQuery中serialize()用法实例分析
2015/02/06 Javascript
jquery简单实现幻灯片的方法
2015/08/03 Javascript
Web开发必知Javascript技巧大全
2016/02/23 Javascript
jQuery实现点击任意位置弹出层外关闭弹出层效果
2016/10/19 Javascript
移动端触摸滑动插件swiper使用方法详解
2017/08/11 Javascript
vue环境搭建简单教程
2017/11/07 Javascript
vue登录路由验证的实现
2017/12/13 Javascript
react-native封装插件swiper的使用方法
2018/03/20 Javascript
Vue-CLI3.x 设置反向代理的方法
2018/12/06 Javascript
VUE简单的定时器实时刷新的实现方法
2019/01/20 Javascript
Vue项目环境搭建详细总结
2019/09/26 Javascript
[52:44]VGJ.T vs infamous Supermajor小组赛D组败者组第一轮 BO3 第一场 6.3
2018/06/04 DOTA
Python选择排序、冒泡排序、合并排序代码实例
2015/04/10 Python
django1.8使用表单上传文件的实现方法
2016/11/04 Python
python 读取.csv文件数据到数组(矩阵)的实例讲解
2018/06/14 Python
Python之数据序列化(json、pickle、shelve)详解
2019/08/30 Python
Pytorch 实现数据集自定义读取
2020/01/18 Python
如何清空python的变量
2020/07/05 Python
PyCharm 解决找不到新打开项目的窗口问题
2021/01/15 Python
CSS3实现类似翻书效果的过渡动画的示例代码
2019/09/06 HTML / CSS
突袭HTML5之Javascript API扩展2—地理信息服务及地理位置API学习
2013/01/31 HTML / CSS
意大利网上购书网站:Libraccio.it
2021/02/03 全球购物
大四学年自我鉴定
2013/11/13 职场文书
法律专业求职信
2014/05/24 职场文书
新店开张活动方案
2014/08/24 职场文书
法定代表人资格证明书
2014/09/11 职场文书
纪委书记群众路线整改措施思想汇报
2014/10/09 职场文书
2014年后勤管理工作总结
2014/12/01 职场文书
助学金申请书该怎么写?
2019/07/16 职场文书