前言
这周由于接近OS实验课程的日期,自己按照老师发的安装文档安装虚拟机以及配置相关配置,算是踩了不少坑,碰了不少壁。在此就把这些坑和壁以及解决方法做一个归纳,仅供参考。 同时,作者在解决问题的时候,也借鉴了不少其他大大的blog以及回答,在相应坑和知识点上都会给出链接,读者可以跳转参考。 以下是正文
那些坑
无法给虚拟机添加一个新任务
如图,这种情况经常发生在第二次通过virtualbox启动linux虚拟机的时候。
链接1 链接2 这两个链接就是,作者了看了,觉得对这个问题处理的比较好的两篇blog,有需要的小伙伴可以看看。
可是,作者想要知道如何去避免这种报错,就是这种报错的原因是什么。
带着这个问题,我开始和虚拟机疯狂对线的数小时
经过多次的控制变量法测试,作者发现了,当虚拟机不正常关机时,即强制退出,或者是在未正常关机的情况下直接重启电脑(指的是你的win系统对应的主机),可能是这个原因导致了这个bug。 作者实测,只要在虚拟机正常关机后就不会出现这个问题了。
在控制栏中可以看到正常关机的选项,或者也可以通过host(即Ctrl)+H快捷键正常关机,避免出现前面提到的问题。
当然,除此之外,我们对于出现这种问题,我们也可以通过清除相关虚拟机及相关文件,然后再新建一个来解决这个问题。
putty显示connection time out 和 win下cmd无法ping通虚拟机
作者之所以把这两个放一块来讨论,往往是因为这两个实际上基本是一起发生的。
首先理解下connection time out问题,这是表示我们使用putty访问连接超时,也可以理解为访问请求超时。欸,访问请求,我们使用cmd去ping 虚拟机的ip(172.0.0.1)(其实这是个回送地址,当使用虚拟机时,变成了虚拟机的地址,我们可以使用这个去访问)也会发现这个“访问请求超时”的问题。此时大概率就是我们的虚拟机的ip和cmd显示的ip不同。 当然在讲解决ip不同这个问题前,我们先排除其他原因。 在作者看来,可能导致连接超时的原因大都有以下几种: 1)ssh协议未安装以及ssh协议的未启动。 2)网络桥接方式以及网络端口的设置 3)防火墙问题 4)(这里的重点)ip不同的问题 对于前三种此处给出相关链接以及作者给出的相关命令操作
ssh协议相关
sudo apt install openssh-server ## 安装协议
service sshd start ## 启动协议
值得注意的是,启动协议一般在安装后都用不着,基本上很久没用或者自己主动关了才会用上。
网络连接方式
这里在virtualBox的网络连接方式上,我还是更加推荐NAT,即网络地址转换,桥接好像不大行。
ubantu20.04防火墙
对于新版本的ubantu的系统,一般都默认安装了ufw,一款轻量级的对防火墙和端口控制的工具。
sudo apt install ufw # 安装
sudo ufw status verbose # 查看防火墙状态
ubantu下的linux防火墙可能会对外来访问,包括用自己的win去访问,也可能会被拒绝,所以需要去关闭防火墙或者允许相关设备的访问,但是,如果是一开始安装的时候,一般linux防火墙是默认关闭的,一般最多就需要关闭windows下的防火墙。
win10关闭防火墙
重头戏,不同IP的处理
ifconfig # linux
ipconfig # windows
首先我们需要分别在win下的cmd和linux下的terimal去查看虚拟机显示的ip 这里在两个系统下显示地址一致,是因为作者以及完成了修改,而如果作者没修改的时候即第二张图中enp0s3的inet:并不是192.168.56.1,而是一个别的地址时,win下的cmd是无法ping通127.0.0.1这个地址,当然putty也是会报连接超时的。
解决方案一
不用回送地址即127.0.0.1,我们直接使用win下显示的虚拟机地址,我们发现是可以ping通,也可以通过这个地址远程访问虚拟机的。
方案二,修改linux下的ip
ubantu20.04修改ip vim编译器的使用
这是我们修改ip地址的一个先导知识,尤其是vim编译器的使用。 但在这里,我们对vim编译器只需要知道几个常用的操作 1)分普通模式和编辑模式 2)普通模式按 i 进入编辑模式 3)编辑模式对 文件内容进行修改 4)按esc退出编辑模式进入普通模式,按 x 可以去除当前字符 5)普通模式下按 : 然后接wq,保存文件内容并退出。
这是作者觉得对修改文件需要的一些一定会用到的操作。
然后是进入文件的方法, 首先我们通过前面的 ifconfig 命令可以查看ip的同时,作者还能查看网卡的名称 就是这个enp0s3,不同的虚拟机可能不同网卡名,我们修改的时候需要用到 然后我们通过
cd \etc\netplan\
ls
去切进文件夹, 然后显示该文件夹下的文件 通过 命令 sudo vi yaml文件进入vim编辑器编辑文件内容 然后修改成这样子即可 注意,adresses表示的是虚拟机ip,然后gateway表示网关地址(可以和ip一样)。 最后再加一个
sudo netplan apply
就完成了修改,这时再看ip就发现一致了, win也可以ping通127.0.0.1这个ip,putty也不会报超时。
总结
这次和虚拟机疯狂对线,收获了不少。 对vim和linux操作更加熟悉之外,还知道很多不知道的命令
|