01 基础篇-虚拟机网络配置

概述

大学期间,无论是智能车比赛还是物联网方面的比赛,往往都需要使用虚拟机。

无论是用虚拟机操控小车,或者与开发板进行通信,都需要设置虚拟机的网络,网上的教程有很多,我们可以一步一步的跟着教程做。

可是如果做到最后,遇到网络无法正常通信的时候,就会常常搞不定。我学习了虚拟机网络配置4 种模式的相关基础知识,整理如下,大约 3 分钟左右时间,了解一下不同配置之间的区别。

核心要点

精简版结论:如果没有特殊要求,直接设置为桥接网卡就好。

NAT

原理

虚拟机不直接接入物理局域网,而是通过 "主机的虚拟 NAT 设备" 访问外部网络,无法被外部设备直接访问。

适用场景

  1. 移动办公(笔记本常用):比如你在公司用 WiFi(网段 192.168.1.x),回家用网线(网段 192.168.0.x)------NAT 模式下,虚拟机的私有 IP 不会变,无需重新配置网络(桥接模式下每次换网络都要重新获取 IP,甚至可能冲突);
  2. 仅需虚拟机访问外网,无需外部访问虚拟机:比如用虚拟机做日常开发、浏览网页、安装软件,不需要别人访问你的虚拟机;
  3. 担心 IP 冲突:物理局域网 IP 资源紧张(如公司网络设备多),NAT 的私有 IP 不会占用物理网段资源。

桥接模式

原理

通过 "虚拟网桥" 技术,让虚拟机的虚拟网卡与主机的物理网卡 "共享带宽",虚拟机直接接入物理局域网,相当于一台 "真实的物理电脑",可以直接被外部设备访问。

适用场景

  1. 搭建局域网服务:比如在虚拟机中搭建 Web 服务器、数据库服务器,需要同一局域网的其他设备(如手机、测试机)访问;
  2. 多设备通信测试:比如测试 "虚拟机(服务器)与物理机(客户端)的通信""多台虚拟机之间的集群通信",需要设备在同一网段;
  3. 需要虚拟机有独立的网络身份:比如虚拟机需要被路由器分配固定 IP,或需要使用物理局域网的共享打印机、NAS 存储。

仅主机

原理

创建一个 "主机 + 所有同模式虚拟机" 的专属虚拟内网,主机通过 "虚拟网卡(如 VMware 的 VMnet1、VirtualBox 的 Host-Only Adapter)" 加入这个内网,成为内网的一员,实现 "主机↔虚拟机""虚拟机↔虚拟机" 的双向通信。

适用场景
  1. 主机向虚拟机传输数据 / 调试:比如主机编写代码后,传到虚拟机中运行(无需联网);或主机用调试工具(如远程桌面、SSH)连接虚拟机,调试虚拟机中的程序;
  2. 搭建 "主机 + 虚拟机" 的本地测试环境:比如主机作为 "客户端",虚拟机作为 "服务器",测试客户端与服务器的通信逻辑(如主机用浏览器访问虚拟机的本地 Web 服务),且不希望外部网络干扰;
  3. 需要主机管理虚拟机:比如主机通过脚本批量控制同仅主机模式下的多台虚拟机,或监控虚拟机状态。

内部网络

原理

应用

  1. 搭建 "纯虚拟机集群",隔绝主机干扰:比如测试分布式系统(如 3 台虚拟机组成 Hadoop 集群、区块链节点),只需要虚拟机之间通信,不需要主机参与,避免主机的网络活动(如下载、联网)影响集群稳定性;
  2. 安全隔离测试:比如测试病毒、恶意程序的传播(仅在虚拟机之间扩散),或测试网络攻击场景(如虚拟机 A 攻击虚拟机 B),完全隔绝主机,避免主机被感染;
  3. 模拟 "独立内网环境":比如模拟企业内部的员工电脑(多台虚拟机),仅允许内部通信,不允许连接外网或主机,还原真实的隔离办公场景。
相关推荐
2401_895521344 小时前
SpringBoot Maven快速上手
spring boot·后端·maven
disgare4 小时前
关于 spring 工程中添加 traceID 实践
java·后端·spring
ictI CABL4 小时前
Spring Boot与MyBatis
spring boot·后端·mybatis
小江的记录本6 小时前
【Linux】《Linux常用命令汇总表》
linux·运维·服务器·前端·windows·后端·macos
yhole9 小时前
springboot三层架构详细讲解
spring boot·后端·架构
香香甜甜的辣椒炒肉9 小时前
Spring(1)基本概念+开发的基本步骤
java·后端·spring
白毛大侠10 小时前
Go Goroutine 与用户态是进程级
开发语言·后端·golang
ForteScarlet10 小时前
从 Kotlin 编译器 API 的变化开始: 2.3.20
android·开发语言·后端·ios·开源·kotlin
大阿明10 小时前
SpringBoot - Cookie & Session 用户登录及登录状态保持功能实现
java·spring boot·后端
Binary-Jeff10 小时前
Spring 创建 Bean 的关键流程
java·开发语言·前端·spring boot·后端·spring·学习方法