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限流的实际应用
Apr 24 Redis
redis三种高可用方式部署的实现
May 11 Redis
分布式锁为什么要选择Zookeeper而不是Redis?看完这篇你就明白了
May 21 Redis
厉害!这是Redis可视化工具最全的横向评测
Jul 15 Redis
Redis字典实现、Hash键冲突及渐进式rehash详解
Sep 04 Redis
Redis RDB技术底层原理详解
Sep 04 Redis
使用RedisTemplat实现简单的分布式锁
Nov 20 Redis
redis的list数据类型相关命令介绍及使用
Jan 18 Redis
Redis命令处理过程源码解析
Feb 12 Redis
sentinel支持的redis高可用集群配置详解
Apr 01 Redis
Redis 限流器
May 15 Redis
Redis基本数据类型Set常用操作命令
Jun 01 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编程实现获取excel文档内容的代码实例
2011/06/28 PHP
shell脚本作为保证PHP脚本不挂掉的守护进程实例分享
2013/07/15 PHP
常用PHP数组排序函数归纳
2016/08/08 PHP
Thinkphp5 自定义上传文件名的实现方法
2019/07/23 PHP
js arguments,jcallee caller用法总结
2013/11/30 Javascript
file控件选择上传文件确定后触发的js事件是哪个
2014/03/17 Javascript
什么是Node.js?Node.js详细介绍
2014/06/01 Javascript
JS组件Bootstrap dropdown组件扩展hover事件
2016/04/17 Javascript
jQuery插件AjaxFileUpload实现ajax文件上传
2016/05/05 Javascript
JavaScript进阶练习及简单实例分析
2016/06/03 Javascript
jQuery学习笔记之回调函数
2016/08/15 Javascript
浅析vue component 组件使用
2017/03/06 Javascript
vue引入jq插件的实例讲解
2017/09/12 Javascript
vue项目关闭eslint校验
2018/03/21 Javascript
Vue全局分页组件的实现代码
2018/08/10 Javascript
发布Angular应用至生产环境的方法
2018/12/10 Javascript
15分钟深入了解JS继承分类、原理与用法
2019/01/19 Javascript
vue父子组件通信的高级用法示例
2019/08/29 Javascript
在vue项目中引用Antv G2,以饼图为例讲解
2020/10/28 Javascript
python中的代码编码格式转换问题
2015/06/10 Python
python中Apriori算法实现讲解
2017/12/10 Python
python 中if else 语句的作用及示例代码
2018/03/05 Python
Python随机生成身份证号码及校验功能
2018/12/04 Python
对Python闭包与延迟绑定的方法详解
2019/01/07 Python
Python requests模块实例用法
2019/02/11 Python
django框架用户权限中的session缓存到redis中的方法
2019/08/06 Python
Python新手如何理解循环加载模块
2020/05/29 Python
python中使用.py配置文件的方法详解
2020/11/23 Python
加拿大休闲和工业服装和鞋类零售商:L’Équipeur
2018/01/12 全球购物
美国名牌手表折扣网站:Jomashop
2020/05/22 全球购物
爱情寄语大全
2014/04/09 职场文书
法院执行局工作总结
2015/08/11 职场文书
优秀共产党员主要事迹材料
2015/11/05 职场文书
简述python四种分词工具,盘点哪个更好用?
2021/04/13 Python
动漫APP软件排行榜前十名,半次元上榜,第一款由腾讯公司推出
2022/03/18 杂记
20180830晚上第一届KSL半决赛 雨神vs解冻(二龙 三炮解说)
2022/04/01 星际争霸