【redis】能ping通虚拟机但是telnet不通

news2024/9/29 21:21:26

问题

虚拟机上有redis,能ping通虚拟机的ip,但是telnet已启动的redis6379端口失败

基本情况

虚拟机网络模式是NAT模式,linux防火墙firewalld已关闭,没有iptables,主机和虚拟机能互相Ping通,主机telnet redis失败

问题解决方案

尝试了比较多的方法,总结如下:

1,防火墙要关闭,如果开启防火墙,要将redis的端口开启防火墙的外部端口

下面我仅列出来firewalld的命令,如果还有iptables,也要使用类似的处理方式,命令自己搜一下。

开启/关闭/开机自启动/禁止自启动防火墙

#防火墙允许开机自启动
systemctl enable firewalld
#防火墙禁止开机自启动
systemctl disable firewalld
#开启防火墙
systemctl start firewalld
#关闭防火墙
systemctl stop firewalld
#查看防火墙状态
systemctl status firewalld


添加外部端口

#添加6379为外部端口,--permanent表示永久的
firewall-cmd --zone=public --permanent --add-port=6379/tcp
#移除6379作为外部端口,--permanent表示永久的
firewall-cmd --zone=public --remove-port=80/tcp --permanent
#允许http服务,redis这里用不到,web服务能用到
firewall-cmd --zone=public --add-service=http --permanent
#重新加载防火墙
firewall-cmd --reload
#查看端口是否开放
firewall-cmd --query-port=6379/tcp
#查看所有开放端口
firewall-cmd --list-port

2,虚拟机网络模式设置为NAT在这里插入图片描述
3,配置文件里面的修改
3.1 protected-mode
保护模式开启且没有密码时,redis会仅接收本机的请求。解决办法是如果你是自己做demo和测试学习用的,protected-mode直接改为no,如果是工作用的,设置密码吧

配置文件中注释如下:

# Protected mode is a layer of security protection, in order to avoid that
# Redis instances left open on the internet are accessed and exploited.
#
# When protected mode is on and the default user has no password, the server
# only accepts local connections from the IPv4 address (127.0.0.1), IPv6 address
# (::1) or Unix domain sockets.
#
# By default protected mode is enabled. You should disable it only if
# you are sure you want clients from other hosts to connect to Redis
# even if no authentication is configured.
protected-mode no

3.2 bind
bind如果注掉,那么就会接受任何请求。
如果开启这一项,由前面的ip加上后面指定网卡类型。
如果是127.0.0.1,那么就会仅接受来自本机的ipv4的请求。如果是0.0.0.0,会接受任何ipv4的请求。如果是绑定指定的ip,那么就会仅接收指定ip来的请求。
其中上面的ip的格式是接受ipv4,如果想同时接受Ipv4和ipv6,可以在后面跟上 ::1。如果是想接受任何类型的连接,后面跟上 -:😗 。

这里我使用的是bind 0.0.0.0。我这里仅限学习测试使用。工作中要指定具体的ip。

bind的注释如下

# By default, if no "bind" configuration directive is specified, Redis listens
# for connections from all available network interfaces on the host machine.
# It is possible to listen to just one or multiple selected interfaces using
# the "bind" configuration directive, followed by one or more IP addresses.
# Each address can be prefixed by "-", which means that redis will not fail to
# start if the address is not available. Being not available only refers to
# addresses that does not correspond to any network interface. Addresses that
# are already in use will always fail, and unsupported protocols will always BE
# silently skipped.
#
# Examples:
#
# bind 192.168.1.100 10.0.0.1     # listens on two specific IPv4 addresses
# bind 127.0.0.1 ::1              # listens on loopback IPv4 and IPv6
# bind * -::*                     # like the default, all available interfaces
#
# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the
# internet, binding to all the interfaces is dangerous and will expose the
# instance to everybody on the internet. So by default we uncomment the
# following bind directive, that will force Redis to listen only on the
# IPv4 and IPv6 (if available) loopback interface addresses (this means Redis
# will only be able to accept client connections from the same host that it is
# running on).
#
# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
# COMMENT OUT THE FOLLOWING LINE.
#
# You will also need to set a password unless you explicitly disable protected
# mode.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bind 0.0.0.0
#bind * -::*


4 注意开机自启动的redis
有的时候,redis我们配置累开机自启动。自启动的脚本在/etc/init.d/目录下,其中,自启动脚本里面会配置CONF,也就是配置文件的读取路径。
可能你的linux中有多份配置文件或者多个路径下都有配置文件。那么此时要注意的是,我们要修改的配置文件是否和启动的时候使用的配置文件一样。不要出现南辕北辙的情况。

