参考快速理解VirtualBox的四种网络连接方式
电脑连接virtualbox虚拟机的方法
VirtualBox NAT 端口映射实现宿主机网络共享
1 VirtualBox四种网络连接
1.1 宿主机
宿主机使用win10系统,IP地址为:19.168.43.232。
CMD>ping www.baidu.com
百度IP地址:112.80.248.75
1.2 虚拟机
VirtualBox中有4种网络连接方式:
(1)NAT
(2)Bridged Adapter
(3)Internal
(4)Host-only Adapter
VMWare中有三种,其实他跟VMWare 的网络连接方式都是一样概念,只是比VMWare多了Internal方式。
1.2.1 NAT(网络地址转换)
NAT(Network Address Translation,网络地址转换)是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。
NAT模式是最简单的实现虚拟机上网的方式。
Guest访问网络的所有数据都是由主机提供的,Guest并不真实存在于网络中,主机与网络中的任何机器都不能查看和访问到Guest的存在。
Guest可以访问主机能访问到的所有网络,但是对于主机以及主机网络上的其他机器,Guest又是不可见的,甚至主机也访问不到Guest。
(1)虚拟机与主机的关系
只能单向访问,虚拟机可以通过网络访问到主机,主机无法通过网络访问到虚拟机。
(2)虚拟机与网络中其他主机的关系
只能单向访问,虚拟机可以访问到网络中其他主机,其他主机不能通过网络访问到虚拟机。
(3)虚拟机与虚拟机的关系
相互不能访问,虚拟机与虚拟机各自完全独立,相互间无法通过网络访问彼此。
NAT方式默认的IP段为10.0.2.X,
首台虚拟机IP为10.0.2.15,
网关为:10.0.2.2,
DNS为:10.0.2.3。
优点:轻松实现上网,不占用网段中的IP地址。
缺点:宿主机不能访问虚拟机,同网段中的主机无法找到虚拟机。
1.2.2 Bridged Adapter(网桥模式)
通过主机网卡,架设了一条桥,直接连入到网络中。因此,它使得虚拟机能被分配到一个网络中独立的IP,所有网络功能完全和在网络中的真实机器一样。
网桥模式下的虚拟机,把它认为是真实计算机就行。
(1)虚拟机与主机的关系
可以相互访问,因为虚拟机在真实网络段中有独立IP,主机与虚拟机处于同一网络段中,彼此可以通过各自IP相互访问。
(2)虚拟机于网络中其他主机的关系
可以相互访问,同样因为虚拟机在真实网络段中有独立IP,虚拟机与所有网络其他主机处于同一网络段中,彼此可以通过各自IP相互访问。
(3)虚拟机与虚拟机的关系
可以相互访问,同样因为虚拟机在真实网络段中有独立IP,虚拟机与所有网络其他主机处于同一网络段中,彼此可以通过各自IP相互访问。
优点:可以轻松实现上网,同网段中的主机任意互通。
缺点:占用网段中的IP地址。
1.2.3 Internal(内网模式)
内网模式,就是内部网络模式:
虚拟机与外网完全断开,只实现虚拟机与虚拟机之间的内部网络模式。
(1)虚拟机与主机的关系
不能相互访问,彼此不属于同一个网络,无法相互访问。
(2)虚拟机与网络中其他主机的关系
不能相互访问,彼此不属于同一个网络,无法相互访问。
(3)虚拟机与虚拟机的关系
可以相互访问,前提是在设置网络时,两台虚拟机设置同一网络名称。
1.2.4 Host-only Adapter(主机模式)
主机模式,这是一种比较复杂的模式,需要有比较扎实的网络基础知识才能玩转。可以说前面几种模式所实现的功能,在这种模式下,通过虚拟机及网卡的设置都可以被实现。
我们可以理解为Guest在主机中模拟出一张专供虚拟机使用的网卡,所有虚拟机都是连接到该网卡上的,我们可以通过设置这张网卡来实现上网及其他很多功能,比如(网卡共享、网卡桥接等)。
(1)虚拟机与主机的关系
默认不能相互访问,双方不属于同一IP段,host-only网卡默认IP段为192.168.56.X子网掩码为255.255.255.0,后面的虚拟机被分配到的也都是这个网段。
通过网卡共享、网卡桥接等,可以实现虚拟机与主机相互访问。
(2)虚拟机与网络主机的关系
默认不能相互访问,原因同上,通过设置,可以实现相互访问。
(3)虚拟机与虚拟机的关系
默认可以相互访问,都是同处于一个网段。
host-only方式下,虚拟机和真实的网络是互相隔离的。
不过所有的虚拟机彼此是可以互通的,可是访问不了互联网。
宿主机可以访问虚拟机。
虚拟机IP地址段为:192.168.56.X。
192.168.56.101
192.168.56.102
优点:可以和真实的网络环境隔离,宿主机可以访问虚拟机。
缺点:虚拟机无法上网。
2 NAT+端口转发
其实就是只用一张NAT网卡,利用“端口转发”的功能来实现个人电脑连接到虚拟机。
这样实现了:只用一张不变IP的网卡,又能上网,电脑又能轻松连接。
优点:
(1)单张网卡;
(2)IP不会变;
(3)能上外网;
(4)个人电脑能够直接连。
2.1 添加NAT网卡
打开VirtualBox ,选择菜单管理==》全局设定。
选择网络选项卡,添加一张NatNetwork网卡。
2.2 设置虚拟机的网络
选择虚拟机,点设置,选择网络,然后连接方式选择NAT网络,界面名称选择刚才添加的网卡。
这时,开启虚拟机,可以发现从虚拟机已经可以访问宿主机了。缺省配置下,虚拟机获取的IP是10.0.2.X的地址。可是,这时宿主机上是没有这个网段的,怎么才能让宿主机访问虚拟机呢?
2.3 配置端口映射
NAT网络对外是不可见的,如果需要从宿主机访问虚拟机,需要配置网络的端口映射。
打开VirtualBox ,选择菜单管理==》全局设定,双击打开新添加的网卡,点端口转发按钮:
其中,名字可以取自己喜欢的名字,主机IP不用填(127.0.0.1),主机端口是宿主机上的端口,子系统IP是虚拟机获取到的IP,子系统端口是虚拟机的SSH服务监听端口。
2.4 ubuntu设置联网
cat /etc/netplan/00-installer-config.yaml
# This is the network config written by 'subiquity'
network:
ethernets:
enp0s3:
addresses:
- 10.0.2.11/24
gateway4: 10.0.2.1
dhcp4: false
nameservers:
addresses: [114.114.114.114,8.8.8.8]
version: 2
renderer: networkd
根据实际需要依次设置enp3s0网卡的静态IP地址、网关、DNS,dhcp4设置为false,最后一行添加:renderer: networkd。注意缩进对齐,并且每个冒号后面要跟一个空格,否则会有问题。设置好后保存退出。
输入命令sudo netplan apply使改动生效。
然后gateway4过时了,换成routes。报错的意思是说,gateway4 已被弃用,请改用 默认路由。默认路由就是通过 routes 配置IP。
# This is the network config written by 'subiquity'
network:
ethernets:
enp0s3:
addresses:
- 10.0.2.11/24
#gateway4: 10.0.2.1
routes:
- to: default
via: 10.0.2.1
dhcp4: false
nameservers:
addresses: [114.114.114.114,8.8.8.8]
version: 2
renderer: networkd
2.5 centos设置联网
(1)静态IP配置
cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=c0727ee7-c022-4089-a057-d9a05807469c
DEVICE=enp0s3
ONBOOT=yes
IPADDR=10.0.2.12
GATEWAY=10.0.2.1
NETMASK=255.255.255.0
DNS1=8.8.8.8
添加DNS后可以控制是否联网。
(2)重启网卡
service network restart
(3)配置端口转发
3 桥接联网
一、宿主机网线联网DHCP
二、virtualBox设置网卡桥接
三、更改虚拟机的网络设置
sudo vim /etc/netplan/00-installer-config.yaml #修改IP
sudo netplan apply #使配置生效
ip address #查看IP
此时可以联网
修改成如下的配置也可以联网。
network:
ethernets:
enp0s3:
addresses:
- 192.168.1.101/24
gateway4: 192.168.1.1
version: 2