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 12 Redis
redis限流的实际应用
Apr 24 Redis
详解缓存穿透击穿雪崩解决方案
May 28 Redis
5分钟教你docker安装启动redis全教程(全新方式)
May 29 Redis
redis实现的四种常见限流策略
Jun 18 Redis
redis使用不当导致应用卡死bug的过程解析
Jul 01 Redis
redis requires ruby version2.2.2的解决方案
Jul 15 Redis
Redis分布式锁Redlock的实现
Aug 07 Redis
Redis的字符串是如何实现的
Oct 24 Redis
高并发下Redis如何保持数据一致性(避免读后写)
Mar 18 Redis
Redis集群节点通信过程/原理流程分析
Mar 18 Redis
Redis分布式锁的7种实现
Apr 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
CodeIgniter CLI模式简介
2014/06/17 PHP
Laravel框架学习笔记(二)项目实战之模型(Models)
2014/10/15 PHP
关于php unset对json_encode的影响详解
2018/11/14 PHP
ThinkPHP5分页paginate代码实例解析
2020/11/10 PHP
(转载)JavaScript中匿名函数,函数直接量和闭包
2007/05/08 Javascript
解决AJAX中跨域访问出现'没有权限'的错误
2008/08/20 Javascript
小型js框架veryide.librar源代码
2009/03/05 Javascript
js 图片随机不定向浮动的实现代码
2013/07/02 Javascript
在每个匹配元素的外部插入新元素的方法
2013/12/20 Javascript
使用正则表达式的格式化与高亮显示json字符串
2014/12/03 Javascript
基于JavaScript如何实现私有成员的语法特征及私有成员的实现方式
2015/10/28 Javascript
JavaScript的==运算详解
2016/07/20 Javascript
10分钟掌握XML、JSON及其解析
2020/12/06 Javascript
Vue.JS入门教程之事件监听
2016/12/01 Javascript
Flask中获取小程序Request数据的两种方法
2017/05/12 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【凹多边形的分离轴检测算法】
2018/12/13 Javascript
bootstrap table.js动态填充单元格数据的多种方法
2019/07/18 Javascript
JS几个常用的函数和对象定义与用法示例
2020/01/15 Javascript
js实现点赞效果
2020/03/16 Javascript
vue print.js打印支持Echarts图表操作
2020/11/13 Javascript
[02:28]DOTA2亚洲邀请赛 LGD战队巡礼
2015/02/03 DOTA
[07:54]DOTA2-DPC中国联赛 正赛 iG vs VG 选手采访
2021/03/11 DOTA
基于python的图片修复程序(实现水印去除)
2018/06/04 Python
mac安装scrapy并创建项目的实例讲解
2018/06/13 Python
Python3常见函数range()用法详解
2019/12/30 Python
Python3读写Excel文件(使用xlrd,xlsxwriter,openpyxl3种方式读写实例与优劣)
2020/02/13 Python
Python如何根据时间序列数据作图
2020/05/12 Python
PyQt5 QDockWidget控件应用详解
2020/08/12 Python
关于webview适配H5上传照片或者视频文件的方法
2020/11/04 HTML / CSS
Wiggle中国:英国骑行、跑步、游泳 & 铁三运动装备专卖网店
2016/08/02 全球购物
优衣库英国官网:UNIQLO英国
2016/12/25 全球购物
幼儿园教师请假制度
2014/01/16 职场文书
村党支部换届选举方案
2014/05/02 职场文书
国家税务局领导班子对照检查材料思想汇报
2014/10/04 职场文书
护士自我推荐信范文
2015/03/24 职场文书
Nginx动静分离配置实现与说明
2022/04/07 Servers