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
Redis6.0搭建集群Redis-cluster的方法
May 08 Redis
分布式锁为什么要选择Zookeeper而不是Redis?看完这篇你就明白了
May 21 Redis
解析Redis Cluster原理
Jun 21 Redis
Redis Cluster集群动态扩容的实现
Jul 15 Redis
Redis的字符串是如何实现的
Oct 24 Redis
linux下安装redis图文详细步骤
Dec 04 Redis
Redis集群节点通信过程/原理流程分析
Mar 18 Redis
redis复制有可能碰到的问题汇总
Apr 03 Redis
Redis如何实现验证码发送 以及限制每日发送次数
Apr 18 Redis
Redis基本数据类型Zset有序集合常用操作
Jun 01 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
安健A254立体声随身听的分析与打磨
2021/03/02 无线电
用PHP和MySQL保存和输出图片
2006/10/09 PHP
附件名前加网站名
2008/03/23 PHP
FireFox浏览器使用Javascript上传大文件
2013/10/30 PHP
Symfony核心类概述
2016/03/17 PHP
JS操作XML中DTD介绍及使用方法分析
2019/07/04 PHP
jQuery Ajax 实例全解析
2011/04/20 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
2014/06/29 Javascript
jQuery中live()方法用法实例
2015/01/19 Javascript
基于jQuery插件实现环形图标菜单旋转切换特效
2015/05/15 Javascript
CSS图片响应式 垂直水平居中
2015/08/14 Javascript
node.js抓取并分析网页内容有无特殊内容的js文件
2015/11/17 Javascript
JS判断当前页面是否在微信浏览器打开的方法
2015/12/08 Javascript
AngularJS中实现显示或隐藏动画效果的方式总结
2015/12/31 Javascript
15个非常实用的JavaScript代码片段
2016/12/18 Javascript
javascript事件的传播基础实例讲解(35)
2017/02/14 Javascript
jQuery实现遍历复选框的方法示例
2017/03/06 Javascript
详解Vue2+Echarts实现多种图表数据可视化Dashboard(附源码)
2017/03/21 Javascript
移动端网页开发调试神器Eruda的介绍与使用技巧
2017/10/30 Javascript
JS使用队列对数组排列,基数排序算法示例
2019/03/02 Javascript
分享一款超好用的JavaScript 打包压缩工具
2020/04/26 Javascript
[03:51]吞吞映像 每周精彩击杀top10第二弹
2014/06/25 DOTA
python对url格式解析的方法
2015/05/13 Python
如何利用Fabric自动化你的任务
2016/10/20 Python
浅谈python和C语言混编的几种方式(推荐)
2017/09/27 Python
python中从str中提取元素到list以及将list转换为str的方法
2018/06/26 Python
使用Python向DataFrame中指定位置添加一列或多列的方法
2019/01/29 Python
HTML5 Web 存储详解
2016/09/16 HTML / CSS
斯凯奇新西兰官网:SKECHERS新西兰
2018/02/22 全球购物
生物技术研究生自荐信
2013/11/12 职场文书
运动会广播稿300字
2014/01/10 职场文书
大学军训感言300字
2014/03/09 职场文书
2014年群众路线教育实践活动整改措施
2014/09/24 职场文书
贪污检举信范文
2015/03/02 职场文书
python中的None与NULL用法说明
2021/05/25 Python
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技