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

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

VMware的三种网络模式

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

vmware的三种网络模式

总结

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

1.桥接模式

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

介绍

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

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

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

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

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

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

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

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

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 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

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的防火墙内找到入站措施,然后找到下图设置

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

配置步骤(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 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

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模式,相当于一个独立的网络环境,不和物理真机一个网段没说不能访问宿主机,但是可以通过虚拟网络路由器访问到外网。

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

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

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

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 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

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的防火墙内找到入站措施,然后找到下图设置

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

手动配置(静态IP)

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

1.查看配置

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虚拟机

3.仅主机模式

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

配置步骤(手动更改)

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

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通虚拟机

配置自动(DHCP)

更改配置文件为

TYPE="Ethernet"

DEFROUTE="yes"

NAME="ens33"

DEVICE="ens33"

ONBOOT="yes"

PROXY_METHOD="none"

BROWSER_ONLY="no"

BOOTPROTO="dhcp"

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

网卡配置字段解释

相关文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: