Linux虚拟机的网络(以CentOS为例)

Linux虚拟机的网络(以CentOS为例)

配置网络的前提是首先要有网卡,也就是网络适配器

image-20221108214729207

VMware的三种网络模式

想要配置虚拟机的网络,首先要了解VMware的三种网络模式,其实在电脑安装完VMware之后,电脑环境中就会多出两张虚拟网卡,使用ipconfig命令可以查看的到此时的宿主机有三个IP地址(一般情况)。

image-20221108231226914
vmware的三种网络模式
image-20220321203119913 image-20220321203629250

总结

模式名是否联网是否ping通宿主机DNS配置默认网关
桥接模式是(宿主机防火墙放行状态)DHCP模式不需要,手动模式为默认网关与宿主机的默认网关一致为:.:.:.1
NAT模式是(宿主机防火墙放行状态)DHCP模式不需要,手动配置IP需要手动时为:.:.:.2
仅主机模式是(宿主机防火墙放行状态)DHCP模式不需要,手动配置IP需要手动时为:.:.:.1

1.桥接模式

本模式下虚拟机是可以联网的,但是不一定能够和主机互相ping通,如果无法联网,则检查此时虚拟机桥接到的网卡是否正确

介绍

VMnet0:桥接模式,与物理真机共享网络,处于同一网段,可以连接外网。Linux主机相当于一个独立的真机;

桥接模式下的虚拟机和主机是一样的,可以理解为跟主机一样连接到了同一个交换机,此时的宿主机和虚拟机就像是双胞胎。

image-20220321203932744

配置步骤(静态地址,手动配置)

0.配置好网卡设备的选择

首先查看当前连接设备,以wifi为例

image-20221108221814582

将VMware的设备与外界配置一致

image-20221108221920170

1.设置网络适配器是桥接模式

image-20221108214923081

3.查看宿主机被wifi分配的IP(如果宿主机是使用wifi连接的网络)

image-20221108223545180

4.在虚拟机中配置网卡信息

给虚拟机手动配置IP地址,其子网掩码和宿主机一致192.168.1.1,子网掩码是255.255.255.0

BOOTPROTO的值:

自动:dhcp
手动:none
静态:static

这个是网络配置参数:
BOOTPROTO=static 静态IP

BOOTPROTO=dhcp 动态IP

BOOTPROTO=none 无(不指定)
通常情况下是dhcp或者static,通过指定方式的办法来获得地址,如果没有指定的话可能会出现问

vim ifcfg-ens33

TYPE="Ethernet"
DEFROUTE="yes"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
PROXY_METHOD="none"#这里也可以写static
BROWSER_ONLY="no"
BOOTPROTO="none"
IPADDR="192.168.1.140"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.1"
DNS1="8.8.8.8"
DNS2="114.114.114.114"

5.重启网络

#systemctl restart network

此时记得检查虚拟机的防火墙和SeLinux是否关闭

