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 26 Redis
redis requires ruby version2.2.2的解决方案
Jul 15 Redis
详解Redis在SpringBoot工程中的综合应用
Oct 16 Redis
linux下安装redis图文详细步骤
Dec 04 Redis
redis数据一致性的实现示例
Mar 18 Redis
Redis 操作多个数据库的配置的方法实现
Mar 23 Redis
基于Redis6.2.6版本部署Redis Cluster集群的问题
Apr 01 Redis
redis sentinel监控高可用集群实现的配置步骤
Apr 01 Redis
使用Redis做预定库存缓存功能
Apr 02 Redis
redis复制有可能碰到的问题汇总
Apr 03 Redis
Redis高并发缓存架构性能优化
May 15 Redis
Redis基本数据类型String常用操作命令
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匹配字符中链接地址的方法
2014/12/22 PHP
PHP 数组基本操作方法详解
2016/06/17 PHP
PHP二分查找算法示例【递归与非递归方法】
2016/09/29 PHP
使用IE的地址栏来辅助调试Web页脚本
2007/03/08 Javascript
Javascript 匿名函数及其代码模式原理
2010/03/19 Javascript
解析使用JS 清空File控件的路径值
2013/07/08 Javascript
使用js操作cookie的一点小收获分享
2013/09/03 Javascript
jQuery中filter()和find()的区别深入了解
2013/09/25 Javascript
Javascript aop(面向切面编程)之around(环绕)分析
2015/05/01 Javascript
javascript数据类型验证方法
2015/12/31 Javascript
JS实现CheckBox复选框全选、不选或全不选功能
2020/07/28 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
VUEJS实战之利用laypage插件实现分页(3)
2016/06/13 Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
2016/07/08 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
2016/08/08 Javascript
js判断出两个字符串最大子串的函数实现方法
2016/11/01 Javascript
html判断当前页面是否在iframe中的实例
2016/11/30 Javascript
vue router 配置路由的方法
2018/07/26 Javascript
js字符串倒序的实例代码
2018/11/30 Javascript
利用PHP实现递归删除链表元素的方法示例
2020/10/23 Javascript
[02:32]DOTA2英雄基础教程 美杜莎
2014/01/07 DOTA
基于循环神经网络(RNN)的古诗生成器
2018/03/26 Python
python 实现数组list 添加、修改、删除的方法
2018/04/04 Python
Django之form组件自动校验数据实现
2020/01/14 Python
Python日志:自定义输出字段 json格式输出方式
2020/04/27 Python
如何在python中执行另一个py文件
2020/04/30 Python
Python读取Excel数据并生成图表过程解析
2020/06/18 Python
Python 解析xml文件的示例
2020/09/29 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
2020/10/16 Python
什么是静态路由,其特点是什么?什么是动态路由,其特点是什么?
2013/07/26 面试题
数控技校生自我鉴定
2014/03/02 职场文书
优秀班主任经验交流材料
2014/06/02 职场文书
六一晚会主持词开场白
2015/05/28 职场文书
安全生产协议书
2016/03/22 职场文书
MySQL数据库超时设置配置的方法实例
2021/10/15 MySQL
详解TypeScript的基础类型
2022/02/18 Javascript