虚拟机下Ubuntu上网设置

文章目录

    • 一、虚拟机上网的两种方式
      • [1.1 NAT模式(Network Address Translation)](#1.1 NAT模式(Network Address Translation))
      • [1.2 桥接模式(Bridge Mode)](#1.2 桥接模式(Bridge Mode))
      • [1.3 简介](#1.3 简介)
    • 二、实际配置
      • [2.1 NAT模式配置](#2.1 NAT模式配置)
      • [2.2 桥接模式配置](#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,那么需要更改这里的网段。

到这里就可以上网啦,如果NAT模式无法满足你测试开发板的需求,那么接下来介绍桥接模式的设置。

2.2 桥接模式配置


同样的操作,一定要先将网络适配器(有什么后面会有数字,忽略即可)移除后添加噢,不然还得重新走一遍

设置桥接网络

不知道哪个的话,去windows下去查询

进入虚拟机,打开终端,进行网络配置

cpp 复制代码
sudo vi /etc/netplan/01-network-manager-all.yaml

修改为:

cpp 复制代码
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,以自己的实际为准,可以查到默认网关

配置好后利用命令重启网络

cpp 复制代码
sudo netplan apply

接下来就可以上网啦

编辑不易,解决你的问题的话,博友,博友,博友啊,

留下三连!!!

相关推荐
宁zz6 小时前
乌班图安装jenkins
运维·jenkins
大丈夫立于天地间6 小时前
ISIS协议中的数据库同步
运维·网络·信息与通信
cg50176 小时前
Spring Boot 的配置文件
java·linux·spring boot
暮云星影7 小时前
三、FFmpeg学习笔记
linux·ffmpeg
rainFFrain7 小时前
单例模式与线程安全
linux·运维·服务器·vscode·单例模式
GalaxyPokemon7 小时前
Muduo网络库实现 [九] - EventLoopThread模块
linux·服务器·c++
mingqian_chu7 小时前
ubuntu中使用安卓模拟器
android·linux·ubuntu
Zero_to_zero12348 小时前
解决docker的ubuntu系统中文乱码问题
ubuntu·docker·容器
@郭小茶8 小时前
docker-compose方式部署docker项目
运维·docker·容器