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三种高可用方式部署的实现
May 11 Redis
详解Redis瘦身指南
May 26 Redis
详解Redis复制原理
Jun 04 Redis
redis不能访问本机真实ip地址的解决方案
Jul 07 Redis
浅谈redis整数集为什么不能降级
Jul 25 Redis
Redisson实现Redis分布式锁的几种方式
Aug 07 Redis
为什么RedisCluster设计成16384个槽
Sep 25 Redis
redis中lua脚本使用教程
Nov 01 Redis
使用RedisTemplat实现简单的分布式锁
Nov 20 Redis
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
Mar 16 Redis
sentinel支持的redis高可用集群配置详解
Apr 01 Redis
Redis实现一个账号只能登录一个设备
Apr 19 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 smarty函数扩展
2010/03/15 PHP
php单链表实现代码分享
2016/07/04 PHP
PHP执行shell脚本运行程序不产生core文件的方法
2016/12/28 PHP
用YUI做了个标签浏览效果
2007/02/20 Javascript
javascript 出生日期和身份证判断大全
2008/11/13 Javascript
jQuery实现右侧显示可向左滑动展示的深色QQ客服效果代码
2015/10/23 Javascript
AngularJS中实现显示或隐藏动画效果的方式总结
2015/12/31 Javascript
JavaScript闭包实例详解
2016/06/03 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
2016/07/10 Javascript
vue.js声明式渲染和条件与循环基础知识
2017/07/31 Javascript
webpack打包node.js后端项目的方法
2018/03/10 Javascript
微信小程序中this.data与this.setData的区别详解
2018/09/17 Javascript
vue实现跨域的方法分析
2019/05/21 Javascript
webpack4 配置 ssr 环境遇到“document is not defined”
2019/10/24 Javascript
JavaScript HTML DOM 元素 (节点)新增,编辑,删除操作实例分析
2020/03/02 Javascript
[03:02]2014DOTA2西雅图邀请赛 让队员自己告诉你DK NAVI备战情况
2014/07/08 DOTA
python进阶教程之循环相关函数range、enumerate、zip
2014/08/30 Python
零基础写python爬虫之爬虫的定义及URL构成
2014/11/04 Python
Python中设置变量作为默认值时容易遇到的错误
2015/04/03 Python
Python3安装Pymongo详细步骤
2017/05/26 Python
python numpy数组的索引和切片的操作方法
2018/10/20 Python
Python编程中类与类的关系详解
2019/08/08 Python
python pandas利用fillna方法实现部分自动填充功能
2020/03/16 Python
解决python便携版无法直接运行py文件的问题
2020/09/01 Python
详解CSS3中Media Queries的相关使用
2015/07/17 HTML / CSS
CSS3 边框效果
2019/11/04 HTML / CSS
猫途鹰:全球领先的旅游点评社区
2017/04/07 全球购物
白兰氏健康Mall:BRAND’S
2017/11/13 全球购物
英国广泛的照明产品网站:Lights4living
2018/01/28 全球购物
幼儿园教研活动方案
2014/01/19 职场文书
出纳试用期自我鉴定
2014/04/07 职场文书
2014年残联工作总结
2014/11/21 职场文书
学雷锋献爱心活动总结
2015/05/11 职场文书
社交电商模式的兴起:这些新的商机千万别错过
2019/07/26 职场文书
jquery插件实现悬浮的菜单
2021/04/24 jQuery
Python标准库pathlib操作目录和文件
2021/11/20 Python