[Linux][VM虚拟机]另外一台主机连自己主机的VM虚拟机

今天从工作室休息完回寝室,因为这个学期在学OS ,一同学在弄VM装的CentOS,然后他就遇到了个问题,我顺便就去看了一下,帮着解决了一手,因为之前我也没遇到过这个问题,所以小小的记录一手。

问题背景

北校同学A在自己的主机上打开VM,开了一个虚拟机CentOS 7 ,此时,南校同学B想在他的主机上通过Finalshell连接到A的虚拟机,但是不知道为啥连不上......

解决过程

其实我一开始挺纳闷的,虽然我没用过Finalshell,但是吧我感觉和XShell肯定差不多,这个过程我感觉可以类比于我平常自己的主机上的XShell远程链接我的云服务器,按理来说,直接输入IP和端口,username和password后应该就可以直接连接了,不应该存在问题的,但是既然连接不上,那得想办法解决。

第一个步骤

首先自然是查看连接参数--IP ;端口;username;password是否应为粗心写错了。结果是没有问题,IP直接通过指令即可查看,因为他的是新装的Linux,ssh连接端口自然是22,我就也顺势查看了一下22端口的情况,结果是22端口没有问题

#查看IP
ifconfig
#检查端口占用情况
lsof -i:22

第二个步骤

连接参数都没有问题,那么考虑一下防火墙的因素:因为是外部连接主机内的虚拟机,那么我们得检查虚拟机的防火墙开启情况:检查后的结果发现防火墙是开的,所以此时我第一想法就是认为这个防火墙的原因,所以就关闭了防火墙准备进行测试,结果发现还是连接不上

#查看防火墙开启状态
systemctl status firewalld

#关闭防火墙
systemctl stop firewalld

#关闭防火墙自启动
systemctl disable firewalld

#确保关闭 重启虚拟机
reboot

#再次检查防火墙状态
systemctl status firewalld

第三个步骤(想通原理,找到问题)

好的,经历了上述两个步骤,感觉有点黔驴技穷的感觉,因为我们自己对于linux的研究也就那么点,平常也就用用,没有尝试过远端连主机的Linux。

一般来说,上述两个过程,也是初学者能想到的可能的方法。此时我开始从网络连接方式开始思考,是不是有哪些地方没注意。

首先,我在B同学的主机那里(远程控制),在cmd中和B同学自己的VM虚拟机中都去尝试ping一下A同学的主机和A同学的虚拟机,得到的结果是一致的:

都能ping通A同学的主机,但是都ping不通A同学的虚拟机

此时我的第一想法还是“因为虚拟机对外的网络实际上是依靠主机的,既然能连的上主机,排除了 '因为完全连不上A的主机,所以连不上A的虚拟机'的原因”

刚闪过这个想法,我突然恍然一下,就想到了一个问题:VM虚拟机的网络连接其实是分为三种的 桥接模式 ; NAT模式 ;主机模式,因为我一开始没去看A同学的连接方式,会不会是每个模式的特性问题?

(关于三种连接的区别 可以去看我的另外一篇博客文章Linux下的网络连接三种模式-CSDN博客)

此时我就去看他的连接模式----NAT模式

NAT模式其实是一种和主机共享IP地址的模式  首先虚拟机会占用一个IP但是可以和主机不是同一个网段 主机会生成一个另外一个和虚拟机IP同网段的虚拟的网卡IP 虚拟机可以和这个虚拟IP产生联系 并且可以通过主机IP的代理来和外界获得联系 

也就是说  整个流程中  需要有主机的代理!!无论是发送和接收网络连接信号,其实都是以主机IP作为中转站,然后从上述描述也可以看到,虚拟机IP其实算是一个内部IP,对内部可以访问,但是对外部是隐藏的,或者你可以直接理解为,只能通过代理才能被访问的一个“虚拟的”“假的”IP

那么一切都解释的通了:因为NAT模式,虚拟机的IP是无法被外部访问的,所以B同学的Finelshell无法访问到虚拟机的这个内部IP,所以连接不上

