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 相关文章推荐
Redis5之后版本的高可用集群搭建的实现
Apr 27 Redis
redis实现共同好友的思路详解
May 26 Redis
5分钟教你docker安装启动redis全教程(全新方式)
May 29 Redis
在redisCluster中模糊获取key方式
Jul 09 Redis
Redisson实现Redis分布式锁的几种方式
Aug 07 Redis
Redis字典实现、Hash键冲突及渐进式rehash详解
Sep 04 Redis
详解redis在微服务领域的贡献
Oct 16 Redis
redis的list数据类型相关命令介绍及使用
Jan 18 Redis
Redis调用Lua脚本及使用场景快速掌握
Mar 16 Redis
Redis 哨兵机制及配置实现
Mar 25 Redis
Redis+AOP+自定义注解实现限流
Jun 28 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
异世界新番又来了,同样是从零开始,男主的年龄降到5岁
2020/04/09 日漫
东方红 - 来复式再生机的修复
2021/03/02 无线电
PHP中,文件上传
2006/12/06 PHP
PHP中array_map与array_column之间的关系分析
2014/08/19 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
2018/12/20 PHP
jQuery 浮动广告实现代码
2008/12/25 Javascript
JQuery从头学起第三讲
2010/07/06 Javascript
javascript Array.prototype.slice使用说明
2010/10/11 Javascript
javascript 常用功能总结
2012/03/18 Javascript
关于js中for in的缺陷浅析
2013/12/02 Javascript
jQuery插件EnPlaceholder实现输入框提示文字
2015/06/05 Javascript
ES6中非常实用的新特性介绍
2016/03/10 Javascript
基于JS如何实现类似QQ好友头像hover时显示资料卡的效果(推荐)
2016/06/09 Javascript
AngularJS ng-bind-template 指令详解
2016/07/30 Javascript
JS简单实现点击复制链接的方法
2016/08/03 Javascript
微信小程序 图片绝对定位(背景图片)
2017/04/05 Javascript
JS判断Android、iOS或浏览器的多种方法(四种方法)
2017/06/29 Javascript
基于JavaScript实现表格滚动分页
2017/11/22 Javascript
JS实现简单的文字无缝上下滚动功能示例
2019/06/22 Javascript
Jquery 动态添加元素并添加点击事件实现过程解析
2019/10/12 jQuery
JQuery获得内容和属性方法解析
2020/05/30 jQuery
Vue中computed及watch区别实例解析
2020/08/01 Javascript
Python使用MD5加密字符串示例
2014/08/22 Python
python使用range函数计算一组数和的方法
2015/05/07 Python
Java实现的执行python脚本工具类示例【使用jython.jar】
2018/03/29 Python
Python安装Flask环境及简单应用示例
2019/05/03 Python
在Python中通过threshold创建mask方式
2020/02/19 Python
如何基于Python爬虫爬取美团酒店信息
2020/11/03 Python
FC-Moto英国:欧洲最大的摩托车服装和头盔商店之一
2019/08/25 全球购物
合同意向书范本
2014/07/30 职场文书
银行员工犯错检讨书
2014/09/16 职场文书
党员干部作风建设思想汇报范文
2014/10/25 职场文书
酒会邀请函
2015/01/31 职场文书
高校自主招生教师推荐信
2015/03/23 职场文书
驳回起诉裁定书
2015/05/19 职场文书
在HTML5 localStorage中存储对象的示例代码
2021/04/21 Javascript