总结

我实际上遇到的问题,

是bind那里为127.0.0.1的本机ip,改为0.0.0.0;

我没有设置密码,同时protected-mode为yes,所以我修改为了no

此外还有我的开机自启动的redis的配置文件在其他路径,和我通过指定配置文件启动的那个路径不一样。所以我有时候按照上面修改了配置文件,但是开机自启动的redis的bind的ip还是显示是127.0.0.1。我刚开始也是有点疑惑的,直到后来打开自启动脚本发现自启动的脚本读的配置文件在另外一个路径里。

参考文章
[1],redis 6379端口不通解决方法
[2],Redis 6379端口连接失败
[3],windows本地连不上虚拟机redis服务完美解决
[4],linux设置防火墙,自启动以及关闭禁止防火墙
[5],虚拟机centos7开放端口(8080为例)
[6],Linux查看防火墙状态及开启关闭命令
[7],主机可以ping通虚拟机但无法访问虚拟机某一端口
[8],本机和虚机ping的通,但是虚机ip+端口访问不了(ubuntu)
[9],Redis关闭开机自启和Redis使用配置文件启动不生效解决(Ubantu)
[10],Linux防火墙IPTABLES的安装与配置
[11],Linux:CentOS7下关闭SELINUX

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/837349.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

后端进阶之路——Spring Security构建强大的身份验证和授权系统(四)

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★前端炫酷代码分享 ★ ★ uniapp-从构建到提升★ ★ 从0到英雄,vue成神之路★ ★ 解决算法,一个专栏就够了★ ★ 架…

鸿蒙的初项目

经过这几天的了解,我还是决定挑战一下自己用ets语言去写一个鸿蒙的程序! 先创建了一个ets的项目,然后我发现这里面有一个组件叫Flex,跟css里面的弹性布局好像差不多,但是用法略有差异,这个Flex是在&#xf…

Python---Numpy

文章目录 1.Numpy是什么?2.ndarray2.1 什么是ndarray?2.2 ndarray的属性2.3 ndarray的类型 3.Numpy基本操作3.1 生成0或1的数组3.2 从现有数组生成数组拓展:浅拷贝和深拷贝 3.3 生成固定范围的数组3.4 生成随机数组3.4.1 正态分布3.4.2 均匀分布 3.5 形…

网络安全(黑客)工具篇

大家好,我是白菜。这篇文章给大家盘点那些年,我们一起玩过的网络安全工具。 一、反恶意代码软件 1.Malwarebytes 这是一个检测和删除恶意的软件,包括蠕虫,木马,后门,流氓,拨号器,…

3D视觉算法工程师的工资,真是离谱!

小凡:「与其服务一个公司,不如服务一个行业」 一 我的从业经历 大家好,我是小凡,「3D视觉从入门到精通」知识星球的星主。 这里简单介绍下的我的从业经历。 本科主要是做机械出身,研究生入行3D视觉,这里…

SSM(Vue3+ElementPlus+Axios+SSM前后端分离)--搭建Vue 前端工程[二]

文章目录 SSM--搭建Vue 前端工程--项目基础界面实现功能02-创建项目基础界面需求分析效果图思路分析 代码实现项目前后端分离情况项目前后端分离情况如图 注意事项和细节 SSM–搭建Vue 前端工程–项目基础界面 实现功能02-创建项目基础界面 需求分析 效果图 思路分析 使用V…

.Net6 Web Core API 配置 Autofac 封装 --- 依赖注入

目录 一、NuGet 包导入 二、Autofac 封装类 三、Autofac 使用 四、案例测试 下列封装 采取程序集注入方法, 单个依赖注入, 也适用, 可<依赖注入>的地方配置 一、NuGet 包导入 Autofac Autofac.Extensions.DependencyInjection Autofac.Extras.DynamicProxy 二、Auto…

【Linux】——信号量、线程池

目录 POSIX信号量 信号量的原理 信号量的概念 信号量函数接口 信号量与互斥锁 二元信号量 二元信号量模拟实现互斥功能 基于环形队列的生产消费模型 空间资源的数据资源 申请和释放资源 两个原则 Linux线程池 线程池的概念 线程池的应用场景 线程池的实现 线程…

【ASP.NET MVC】使用动软(二)(10)