第四个步骤(解决问题)

既然知道问题所在,那么就对应的解决即可。

虚拟机的IP既然只有内部能访问,那么我们实际上只需要连接主机,然后通过主机的代理去连接虚拟机即可。

在VM的虚拟网络编辑器中,提供了这个功能

找到NAT模式  进行NAT设置

在设置里面,我们添加端口转发功能

主机端口---填写一个不常用的端口就行(不要和平常项目或者其他服务冲突的就可以)

虚拟机IP--就填写我们的虚拟机的内部IP(用ifconfig得到的那个)

虚拟机端口--ssh连接一般都是22端口,写22就行

最后,我们在B的Finalshell进行连接的时候,我们要链接的就是IP就是主机IP,端口写上面写的主机端口,这样连接请求就会被主机端口映射代理转发到虚拟机的22端口(IP:22) 这样就能成功连接了。

总结

第一次遇到这个问题,自己尝试解决的过程很头疼但是最终还是解决完成,很有成就感,上述过程和理解思路都是个人想法,因个人知识储备有限,如果上述过程有错误或者不足之处,欢迎大家评论区批评改正!!!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

行业报告 | 探索人工智能的发展之路

引言 人工智能(Artificial Intelligence,简称AI)作为当今世界科技领域的热点之一,正在以前所未有的速度发展。自20世纪50年代以来,人工智能领域取得了许多重大突破,涌现了一系列颠覆性的技术和应用。本文旨…

基于java+springboot+vue实现的家政服务平台系统(文末源码+Lw)299

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本家政服务平台就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息&a…

帮管客CRM(jiliyu)接口SQL注入漏洞

文章目录 前言声明一、漏洞描述二、影响版本三、漏洞复现四、修复建议 前言 帮管客CRM客户管理系统专注于为企业提供crm客户关系管理、crm管理系统、crm软件产品及企业销售管理流程解决方案服务,助力企业业绩增长。 声明 请勿利用文章内的相关技术从事非法测试,由…

SpringCloud Hystrix 断路器

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅,从传统的模块之间调用,一步步的升级为 SpringCloud 模块之间的调用,此篇文章为第五篇,即介绍 Hystrix 断路器。 二、概述 2.1 分布式系统面临的问题 复杂分布式体系结构中…

文章在线生成很简单,三款工具轻松为你搞定

文章在线生成很简单,三款工具轻松为你搞定!在当今信息爆炸的时代,人们对内容的需求也越来越大。然而,有时候我们可能会遇到创作灵感枯竭、时间紧迫或者写作技巧不足的情况。针对这些问题,现在文章在线生成却是可以帮助…

Linux虚拟机安装

Linux系统安装 Linux虚拟机安装 inux 分区结构为树结构, windows 为森bai林结构,所以有duC盘D盘之类的, 而zhilinux /分区就是根分区, swap可以理dao解为虚拟内存, /boot 这是个目录, 可以分成一个分区&am…

HTML5+CSS3+JS小实例:全屏范围滑块

实例:全屏范围滑块 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale…

数据结构——算法的时间复杂度

【本节内容】 1.算法效率 2.时间复杂度 3. 常见时间复杂度 1.算法效率 1.1 如何衡量一个算法的好坏 如何衡量一个算法的好坏呢&#xff1f;比如对于以下斐波那契数列&#xff1a; long long Fib(int N) {if(N < 3)return 1;elsereturn Fib(N-1) Fib(N-2); } 斐波…

【论文速读】| DeepGo:预测式定向灰盒模糊测试

本次分享论文为&#xff1a;DeepGo: Predictive Directed Greybox Fuzzing 基本信息 原文作者&#xff1a;Peihong Lin, Pengfei Wang, Xu Zhou, Wei Xie, Gen Zhang, Kai Lu 作者单位&#xff1a;国防科技大学计算机学院 关键词&#xff1a;Directed Greybox Fuzzing, Path…

视频配音最佳助手--配音虾

