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 查看所有的key方式
May 07 Redis
redis 限制内存使用大小的实现
May 08 Redis
Redis高级数据类型Hyperloglog、Bitmap的使用
May 24 Redis
详解缓存穿透击穿雪崩解决方案
May 28 Redis
你真的了解redis为什么要提供pipeline功能
Jun 22 Redis
浅谈Redis中的RDB快照
Jun 29 Redis
Redis模仿手机验证码发送的实现示例
Nov 02 Redis
SpringBoot整合Redis入门之缓存数据的方法
Nov 17 Redis
Redis 中使用 list,streams,pub/sub 几种方式实现消息队列的问题
Mar 16 Redis
Redis实现一个账号只能登录一个设备
Apr 19 Redis
Redis Lua脚本实现ip限流示例
Jul 15 Redis
Redis主从复制操作和配置详情
Sep 23 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
ThinkPHP写数组插入与获取最新插入数据ID实例
2014/11/03 PHP
Yii框架连接mongodb数据库的代码
2016/07/27 PHP
thinkphp表单上传文件并将文件路径保存到数据库中
2016/07/28 PHP
Gambit vs CL BO3 第一场 2.13
2021/03/10 DOTA
Nigma vs Alliance BO5 第一场2.14
2021/03/10 DOTA
js关闭浏览器窗口及检查浏览器关闭事件
2013/09/03 Javascript
display和visibility的区别示例介绍
2014/02/26 Javascript
兼容IE、firefox以及chrome的js获取时间(getFullYear)
2014/07/04 Javascript
js检测判断日期大于多少天的方法
2015/05/04 Javascript
jQuery实现滑动页面固定顶部显示(可根据显示位置消失与替换)
2015/10/28 Javascript
微信小程序 template模板详解及实例
2017/02/21 Javascript
整理关于Bootstrap列表组的慕课笔记
2017/03/29 Javascript
微信小程序开发图片拖拽实例详解
2017/05/05 Javascript
Vue中定义全局变量与常量的各种方式详解
2017/08/23 Javascript
微信小程序 数据绑定及运算的简单实例
2017/09/20 Javascript
JavaScript事件对象event用法分析
2018/07/27 Javascript
Node.js log4js日志管理详解
2018/07/31 Javascript
微信小程序JS加载esmap地图的实例详解
2019/09/04 Javascript
vue vantUI实现文件(图片、文档、视频、音频)上传(多文件)
2019/10/15 Javascript
用Javascript实现发送短信验证码间隔功能
2021/02/08 Javascript
[00:56]跨越时空加入战场 全新祈求者身心“失落奇艺侍祭”展示
2019/07/20 DOTA
Python线性方程组求解运算示例
2018/01/17 Python
Django异步任务之Celery的基本使用
2019/03/23 Python
python yield关键词案例测试
2019/10/15 Python
利用HTML5+CSS3实现3D转换效果实例详解
2017/05/02 HTML / CSS
html2canvas截图空白问题的解决
2020/03/24 HTML / CSS
Vivo俄罗斯官方在线商店:中国智能手机品牌
2019/10/04 全球购物
应用心理学个人的求职信
2013/12/08 职场文书
前台文员职责范本
2014/03/07 职场文书
班级文化建设标语
2014/06/23 职场文书
2014镇党委书记党建工作汇报材料
2014/11/02 职场文书
2015中学学校工作总结
2015/07/20 职场文书
Python移位密码、仿射变换解密实例代码
2021/06/27 Python
SSM VUE Axios详解
2021/10/05 Vue.js
python分分钟绘制精美地图海报
2022/02/15 Python
vue实现列表拖拽排序的示例代码
2022/04/08 Vue.js