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 相关文章推荐
分布式锁为什么要选择Zookeeper而不是Redis?看完这篇你就明白了
May 21 Redis
厉害!这是Redis可视化工具最全的横向评测
Jul 15 Redis
解析redis hash应用场景和常用命令
Aug 04 Redis
为什么RedisCluster设计成16384个槽
Sep 25 Redis
Jedis操作Redis实现模拟验证码发送功能
Sep 25 Redis
Window server中安装Redis的超详细教程
Nov 17 Redis
Redis 中使用 list,streams,pub/sub 几种方式实现消息队列的问题
Mar 16 Redis
Redis调用Lua脚本及使用场景快速掌握
Mar 16 Redis
redis复制有可能碰到的问题汇总
Apr 03 Redis
Redis实现一个账号只能登录一个设备
Apr 19 Redis
Redis配置外网可访问(redis远程连接不上)的方法
Dec 24 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获取通过http协议post提交过来xml数据及解析xml
2012/12/16 PHP
wamp安装后自定义配置的方法
2014/08/23 PHP
PHP中SimpleXML函数用法分析
2014/11/26 PHP
护卫神php套件 php版本升级方法(php5.5.24)
2015/05/10 PHP
Laravel关系模型指定条件查询方法
2019/10/10 PHP
正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度
2008/09/27 Javascript
JavaScript 学习笔记 Black.Caffeine 09.11.28
2009/11/30 Javascript
js用正则表达式来验证表单(比较齐全的资源)
2013/11/17 Javascript
Javascript字符串对象的常用方法简明版
2014/06/26 Javascript
javascript面向对象之对象的深入理解
2015/01/13 Javascript
jQuery头像裁剪工具jcrop用法实例(附演示与demo源码下载)
2016/01/22 Javascript
javascript显示上周、上个月日期的处理方法
2016/02/03 Javascript
让DIV的滚动条自动滚动到最底部的3种方法(推荐)
2016/09/24 Javascript
对Angular.js Controller如何进行单元测试
2016/10/25 Javascript
VUE axios上传图片到七牛的实例代码
2017/07/28 Javascript
详解基于vue的移动web app页面缓存解决方案
2017/08/03 Javascript
React Native预设占位placeholder的使用
2017/09/28 Javascript
如何用input标签和jquery实现多图片的上传和回显功能
2018/05/16 jQuery
Node.js折腾记一:读指定文件夹,输出该文件夹的文件树详解
2019/04/20 Javascript
JS实现电脑虚拟键盘打字测试
2020/06/24 Javascript
JS实现移动端可折叠导航菜单(现代都市风)
2020/07/07 Javascript
vue中路由跳转不计入history的操作
2020/09/21 Javascript
python实现数通设备端口监控示例
2014/04/02 Python
在Python的框架中为MySQL实现restful接口的教程
2015/04/08 Python
分享python数据统计的一些小技巧
2016/07/21 Python
Python实现的爬虫功能代码
2017/06/24 Python
详解Django的model查询操作与查询性能优化
2018/10/16 Python
详解Python修复遥感影像条带的两种方式
2020/02/23 Python
Jupyter打开图形界面并画出正弦函数图像实例
2020/04/24 Python
基于html5实现的图片墙效果
2014/10/16 HTML / CSS
巴西葡萄酒销售网站:Wine.com.br
2017/11/07 全球购物
Linux Interview Questions For software testers
2012/06/02 面试题
优秀的导游求职信范文
2014/04/06 职场文书
服务之星事迹材料
2014/05/03 职场文书
新闻报道稿范文
2015/07/23 职场文书
宾馆客房管理制度
2015/08/06 职场文书