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. 模拟 "独立内网环境":比如模拟企业内部的员工电脑(多台虚拟机),仅允许内部通信,不允许连接外网或主机,还原真实的隔离办公场景。
相关推荐
熊小猿1 天前
在 Spring Boot 项目中使用分页插件的两种常见方式
java·spring boot·后端
paopaokaka_luck1 天前
基于SpringBoot+Vue的助农扶贫平台(AI问答、WebSocket实时聊天、快递物流API、协同过滤算法、Echarts图形化分析、分享链接到微博)
java·vue.js·spring boot·后端·websocket·spring
小蒜学长1 天前
springboot酒店客房管理系统设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端
橙子家1 天前
Serilog 日志库简单实践(一):文件系统 Sinks(.net8)
后端
Yeats_Liao1 天前
Go Web 编程快速入门 13 - 部署与运维:Docker容器化、Kubernetes编排与CI/CD
运维·前端·后端·golang
Yeats_Liao1 天前
Go Web 编程快速入门 14 - 性能优化与最佳实践:Go应用性能分析、内存管理、并发编程最佳实践
前端·后端·性能优化·golang
七夜zippoe1 天前
仓颉语言核心特性深度解析——现代编程范式的集大成者
开发语言·后端·鸿蒙·鸿蒙系统·仓颉
软件架构师-叶秋1 天前
spring boot入门篇之开发环境搭建
java·spring boot·后端
QX_hao1 天前
【Go】--接口(interface)
开发语言·后端·golang
superman超哥1 天前
仓颉语言中正则表达式引擎的深度剖析与实践
开发语言·后端·仓颉