一、添加动软生成工程 按前文添加动态到工程 双击动软 完成新建数据库服务器后 &#xff0c;需要关闭重新打开 选择简单三层&#xff0c;注意保存位置 注意切换数据库&#xff1a; 生成后拷贝五个文件夹到工程目录 注意目录结构&#xff1a; 添加四个项目到原来的工程&…

Python接口自动化之cookie、session应用

以下介绍cookie、session原理及在接口自动化中的应用。 HTTP 协议是一种无状态协议&#xff0c;即每次服务端接收到客户端的请求时&#xff0c;都是一个全新的请求&#xff0c;服务器并不知道客户端的历史请求记录&#xff1b;Session 和 Cookie 的主要目的就是为了弥补 HTTP 的…

数学知识(二)

一、裴蜀定理 对于任意整数a,b&#xff0c;一定存在非零整数x,y&#xff0c;使得 ax by gcd(a,b) #include<iostream> #include<algorithm>using namespace std;int exgcd(int a,int b,int &x,int &y) {if(!b){x 1,y 0;return a;}int d exgcd(b,a %…

adb 调试oppo k11过程记录

学习使用appium工具&#xff0c;自动化测试andriod应用程序。 过程记录 背景交代 手机&#xff1a;oppo k11 系统&#xff1a; macOS 手机开启use调试 具体细节&#xff0c;可百度 安装软件 adbappiumappium-inspector adb安装 下载adb工具包platform-tools, 解压。 直…

SpringBoot3---核心特性---1、快速入门II

星光下的赶路人star的个人主页 要活出自己之后再被人理解 文章目录 1、核心技能1.1 常用注解1.1.1 组件注册1.1.2 条件注解1.1.3 属性绑定 1.2 YAML配置文件1.2.1 基本语法1.2.2 示例1.2.3 细节1.2.4 小技巧&#xff1a;lombok 1.3 日志配置1.3.1 简介1.3.2 日志格式1.3.3 记录…

Qt视频播放器

一、设置好ui界面二、打开文件槽函数1.QDir::homePath()作用介绍2.QFileDialog::getOpenFileName()介绍3.QFileInfo介绍4.player 指针解释5.打开文件槽函数完整代码 三、视频播放器初始化1.QMediaPlayer()函数2.设置时间间隔的作用3. QGraphicsScene介绍4.QGraphicsVideoItem介…

【bug】记录一次使用Swiper插件时loop属性和slidersPerView属性冲突问题

简言 最近在vue3使用swiper时&#xff0c;突然发现loop属性和slides-per-view属性同时存在启用时&#xff0c;loop生效&#xff0c;下一步只能生效一次的bug&#xff0c;上一步却是好的。非常滴奇怪。 解决过程 分析属性是否使用错误。 loop是循环模式&#xff0c;布尔型。 …

【广州华锐视点】葡萄种植VR虚拟仿真实训平台

随着虚拟现实(VR)技术的不断发展&#xff0c;越来越多的教育领域开始尝试将VR技术应用于教学中。在葡萄栽培这一专业领域&#xff0c;我们开发了一款创新的VR实训课件&#xff0c;旨在为学生提供沉浸式的互动学习体验。本篇文案将为您介绍葡萄种植VR虚拟仿真实训平台所提供的互…

【数据结构】“单链表”的练习题

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

集成学习算法是什么?如何理解集成学习?

什么是集成学习&#xff1f; 集成学习通过建立几个模型来解决单一预测问题。它的工作原理是生成多个分类器/模型&#xff0c;各自独立地学习和作出预测。这些预测最后结合成组合预测&#xff0c;因此优于任何一个单分类的做出预测。 机器学习的两个核心任务 任务一&#xff1…

C语言经典小游戏之三子棋(超详解释+源码)

“纵有疾风来&#xff0c;人生不言弃&#xff0c;风乍起&#xff0c;合当奋意向此生。” 今天我们一起来学习一下三子棋小游戏用C语言怎么写出来&#xff1f; 三子棋小游戏 1.游戏规则介绍2.游戏准备3.游戏的实现3.1生成菜单3.2游戏的具体实现3.2.1初始化棋盘3.2.2打印棋盘3.2…

【ChatGLM_02】LangChain知识库+Lora微调chatglm2-6b模型+提示词Prompt的使用原则

经验沉淀 1 知识库1.1 Langchain知识库的主要功能(1) 配置知识库(2) 文档数据测试(3) 知识库测试模式(4) 模型配置 2 微调2.1 微调模型的概念2.2 微调模型的方法和步骤(1) 基于ptuning v2 的微调(2) 基于lora的微调 3 提示词3.1 Prompts的定义及原则(1) Prompts是什么&#xf…