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 IP地址的绑定的实现
May 08 Redis
基于Redis位图实现用户签到功能
May 08 Redis
Redis Cluster 字段模糊匹配及删除
May 27 Redis
关于redisson缓存序列化几枚大坑说明
Aug 04 Redis
Redis 常见使用场景
Aug 30 Redis
在项目中使用redis做缓存的一些思路
Sep 14 Redis
Redis模仿手机验证码发送的实现示例
Nov 02 Redis
Redis之RedisTemplate配置方式(序列和反序列化)
Mar 13 Redis
Redis超详细讲解高可用主从复制基础与哨兵模式方案
Apr 07 Redis
Redis特殊数据类型HyperLogLog基数统计算法讲解
Jun 01 Redis
Redis Lua脚本实现ip限流示例
Jul 15 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 网页过期时间的控制代码
2009/06/29 PHP
解析PHP中的unset究竟会不会释放内存
2013/07/18 PHP
javascript实现轮显新闻标题链接
2007/08/13 Javascript
jquery validate.js表单验证的基本用法入门
2010/05/13 Javascript
DB.ASP 用Javascript写ASP很灵活很好用很easy
2011/07/31 Javascript
javascript学习笔记(九) js对象 设计模式
2012/06/19 Javascript
javascript修改表格背景色实例代码分享
2013/12/10 Javascript
jQuery制作可自定义大小的拼图游戏
2015/03/30 Javascript
深入探寻seajs的模块化与加载方式
2015/04/14 Javascript
浅谈jQuery构造函数分析
2015/05/11 Javascript
深入分析下javascript中的[]()+!
2015/07/07 Javascript
Google Maps基础及实例解析
2016/08/06 Javascript
学习掌握JavaScript中this的使用技巧
2016/08/29 Javascript
jQuery复制节点用法示例(clone方法)
2016/09/08 Javascript
AngularJS ng-repeat指令中使用track by子语句解决重复数据遍历错误问题
2017/01/21 Javascript
setTimeout学习小结
2017/02/08 Javascript
移动端利用H5实现压缩图片上传功能
2017/03/29 Javascript
Node.js中Bootstrap-table的两种分页的实现方法
2017/09/18 Javascript
详解javascript常用工具类的封装
2018/01/30 Javascript
使用Angular CLI进行Build(构建)和Serve详解
2018/03/24 Javascript
详解js删除数组中的指定元素
2018/10/31 Javascript
微信小程序生成分享海报方法(附带二维码生成)
2019/03/29 Javascript
微信小程序 云开发模糊查询实现解析
2019/09/02 Javascript
JavaScript switch语句使用方法简介
2019/12/30 Javascript
对Python进行数据分析_关于Package的安装问题
2017/05/22 Python
python中使用PIL制作并验证图片验证码
2018/03/15 Python
Windows 64位下python3安装nltk模块
2018/09/19 Python
python求质数列表的例子
2019/11/24 Python
python如何实现单链表的反转
2020/02/10 Python
Html5 Canvas实现图片标记、缩放、移动和保存历史状态功能 (附转换公式)
2020/03/18 HTML / CSS
运动会方阵解说词
2014/02/12 职场文书
怎样写好自我评价呢?
2014/02/16 职场文书
2014迎新年晚会策划方案
2014/02/23 职场文书
企业业务员岗位职责
2014/03/14 职场文书
2014年世界艾滋病日宣传活动总结
2014/11/18 职场文书
合同权益转让协议书模板
2014/11/18 职场文书