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 24 Redis
redis客户端实现高可用读写分离的方式详解
Jul 04 Redis
Redis 操作多个数据库的配置的方法实现
Mar 23 Redis
redis复制有可能碰到的问题汇总
Apr 03 Redis
解决 Redis 秒杀超卖场景的高并发
Apr 12 Redis
Redis如何实现验证码发送 以及限制每日发送次数
Apr 18 Redis
muduo TcpServer模块源码分析
Apr 26 Redis
Redis特殊数据类型Geospatial地理空间
Jun 01 Redis
Redis keys命令的具体使用
Jun 05 Redis
Redis实战之Lettuce的使用技巧详解
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 日期和时间的处理-郑阿奇(续)
2011/07/04 PHP
PHP魔术引号所带来的安全问题分析
2014/07/15 PHP
Yii框架关联查询with用法分析
2014/12/02 PHP
Swoole 5将移除自动添加Event::wait()特性详解
2019/07/10 PHP
地震发生中逃生十大法则
2008/05/12 Javascript
Extjs学习笔记之三 extjs form更多的表单项
2010/01/07 Javascript
一个js控制的导航菜单实例代码
2013/12/03 Javascript
JS生成随机字符串的多种方法
2014/06/10 Javascript
基于编写jQuery的无缝滚动插件
2014/08/02 Javascript
javascript中的this详解
2014/12/08 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
2016/09/23 Javascript
js代码实现下拉菜单【推荐】
2016/12/15 Javascript
jQuery+koa2实现简单的Ajax请求的示例
2018/03/06 jQuery
小程序实现带年月选取效果的日历
2018/06/27 Javascript
python生成随机验证码(中文验证码)示例
2014/04/03 Python
python新手经常遇到的17个错误分析
2014/07/30 Python
python根据路径导入模块的方法
2014/09/30 Python
Python多线程下载文件的方法
2015/07/10 Python
Django 添加静态文件的两种实现方法(必看篇)
2017/07/14 Python
Scrapy框架使用的基本知识
2018/10/21 Python
python可视化实现代码
2019/01/15 Python
详解python读取和输出到txt
2019/03/29 Python
详解Python连接MySQL数据库的多种方式
2019/04/16 Python
Linux下升级安装python3.8并配置pip及yum的教程
2020/01/02 Python
在python中利用dict转json按输入顺序输出内容方式
2020/02/27 Python
python如何将两张图片生成为全景图片
2020/03/05 Python
Eclipse配置python默认头过程图解
2020/04/26 Python
Python爬虫教程知识点总结
2020/10/19 Python
CSS3实现淘宝留白的方法
2020/06/05 HTML / CSS
HTML5调用手机发短信和打电话功能
2020/04/29 HTML / CSS
劳资员岗位职责
2013/11/11 职场文书
党员培训思想汇报
2014/01/07 职场文书
花木兰观后感
2015/06/10 职场文书
《认识年月日》教学反思
2016/02/19 职场文书
MySQL入门命令之函数-单行函数-流程控制函数
2021/04/05 MySQL
服务器SVN搭建图文安装过程
2022/06/21 Servers