文章目录
- 一、虚拟机上网的两种方式
- 1.1 NAT模式(Network Address Translation)
- 1.2 桥接模式(Bridge Mode)
- 1.3 简介
- 二、实际配置
- 2.1 NAT模式配置
- 2.2 桥接模式配置
之前跟着博客配了好几个也没用,后来自己慢慢模式实践测试,终于可以了,下面总结给大家发出来,也方便自己后续查看。
一、虚拟机上网的两种方式
网络配置很重要,虚拟机下系统上网有两种方式,一种是NAT,一种是桥接模式
虚拟机上网有两种常见的模式:NAT(网络地址转换)和桥接模式。
1.1 NAT模式(Network Address Translation)
- 在NAT模式下,虚拟机的网络连接通过宿主机进行转发。
- 宿主机充当一个中介,为虚拟机提供网络连接,并为其分配一个私有IP地址。
- 虚拟机与外部网络通信时,它的网络数据包会经过宿主机,然后由宿主机将虚拟机的私有IP地址转换成宿主机的公共IP地址,并在外部网络中进行通信。
- 外部网络无法直接访问虚拟机,只能通过宿主机来间接访问。
1.2 桥接模式(Bridge Mode)
- 在桥接模式下,虚拟机直接与物理网络中的其他设备相连,就像是一个独立的网络设备。
- 虚拟机会获得与宿主机处于同一物理网络中的一个唯一IP地址,它可以直接与外部网络通信。
- 虚拟机与外部网络之间的通信是透明的,外部网络设备可以直接与虚拟机通信,就像与其他物理设备一样。
1.3 简介
在NAT模式下,虚拟机的网络连接通过宿主机转发,使用宿主机的公共IP地址进行通信,外部网络无法直接访问虚拟机。
在桥接模式下,虚拟机直接与物理网络相连,获得一个独立的IP地址,可以直接与外部网络通信,外部网络设备可以直接访问虚拟机。
选择使用哪种模式取决于实际需求,NAT模式更适合一些简单的网络连接,而桥接模式则提供了更灵活和直接的网络访问方式。
还不懂?好吧,我再举个例子:
当使用NAT模式时,假设你的物理机(宿主机)的公共IP地址是192.168.0.100,而虚拟机在NAT模式下分配到的私有IP地址是192.168.0.101。那么,当虚拟机想要访问外部网络时,它会通过宿主机进行转发。
例如,虚拟机上运行着一个Web浏览器,你想要访问www.example.com这个网站。虚拟机的网络数据包会经过NAT转换,然后由宿主机将请求发送给外部网络。外部网络收到请求后,将响应发送回宿主机,然后宿主机再将响应转发给虚拟机。虚拟机内的Web浏览器就可以接收到来自www.example.com的响应,并显示在虚拟机的屏幕上。
当使用桥接模式时,虚拟机直接连接到物理网络中,就像是一个独立的网络设备。假设你的物理机连接到家庭路由器,并且你的虚拟机分配到了路由器分配的IP地址192.168.0.102。在桥接模式下,虚拟机可以直接与外部网络通信。
举个例子,你可以在虚拟机上运行一个FTP服务器,并将其设置为监听端口21。当外部网络中的其他设备(如笔记本电脑或手机)通过路由器访问192.168.0.102:21时,它们实际上是直接与虚拟机上的FTP服务器建立连接,进行文件传输操作。
二、实际配置
好,废话不多说,直接配置
2.1 NAT模式配置
按照上面三个步骤,为什么要移除再添加呢,这样配置才会立马生效!!
打开编辑器可以看到:
在NAT模式下,PC机充当了一个路由器的角色。它既要跟上层的真实路由器通信,又要跟Ubuntu虚拟机通信。玩过路由器的同学就知道,路由器的上层网段和下层网段是不允许相同的,而我们常用的路由器的网段是192.168.1.0,所以为了避免冲突,软件自己便分配了一个不常用的网段给下层的设备。但也并不保险,如果你的上层路由器网段恰恰是192.168.107.0,那么需要更改这里的网段。
2.2 桥接模式配置
设置桥接网络
不知道哪个的话,去windows下去查询
进入虚拟机,打开终端,进行网络配置
sudo vi /etc/netplan/01-network-manager-all.yaml
修改为:
etwork:
version: 2
renderer: NetworkManager
ethernets:
ens36: # 网卡名
dhcp4: no # 设置为静态,如果动态改为yes,下面的参数都不需要设置了
addresses: [192.168.1.120/24] # 这个需要自己修改
optional: true
gateway4: 192.168.1.1 # 这个需要自己修改,默认网关,与宿主机一致
nameservers:
addresses: [8.8.8.8,114.114.114.114] # DNS
例如我需要设置静态IP为:192.168.1.120
,网关为192.168.1.1
,这个是网关地址,可以在window下去查询,进入window命令行,输入ipconfig
,我使用的是WIFI,以自己的实际为准,可以查到默认网关
配置好后利用命令重启网络
sudo netplan apply
接下来就可以上网啦