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 27 Redis
使用Redis实现秒杀功能的简单方法
May 08 Redis
Redis数据结构之链表与字典的使用
May 11 Redis
为Java项目添加Redis缓存的方法
May 18 Redis
你真的了解redis为什么要提供pipeline功能
Jun 22 Redis
Redis Cluster 集群搭建你会吗
Aug 04 Redis
基于Redis的List实现特价商品列表功能
Aug 30 Redis
redis中lua脚本使用教程
Nov 01 Redis
SpringBoot整合Redis入门之缓存数据的方法
Nov 17 Redis
基于Redis zSet实现滑动窗口对短信进行防刷限流的问题
Feb 12 Redis
Redis基本数据类型Zset有序集合常用操作
Jun 01 Redis
Redis实现短信验证码登录的示例代码
Jun 14 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新手上路(六)
2006/10/09 PHP
php面向对象全攻略 (十二) 抽象方法和抽象类
2009/09/30 PHP
PHP中的访问修饰符简单比较
2019/02/02 PHP
Laravel5.1 框架Request请求操作常见用法实例分析
2020/01/04 PHP
搭建PhpStorm+PhpStudy开发环境的超详细教程
2020/09/17 PHP
JavaScript中的集合及效率
2010/01/08 Javascript
Wordpress ThickBox 添加“查看原图”效果代码
2010/12/11 Javascript
让元素在网页中可拖动示例代码
2013/08/13 Javascript
javascript正则表达式中的replace方法详解
2015/04/20 Javascript
springMVC结合AjaxForm上传文件
2016/07/12 Javascript
前端必备插件之纯原生JS的瀑布流插件Macy.js
2017/11/22 Javascript
vue2实现数据请求显示loading图
2017/11/28 Javascript
JavaScript 数组去重并统计重复元素出现的次数实例
2017/12/14 Javascript
JS使用cookie保存用户登录信息操作示例
2019/05/30 Javascript
vue实现评论列表功能
2019/10/25 Javascript
Python使用Windows API创建窗口示例【基于win32gui模块】
2018/05/09 Python
Python OS模块实例详解
2019/04/15 Python
Python网络爬虫之爬取微博热搜
2019/04/18 Python
Staples美国官方网站:办公用品一站式采购
2016/07/28 全球购物
夏尔巴人登珠峰品牌:Sherpa Adventure Gear
2018/02/08 全球购物
美国战术品牌:5.11 Tactical
2019/05/01 全球购物
什么是SCM(软件配置管理)
2014/08/16 面试题
浅谈react路由传参的几种方式
2021/03/23 Javascript
客户代表自我评价范例
2013/09/24 职场文书
中文专业毕业生自荐信
2013/10/28 职场文书
元旦联欢会主持词
2014/03/26 职场文书
《画》教学反思
2014/04/14 职场文书
詹天佑教学反思
2014/04/30 职场文书
创先争优活动承诺书
2014/08/30 职场文书
委托书如何写
2014/08/30 职场文书
上课不认真检讨书
2014/09/17 职场文书
关于运动会广播稿50字
2014/10/18 职场文书
领导参观欢迎词
2015/01/26 职场文书
MySQL sql_mode修改不生效的原因及解决
2021/05/07 MySQL
java基础——多线程
2021/07/03 Java/Android
Golang表示枚举类型的详细讲解
2021/09/04 Golang