虚拟机的使用常见问题

Linux网卡配置文件详解:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
DEVICE=eth0        #指出设备名称
NM_CONTROLLED=yes #network mamager的参数,实时生效,不需要重启
ONBOOT=yes #设置为yes,开机自动启用网络连接
BOOTPROTO=none #设置为none禁止DHCP,设置为static启用静态IP地址,设置为dhcp开启DHCP服务
TYPE=Ethernet #网络类型为:Ethernet
IPV4_FAILURE_FATAL=yes
IPV6INIT=no #禁止IPV6
USERCTL=no #是否允许非root用户控制该设备,设置为no,只能用root用户更改
HWADDR=00:0C:29:2C:E1:0F #网卡的Mac地址
PREFIX=24
DEFROUTE=yes
NAME="System eth0" #定义设备名称
IPADDR=192.168.21.129 #IP地址
GATEWAY=192.168.21.2 #设置网关
NETMASK=255.255.255.0 #子网掩码
DNS1=8.8.8.8 #第一个dns服务器
DNS2=8.8.4.4 #第二个dns服务器

使用SSH远程虚拟机

查询虚拟机IP地址

1
2
3
4
5
6
7
8
9
>>>ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.253.132 netmask 255.255.255.0 broadcast 192.168.253.255
inet6 fe80::a4de:8d41:623a:fe18 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:e6:1b:b9 txqueuelen 1000 (Ethernet)
RX packets 11173 bytes 16432024 (15.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4965 bytes 316559 (309.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

我的IP地址是192.168.253.132

我这里使用的是CentOS Linux 7

新建远程连接

我这里使用的是Xshell (https://www.xshell.com/zh/free-for-home-school/) 可以申请免费非商用用途

远程连接

输入虚拟机用户名

输入密码

输入虚拟机账号对应的密码

远程成功

远程成功啦

退出远程

虚拟机快照

百度百科定义:

**存储快照:**全球网络存储工业协会SNIA(StorageNetworking Industry Association)对快照(Snapshot)的定义是:关于指定数据集合的一个完全可用拷贝,该拷贝包括相应数据在某个时间点(拷贝开始的时间点)的映像。快照可以是其所表示的数据的一个副本,也可以是数据的一个复制品。

快照的作用主要是能够进行在线数据备份与恢复。当存储设备发生应用故障或者文件损坏时可以进行快速的数据恢复,将数据恢复某个可用的时间点的状态。快照的另一个作用是为存储用户提供了另外一个数据访问通道,当原数据进行在线应用处理时,用户可以访问快照数据,还可以利用快照进行测试等工作。所有存储系统,不论高中低端,只要应用于在线系统,那么快照就成为一个不可或缺的功能。

简单来说,就是可以将一个系统备份,之后系统要是出现什么问题,可以利用快照记录恢复到之前的系统模样。

拍摄快照

01拍摄快照

恢复系统

02恢复快照

虚拟机自定义IP地址

CentOS 7 自定义IP地址

打开虚拟网络编辑器

01打开虚拟网络编辑器

定义子网

02定义子网

查看网关

03查看网关

定义IP范围

04定义IP范围

查看当前IP地址的网卡名字

1
ip addr

01网卡名字

编辑ifcfg-ens32文件

有些同学添加以下的文件后,会出现访问外网失败,可能是缺少DNS解析,在最后添加一个DNS解析地址即可,根据自己的需要是否添加DNS1=8.8.8.8,多添加也不会出问题,建议添加

1
vi /etc/sysconfig/network-scripts/ifcfg-ens32

02编辑ifcfg-en33

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
UUID=db5446cd-0df5-4e8e-90e1-37cee89ee150
BOOTPROTO=static
NAME=ens33 #网卡名字
DEVICE=ens33 #网卡名字
ONBOOT=yes
NM_CONTROLLED=yes #是否开启network mamager
IPADDR=192.168.2.10 # 要设置的IP地址
GATEWAY=192.168.2.2 # 网关
NETMASK=255.255.255.0 # 子网掩码
DNS1=8.8.8.8 #DNS解析

重启network并测试网络

重启完network后,ping一下内外网,测试是否连通

1
service network restart

03重启network

CentOS 7可视化界面自定义IP地址

打开虚拟网络编辑器

01打开虚拟网络编辑器

定义子网

02定义子网

查看网关

03查看网关

定义IP范围

04定义IP范围

打开系统设置

05打开设置

打开网络

06打开网络

设置IP地址

07设置IP

设置DNS、路由

08设置路由

点击应用,即可生效,去查看自己的IP地址即可

1
ip addr

UbuntuServer自定义IP地址

打开虚拟网络编辑器

01打开虚拟网络编辑器

定义子网

02定义子网

查看网关

03查看网关

定义IP范围

04定义IP范围

进入/etc/netplan文件夹

找到带有.yml文件名后缀,可能你的文件名和我的不一样,但是不影响。

1
2
3
cd /etc/netplan
ls
vim 00-installer-config.yaml

01打开etc netplan目录

编辑00-installer-config.yaml文件

只需要修改两处地方(在冒号后都有一个空格):

  1. 添加一行addresses: [192.168.2.7]
  2. dhcp4: true改为dhcp4: false
  3. 添加DNS解析地址

将文件内容修改如下图

02编辑配置

修改结束后,:wq保存

1
2
3
4
5
6
7
8
9
10
# This is the network config written by 'subiquity'
network:
ethernets:
ens32:
addresses: [192.168.2.6/24]
dhcp4: false
gateway4: 192.168.2.2
nameservers:
addresses: [114.114.114.114,8.8.8.8]
version: 2

应用网卡修改

1
netplan apply

查看IP地址

1
ip addr	

03查看IP地址

IP地址已经修改为192.168.2.6,说明已经修改成功。

新建resolv.conf文件

1
sudo touch /etc/resolv.conf

添加DNS解析

1
sudo vim /etc/systemd/resolved.conf

04添加DNS地址解析

重启daemon

1
2
sudo systemctl daemon-reload
ping 163.com

05重启daemon

win10自定义IP地址

打开虚拟网络编辑器

01打开虚拟网络编辑器

定义子网

02定义子网

查看网关

03查看网关

定义IP范围

04定义IP范围

打开虚拟机win10的适配器–>属性

win + R ---->ncpa.cpl

01打开属性

打开Internet协议版本4属性

02tcp属性

设置相关参数

根据虚拟网络编辑器填写如下图格式。

我这里设置虚拟机win10的IP地址为192.168.2.7

03设置相关属性

重启网卡

禁止网卡

04禁用

启用网卡

05启用

这时候可以去查一下自己的IP地址了。

添加多个网卡(多IP)

定义IP别名,其实就是给一台设备添加多个网卡,一台设备可以有多个网卡(多个IP地址)。

添加多个网卡文件

添加网卡如图所示:

01-创建多个网卡文件-20230323-990

操作:

1
2
3
cd /etc/sysconfig/network-scripts/ #进入文件夹
cp ./ifcfg-ens33 ifcfg-ens33_1 #复制第一个网卡副本文件
cp ./ifcfg-ens33 ifcfg-ens33_2 #复制第一个网卡副本文件

修改副本配置文件

修改第一个网卡配置文件ifcfg-ens33_1如下图所示:

02-配置新网卡文件-20230323-181

第二个网卡配置也是和第一个网卡配置一样的。

只修改以下三个属性就可以了:

  • NAME:网卡名字

  • DEVICE:网卡名字

  • IPADDR:IP地址需要在IP地址分配范围内,具体分配范围可以在VMware-->编辑-->虚拟网络编辑器-->更改设置-->选择NAT模式-->DHCP设置-->开始IP地址到结束IP地址就是范围了。

重启网卡

1
service network namager restart

解决虚拟机ping不通主机的问题

分析原因

分析ping主机的错误原因,ping主机的时候,为什么从172.17.0.1路由这里发出???发出疑问???

21错误

找到172.17.0.1的IP网卡

1
ip addr

22罪魁祸首

删除该网卡

1
ifconfig docker0 down

安装net-tools(如果你已安装可跳过这步)

1
yum -y install net-tools

23安装net-tools

删除docker0网卡

1
ifconfig docker0 down

ping通主机

24ping通主机

总结

ping不通内外网的时候,可以仔细看一下ping失败的原因,分析是哪里的问题,这已经是第二次因为这个docker0网卡的原因ping不通主机了,上一次也是删除这个docker0网卡就可以解决问题了。

解决虚拟机ping不通外网

报错内容

01报错内容

打开网卡配置文件

可能每个人的配置文件名字都不太一样,有的人叫ifcfg-ens33

1
vi /etc/sysconfig/network-scripts/ifcfg-ens32

添加DNS解析

ifcfg-ens32文件最后添加DNS1=8.8.8.8

1
DNS1=8.8.8.8

02解决ping不通外网

重启network

1
service network restart

Ubuntu显示两个inet(显示多个IP)

错误内容

可能是你设置了多网卡或者是其他原因。

01两个inet

修改dhcp4

dhcp4的属性true改为false,如下图

02解决方法

应用配置

1
2
netplan apply
ip addr

03应用配置

虚拟机显示不全

VMware显示的Windows画面没有铺满屏幕,看着很怪异,强迫症受不了,必须解决。

打开虚拟机设置

01打开设置

设置为自由拉伸

02调整显示

如果调整之后,显示分辨率有点奇怪,那就进入系统,打开设置,调整一下系统分辨率即可。