在数字化时代&#xff0c;视频内容已经成为了我们生活中不可或缺的一部分。无论是社交平台的短视频&#xff0c;还是企业宣传的微电影&#xff0c;一个引人入胜的配音往往能为其增添不少色彩。然而&#xff0c;很多人对如何为视频配音感到困惑&#xff0c;或者觉得这是一个技术…

北大最新综述精读:RAG在AIGC中的前世今生,覆盖300篇论文!

©作者|Haoyang 来源|神州问学 如果你对这篇文章感兴趣&#xff0c;而且你想要了解更多关于AI领域的实战技巧&#xff0c;可以关注「神州问学」公众号。在这里&#xff0c;你可以看到最新最热的AIGC领域的干货文章和前沿资讯。 引言&#xff1a; 人工智能生成内容&#x…

Sublime Text常用快捷键

Background Sublime Text 是一个轻量、简洁、高效、跨平台的编辑器。Sublime Text官方下载链接&#xff1a;https://www.sublimetext.com/download 快捷键的使用可以帮助我们更加高效地编写代码或者处理数据。 快捷键 按键功能CtrlL选择整行&#xff08;重复按继续选择下行&a…

C语言sizeof操作符与strlen函数

1.sizeof与strlen的介绍 (1).sizeof 计算变量的内存空间大小。底层实际上是对变量类型的计算。是一个单目操作符&#xff0c;不是函数&#xff0c;后面的括号可以省略 (2).strlen 函数原型 strlen是一个函数&#xff0c;返回的size_t类型的数据,头文件为string.h计算字符串…

docker 运行异构镜像

概述 关于docker镜像在不同的cpu架构下运行报错的解决办法&#xff0c;作者踩坑验证&#xff0c;在此分享经验 某次工作遇到需要银行内部部署docker镜像&#xff0c;由于行内已经开始走信创的路线&#xff0c;使用鲲鹏系统&#xff0c;arm架构&#xff0c;结果就遇到了standa…

【gpt实践】同时让chatgpt和claude开发俄罗斯方块

最近chatgpt和claude都在使用&#xff0c;其实大部分日常使用场景表现都没有相差太多&#xff0c;想搞一个有趣的小实验&#xff0c;如果同时让chatgpt和claude开发俄罗斯方块谁会表现的更好呢&#xff0c;说干就干&#xff01; prompt 我选择了用英文描述&#xff0c;毕竟英…

导入空管基础数据

1、首先将data.tar.gz解压到自定义目录中 注意&#xff1a;由于数据文件的压缩包比较大&#xff0c;解压过程可能会持续3~5分钟&#xff0c;请耐心等待。 [rootnode3 ~]# cd /opt/software/ [rootnode3 software]# tar -xzf data.tar.gz -C /opt/ 2、利用SQLyog或者其他数据库…

LeetCode:链表相交

题目描述 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点&#xff0c;返回 null 。 示例 解题思想 将两个链表从尾部对齐&#xff0c;然后进行寻找。 此时我们就可以比较curA和curB是否相同&#xff0c…

Pytorch基础(21)-- torch.repeat_interleave()方法

分享一下自己目前在维护的Github项目&#xff0c;由于本人博士阶段接触了一个全新的研究方向-----使用机器学习、强化学习、深度学习等方法解决组合优化问题&#xff0c;维护这个项目的目的&#xff1a; &#xff08;1&#xff09;记录自己阅读过的paper&#xff0c;同时分享一…

G. Rudolf and Subway

解题思路 每条边的边权可选&#xff0c;由颜色决定同一颜色的线路可以直达颜色最多有种考虑将颜色视作链接点&#xff0c;进行分层图跑最短路最终结果除2最多建条边&#xff08;直接存状态Map跑最短路被毙掉了&#xff09; import java.io.*; import java.math.BigInteger; im…

【Python】新手入门学习:详细介绍接口分隔原则(ISP)及其作用、代码示例

【Python】新手入门学习&#xff1a;详细介绍接口分隔原则&#xff08;ISP&#xff09;及其作用、代码示例 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、Py…