#ifconfig 查看修改后的结果
[root@client network-scripts]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.140  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fe27:59a4  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:27:59:a4  txqueuelen 1000  (Ethernet)
        RX packets 141  bytes 22311 (21.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 257  bytes 26942 (26.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

注意:如果遇到Linux8及以后系统,不支持network来控制网络,则使用如下命令
nmcli c reload
nmcli c up ifcfg-ens33

6.有时候配置静态地址出现问题,要关闭networkmanager

#systemctl stop NetWorkManager
#systemctl disable NetWorkManager

7.这时,虚拟机可以连通网络

查看此时的DNS服务器状态
[root@client network-scripts]# cat /etc/resolv.conf 
# Generated by NetworkManager
search itcast.cn
nameserver 8.8.8.8
nameserver 114.114.114.114

[root@client network-scripts]# ping www.baidu.com
PING www.a.shifen.com (220.181.38.149) 56(84) bytes of data.
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=1 ttl=50 time=18.1 ms
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=2 ttl=50 time=19.9 ms
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=3 ttl=50 time=18.8 ms
^C
--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2010ms
rtt min/avg/max/mdev = 18.193/19.006/19.970/0.733 ms

8.有可能虚拟机ping不通主机,可能的处理措施是在windows的防火墙内找到入站措施,然后找到下图设置

image-20221108225411209

9.宿主机无困难ping通主机(虚拟机防火墙打开的情况下)

image-20221108225604999

配置步骤(DHCP)

1.配置文件内容

TYPE="Ethernet"
DEFROUTE="yes"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"

2.重启网络

#systemctl restart network

此时记得检查虚拟机的防火墙和SeLinux是否关闭

#ifconfig 查看修改后的结果
[root@client network-scripts]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.140  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::20c:29ff:fe27:59a4  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:27:59:a4  txqueuelen 1000  (Ethernet)
        RX packets 141  bytes 22311 (21.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 257  bytes 26942 (26.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

注意:如果遇到Linux8及以后系统,不支持network来控制网络,则使用如下命令
nmcli c reload
nmcli c up ifcfg-ens33

3.有时候配置静态地址出现问题,要关闭networkmanager

#systemctl stop NetWorkManager
#systemctl disable NetWorkManager

4.这时,虚拟机可以连通网络

[root@client network-scripts]# ping www.baidu.com
PING www.a.shifen.com (39.156.66.18) 56(84) bytes of data.
64 bytes from 39.156.66.18 (39.156.66.18): icmp_seq=1 ttl=54 time=23.8 ms
64 bytes from 39.156.66.18 (39.156.66.18): icmp_seq=2 ttl=54 time=10.8 ms
^C
--- www.a.shifen.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1003ms
rtt min/avg/max/mdev = 10.854/17.342/23.831/6.489 ms

5.可以ping宿主机(防火墙打开的情况下)

6.主机也可以ping防火墙

2.NAT模式

介绍

NAT模式要使用到VMnet8网卡

VMnet8:NAT模式,相当于一个独立的网络环境,不和物理真机一个网段没说不能访问宿主机,但是可以通过虚拟网络路由器访问到外网。

image-20220321204121649

配置步骤(DHCP自动分配IP)

image-20221109000415524

1.确认VMware的配置没有问题

image-20221108231501098

2.网络适配器选择NAT模式

image-20221108231556252

3.修改相关网卡的配置信息

TYPE="Ethernet"
DEFROUTE="yes"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
#这里这两行不配置也可以连通网络,不知道是不是使用dhcp的原因
DNS1="8.8.8.8"
DNS2="114.114.114.114"

5.重启网络

#systemctl restart network

此时记得检查虚拟机的防火墙和SeLinux是否关闭

#ifconfig 查看修改后的结果
[root@client network-scripts]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.209.135  netmask 255.255.255.0  broadcast 192.168.209.255
        inet6 fe80::20c:29ff:fe27:59a4  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:27:59:a4  txqueuelen 1000  (Ethernet)
        RX packets 700  bytes 71723 (70.0 KiB)
        RX errors 0  dropped 223  overruns 0  frame 0
        TX packets 515  bytes 60686 (59.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

注意:如果遇到Linux8及以后系统,不支持network来控制网络,则使用如下命令
nmcli c reload
nmcli c up ifcfg-ens33

6.有时候配置静态地址出现问题,要关闭networkmanager

#systemctl stop NetWorkManager
#systemctl disable NetWorkManager

7.这时,虚拟机可以连通网络

查看此时的DNS服务器状态
[root@client network-scripts]# cat /etc/resolv.conf 
# Generated by NetworkManager
search itcast.cn
nameserver 8.8.8.8
nameserver 114.114.114.114

[root@client network-scripts]# ping www.baidu.com
PING www.a.shifen.com (220.181.38.149) 56(84) bytes of data.
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=1 ttl=50 time=18.1 ms
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=2 ttl=50 time=19.9 ms
64 bytes from 220.181.38.149 (220.181.38.149): icmp_seq=3 ttl=50 time=18.8 ms
^C
--- www.a.shifen.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2010ms
rtt min/avg/max/mdev = 18.193/19.006/19.970/0.733 ms

8.有可能虚拟机ping不通主机,可能的处理措施是在windows的防火墙内找到入站措施,然后找到下图设置

image-20221108225411209

9.宿主机依然可以ping通虚拟机

image-20221108232601432

手动配置(静态IP)

其实跟dhcp是一样的,想要配置成功并且联网,所使用的的IP地址必须要和VMnet8网卡的网段一致

1.查看配置

image-20221108235013575

2.网卡配置依然保持NAT

3.配置文件内容

非常需要注意的一点是

GATEWAY的值不能写192.168.1.1

而是192.168.1.2

[root@client network-scripts]# cat ifcfg-ens33 
TYPE="Ethernet"
DEFROUTE="yes"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"#这里写“static”一样正常
IPADDR="192.168.209.140"
NETMASK="255.255.255.0"
GATEWAY="192.168.209.2"
#下面两行是必须的,因为没有DHCP,所以DNS需要这样配置,而且必须这样写
DNS1="8.8.8.8"
DNS2="114.114.114.114"

4.网络连通性正常

[root@client network-scripts]# ping www.baidu.com
PING www.a.shifen.com (39.156.66.14) 56(84) bytes of data.
64 bytes from 39.156.66.14 (39.156.66.14): icmp_seq=1 ttl=128 time=10.5 ms
64 bytes from 39.156.66.14 (39.156.66.14): icmp_seq=2 ttl=128 time=17.0 ms
^C
--- www.a.shifen.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1004ms
rtt min/avg/max/mdev = 10.534/13.799/17.065/3.267 ms

5.ping主机正常(前提是主机开了防火墙)

[root@client network-scripts]# ping 192.168.209.1
PING 192.168.209.1 (192.168.209.1) 56(84) bytes of data.
64 bytes from 192.168.209.1: icmp_seq=1 ttl=128 time=0.723 ms
64 bytes from 192.168.209.1: icmp_seq=2 ttl=128 time=0.582 ms
64 bytes from 192.168.209.1: icmp_seq=3 ttl=128 time=1.45 ms
64 bytes from 192.168.209.1: icmp_seq=4 ttl=128 time=1.26 ms
^C64 bytes from 192.168.209.1: icmp_seq=5 ttl=128 time=0.341 ms
^Z
[1]+  Stopped                 ping 192.168.209.1
[root@client network-scripts]# ping 192.168.209.2
PING 192.168.209.2 (192.168.209.2) 56(84) bytes of data.
64 bytes from 192.168.209.2: icmp_seq=1 ttl=128 time=0.186 ms
64 bytes from 192.168.209.2: icmp_seq=2 ttl=128 time=0.238 ms
^C
--- 192.168.209.2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1003ms
rtt min/avg/max/mdev = 0.186/0.212/0.238/0.026 ms

6.主机ping虚拟机

image-20221108235630198

3.仅主机模式

VMnet1:仅主机模式,不能访问外部网络,仅能访问物理真机。一般用于配置虚拟机的内网,以至于可以互相访问的到

image-20220321204037351

配置步骤(手动更改)

image-20221109000441252

1.查看网络编辑器并确保没有问题

image-20221109000534852

2.配置网卡

TYPE="Ethernet"
DEFROUTE="yes"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
IPADDR="192.168.137.140"
NETMASK="255.255.255.0"
GATEWAY="192.168.137.2"#或者等于"192.168.137.1"

3.无法联网,配置仅主机模式一般是为了做内网的主从架构

4.可以ping通宿主机,在宿主机的防火墙打开的状态


[root@client network-scripts]# ping 192.168.137.1
PING 192.168.137.1 (192.168.137.1) 56(84) bytes of data.
64 bytes from 192.168.137.1: icmp_seq=1 ttl=128 time=0.299 ms
64 bytes from 192.168.137.1: icmp_seq=2 ttl=128 time=0.485 ms
64 bytes from 192.168.137.1: icmp_seq=3 ttl=128 time=2.87 ms
^C
--- 192.168.137.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2007ms
rtt min/avg/max/mdev = 0.299/1.219/2.875/1.173 ms
[root@client network-scripts]# ping 192.168.137.2
PING 192.168.137.2 (192.168.137.2) 56(84) bytes of data.
From 192.168.137.140 icmp_seq=1 Destination Host Unreachable
From 192.168.137.140 icmp_seq=2 Destination Host Unreachable
From 192.168.137.140 icmp_seq=3 Destination Host Unreachable

5.宿主机也可以ping通虚拟机

image-20221109000937391

配置自动(DHCP)

更改配置文件为

TYPE="Ethernet"
DEFROUTE="yes"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"

结果与手动更改IP效果一致

网卡配置字段解释

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值