【redis】能ping通虚拟机但是端口无法访问

news2024/9/28 11:17:17

问题

虚拟机上有redis,能ping通虚拟机的ip,但是idea连不上虚拟机里的redis,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。我刚开始也是有点疑惑的,直到后来打开自启动脚本发现自启动的脚本读的配置文件在另外一个路径里。

修改后,可以通过idea启动后连接并输出结果,telnet会失败,目前不知道原因。idea先用着,后面查一下telnet失败的原因。

参考文章
[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/838017.html

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

相关文章

东南亚跨境电商必看,使用代理IP洞察市场先机-IPIDEA全球HTTP

东南亚连续第三年成为全球电子商务增长最快的地区,预计到2025年,东南亚电商的市场规模将会达到2,340亿美元。虽然起步较晚,但随着移动互联网和数字支付的普及,东南亚跨境市场迅速崛起,呈现出蓬勃的发展态势。 人口基数…

Consul屏蔽api

consul 没有设置密码 需要屏蔽api:/v1/internal/ui/nodes?dc&token 防止信息泄露 配置config.json {"http_config": {"block_endpoints": ["/v1/internal/ui/nodes"]} }启动consul时使用该配置: consul agent -de…

模块化原理:source-map

1. webpack打包基本配置 1.安装webpack与webpack-cli npm i webpack webpack-cli 2.配置 "build":"webpack" 3. 新建webpack.config.js const path require(path); module.exports {// mode: "development",// 默认production(什么…

2023年土木、建筑与环境工程国际会议(ICCAEE 2023) | EI Compendex, Scopus双检索

会议简介 Brief Introduction 2023年土木、建筑与环境工程国际会议(ICCAEE 2023) 会议时间:2023年11月17日-19日 召开地点:中国广州 大会官网:ICCAEE 2023-2023 International Conference on Civil, Architectural and Environmental Enginee…

常见的设计模式(超详细)

文章目录 单例模式饿汉式单例模式懒汉式单例模式双重检索单例模式 工厂模式简单工厂模式工厂(方法)模式抽象工厂模式 原型模式代理模式 单例模式 确保一个类只有一个实例,并且自行实例化并向整个系统提供这个实例。 饿汉式单例模式 饿汉式单…

读书笔记-《ON JAVA 中文版》-摘要21第十九章 类型信息-2]

文章目录 第十九章 类型信息7. 动态代理8. Optional类9. 接口和类型10. 本章小结 第十九章 类型信息 7. 动态代理 代理是基本的设计模式之一。一个对象封装真实对象,代替其提供其他或不同的操作—这些操作通常涉及到与“真实”对象的通信,因此代理通常…

Shell脚本学习-for循环结构4

案例1: 批量创建10个系统账号chang01~chang10,并设置密码(密码不能相同)。(密码随机8位字符) 脚本: #!/bin/bashfor i in seq -w 10 douseradd chang$i &&\echo "root$i" …

网络——初识网络

网络基础 文章目录 网络基础计算机网络产生的背景认识网络协议网络协议初识协议分层OSI七层模型TCP/IP四层模型网络传输基本流程协议报头 认识IP地址认识MAC地址ifconfig查看主机地址ifconfig查看主机地址 计算机网络产生的背景 独立模式:计算机之间相互独立 早期的…

Windows安装JDK和JRE的方法

原文网址:Windows安装JDK和JRE的方法_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Windows安装JDK和JRE(Java8)的方法。 下载 下载入口:https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html jdk-8…

docker compose一键部署lnmt环境

创建docker compose 目录 [rootlocalhost ~]# mkdir -p /compose_lnmt 编写nginx的dockerfile文件 创建目录 [rootlocalhost compose_lnmt]# mkdir -p nginx 编写nginx配置文件 [rootlocalhost nginx]# vim nginx.conf user root; #运行身份#nginx自动设置进程…

socket server服务器开发常见的并发模型

两种高效的事件处理模式 服务器程序通常需要处理三类事件:I/O 事件、信号及定时事件。有两种高效的事件处理模式:Reactor和 Proactor,同步 I/O 模型通常用于实现Reactor 模式,异步 I/O 模型通常用于实现 Proactor 模式。 无论是 …

MySQL正则表达式检索数据

目录 一、使用正则表达式进行基本字符匹配 1.使用regexp关键字 2.使用正则表达式 . 二、进行OR匹配 1.为搜索两个串之一,使用 | 2.匹配几个字符之一[] 3.匹配范围 4.匹配特殊字符 过滤数据允许使用匹配、比较、通配符操作来寻找数据,但是随…

Maven依赖爆红的几种解决思路

说明:本文介绍Maven依赖爆红,排查错误的几种思路; 思路一:删除本地仓库.lastupdate文件; 找到本地maven仓库,全局搜索.lastupdate文件,把搜索出来的文件全部删除。.lastupdate后缀名的文件&am…

基础实验篇 | uORB消息读写与自定义实验(二)

导读 uORB是PX4/Pixhawk系统中非常重要且关键的模块之一,是用于无人机模块间通信的协议机制。本篇将详细介绍uORB并详细拆解uORB消息读写与自定义实验全流程(二)。 基础实验篇 | uORB消息读写与自定义实验(二) 01 RflySim平台的uORB消息读写…

分析Python招聘数据,可视化展示招聘信息详情

前言 一. 数据来源分析 1. 明确需求 明确采集网站以及数据内容 数据: 职位信息 网址: https://we.51job.com/pc/search?keywordpython&searchType3&sortType0&metro2. 抓包分析 通过开发者工具进行抓包分析 I. 打开开发者工具: F12 / 右键点击检查选择networ…

Windows下JDK安装与环境变量配置

文章目录 每日一句正能量前言安装步骤配置环境变量验证环境变量是否配置成功后记 每日一句正能量 生命,就像一场永无休止的苦役,不要惧怕和拒绝困苦,超越困苦,就是生活的强者。任何经历都是一种累积,累积的越多,人就越成熟;经历的越多,生命就越有厚度。 本来不想写JDK的安装的&…

基于LLM的SQL应用程序开发实战(二)

基于LLM的SQL应用程序开发实战(二) 16.2 使用LangChain SQL代理 回到案例应用本身,我们使用“Run All”的方式重新运行一下,让大家看见更多内部的内容,如图16-5所示,因为在VSCode代码编辑器中,可以看见Jupyter关于当前应用的变量(variable)。 图16- 5 查询Jupyter V…

新版发布 | Cloudpods v3.10.4 和 v3.9.12 正式发布

Cloudpods v3.10.4 功能优化 【主机】支持 PVE 资源的生命周期管理 【费用】优化阿里云账单资源类型名称(企业版) 【主机】选择 VMware 平台镜像,磁盘支持容量变更 【主机】在线修改密码需先探测 QGA 状态 【主机】热迁移取消”快速收敛…

【ARM64 常见汇编指令学习 13 -- ARM 汇编 ORG 伪指令学习】

文章目录 ARM ORG 指令介绍UEFI 中对 ORG 指令的使用 ARM ORG 指令介绍 在ARM汇编中,"org"是一个汇编器伪指令,用于设置下一条指令的装入地址。"org"后面跟着的是一个表达式,这个表达式的值就是下一条指令的装入地址。如…

基于STM32设计的智能空调

一、项目背景 随着人们生活水平的不断提高,对居住环境的舒适度要求也越来越高。空调作为一种重要的家电设备,已经成为了现代家庭中必不可少的一部分。本文介绍了一种基于STM32的智能空调设计方案,可以自动地根据环境温度进行温度调节。 二、…