虚拟机同时连接内网 (通过网线连接到开发板) 和外网 (连接至Internet) 的一种解决办法

2023-11-13

因为嵌入式实验需要搭建开发环境,因此需要将虚拟机通过网线连接到开发板,同时因为更新的需要,也要将虚拟机连接至Internet,所以写了一下自己的解决方法

注:我的虚拟机为VMware,装的是Linux系统(Ubuntu)

 

目录

虚拟机同时连接内网 (通过网线连接到开发板) 和外网 (连接至Internet) 的方法

背景知识:虚拟机的几种连接模式

1. 配置虚拟机的虚拟网络

2.配置虚拟机设备:

3.打开虚拟机,修改虚拟机网络配置:

4.检验

 

 

 


背景知识:虚拟机的几种连接模式

( 此处引用了https://www.cnblogs.com/xuliangxing/p/7027124.html 的内容)

VMware 桥接模式

  VMware桥接模式,是将虚拟机的虚拟网络适配器与主机的物理网络适配器进行交接,虚拟机中的虚拟网络适配器可通过主机中的物理网络适配器直接访问到外部网络。简而言之,这就好像在上图所示的局域网中添加了一台新的、独立的计算机一样。因此,虚拟机也会占用局域网中的一个IP地址,并且可以和其他终端进行相互访问。桥接模式网络连接支持有线和无线主机网络适配器。如果你想把虚拟机当做一台完全独立的计算机看待,并且允许它和其他终端一样的进行网络通信,那么桥接模式通常是虚拟机访问网络的最简单途径。

VMware NAT模式

  NAT,是Network Address Translation的缩写,意即网络地址转换。NAT模式也是VMware创建虚拟机的默认网络连接模式。使用NAT模式网络连接时,VMware会在主机上建立单独的专用网络,用以在主机和虚拟机之间相互通信。虚拟机向外部网络发送的请求数据"包裹",都会交由NAT网络适配器加上"特殊标记"并以主机的名义转发出去,外部网络返回的响应数据"包裹",也是先由主机接收,然后交由NAT网络适配器根据"特殊标记"进行识别并转发给对应的虚拟机,因此,虚拟机在外部网络中不必具有自己的IP地址。从外部网络来看,虚拟机和主机在共享一个IP地址,默认情况下,外部网络终端也无法访问到虚拟机。

  此外,在一台主机上只允许有一个NAT模式的虚拟网络。因此,同一台主机上的多个采用NAT模式网络连接的虚拟机也是可以相互访问的。

  默认情况下,外部网络无法访问到虚拟机,不过我们也可以通过手动修改NAT设置实现端口转发功能,将外部网络发送到主机指定端口的数据转发到指定的虚拟机上。比如,我们在虚拟机的80端口上"建立"了一个站点,只要我们设置端口转发,将主机88端口上的数据转发给虚拟机的80端口,就可以让外部网络通过主机的88端口访问到虚拟机80端口上的站点。

VMware 仅主机模式

  仅主机模式,是一种比NAT模式更加封闭的的网络连接模式,它将创建完全包含在主机中的专用网络。仅主机模式的虚拟网络适配器仅对主机可见,并在虚拟机和主机系统之间提供网络连接。相对于NAT模式而言,仅主机模式不具备NAT功能,因此在默认情况下,使用仅主机模式网络连接的虚拟机无法连接到Internet(在主机上安装合适的路由或代理软件,或者在Windows系统的主机上使用Internet连接共享功能,仍然可以让虚拟机连接到Internet或其他网络)。

  在同一台主机上可以创建多个仅主机模式的虚拟网络,如果多个虚拟机处于同一个仅主机模式网络中,那么它们之间是可以相互通信的;如果它们处于不同的仅主机模式网络,则默认情况下无法进行相互通信(可通过在它们之间设置路由器来实现相互通信)。

 

 

 

1. 配置虚拟机的虚拟网络

虚拟机默认的VMnet0是桥接模式、VMnet8是NAT模式,下面对VMnet0(如果其他虚拟机有用到VMnet0,可以添加网络VMnet2、VMnet3、........只需把下面所有操作的VMnet0换成对应的网络即可)和VMnet8进行设置:

选择编辑->虚拟网络编辑器

 

 

 

点击更改设置,授予管理员权限:

 

 

将VMnet0设置为桥接模式,并且选择桥接到有线网卡(设备不一样,此处的有线网卡名称也不一样,只要确定是电脑上的有线网卡即可)

 

将VMnet8设为NAT模式

 

2.配置虚拟机设备:

在虚拟机->设置

 

首先将网络适配器设置为NAT模式

 

点击“添加”

 

选择“网络适配器”

 

将新添加的网络适配器的网络连接设置为 VMnet0

3.打开虚拟机,修改Linux的网络配置:

编辑网络设置文件,可以在Linux终端输入:

$ sudo gedit /etc/network/interfaces

auto lo
iface lo inet loopback
​
auto eth0 #我感觉eth0这么写不太严谨,但是不知道怎么修改,但是这个样子成功了
​
auto eth1 #根据具体要求设置
iface eth1 inet static                          
address 192.168.100.192
netmask 255.255.255.0
gateway 192.168.100.192
network 192.168.100.0
broadcast 192.168.100.255
dns-nameservers 192.168.100.192

 

重启网络服务,在终端输入:

sudo service network-manager restart

 

查看:(ifconfig)

 

附:在宿主机的cmd中查看,可以发现eth0连接到的是VMnet8:

 

4.检验

可以在虚拟机中ping一下两个网络,看是否连通。

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

虚拟机同时连接内网 (通过网线连接到开发板) 和外网 (连接至Internet) 的一种解决办法 的相关文章

  • 我们真的应该使用 Chef 来管理 sudoers 文件吗?

    这是我的问题 我担心如果 Chef 破坏了 sudoers 文件中的某些内容 可能是 Chef 用户错误地使用了说明书 那么服务器将完全无法访问 我讨厌我们完全失去客户的生产服务器 因为我们弄乱了 sudoers 文件并且无法再通过 ssh
  • python获取上传/下载速度

    我想在我的计算机上监控上传和下载速度 一个名为 conky 的程序已经在 conky conf 中执行了以下操作 Connection quality alignr wireless link qual perc wlan0 downspe
  • 如何使用 Cloud Init 挂载未格式化的 EBS 卷

    Context 我正在使用https wiki jenkins io display JENKINS Amazon EC2 Plugin https wiki jenkins io display JENKINS Amazon EC2 Pl
  • tcpdump 是否受 iptables 过滤影响?

    如果我的开发机器有iptables规则到FORWARD一些数据包 这些数据包是否被 tcpdump 捕获 我有这个问题 因为我知道存在其他链称为INPUT如果数据包路由到 它会过滤发往应用程序的数据包FORWARD链 它会到达吗tcpdum
  • 执行“minikube start”命令时出现问题

    malik malik minikube start minikube v1 12 0 on Ubuntu 18 04 Using the docker driver based on existing profile Starting c
  • 无需超级用户即可在 Linux 中打开 RAW 套接字

    我必须编写一个在 Linux 上运行的 ping 函数 语言是 C 所以 C 也可以 在网上搜索并查看源代码ping命令 事实证明我应该创建一个原始套接字 icmp sock socket AF INET SOCK RAW IPPROTO
  • C 语言的符号表

    我目前正在开发一种执行模式匹配的静态分析工具 我在用Flex https github com westes flex生成词法分析器 我编写了代码来管理符号表 我不太有经验C 所以我决定将符号表实现为线性链表 include
  • 如何获取 (Linux) 机器的 IP 地址?

    这个问题和之前问的几乎一样如何获取本地计算机的IP地址 https stackoverflow com questions 122208 get the ip address of local computer 问题 但是我需要找到一个的I
  • 使用包管理器时如何管理 Perl 模块?

    A 最近的问题 https stackoverflow com questions 397817 unable to find perl modules in intrepid ibex ubuntu这让我开始思考 在我尝试过的大多数 Li
  • Bash - 在与当前终端分开的另一个终端中启动命令的新实例

    我有一个简单的 bash 脚本 test sh 设置如下 bin bash args if args 0 check capture then watch n 1 ls lag home user capture0 watch n 1 ls
  • 与 pthread 的进程间互斥

    我想使用一个互斥体 它将用于同步对两个不同进程共享的内存中驻留的某些变量的访问 我怎样才能做到这一点 执行该操作的代码示例将非常感激 以下示例演示了 Pthread 进程间互斥体的创建 使用和销毁 将示例推广到多个进程作为读者的练习 inc
  • Linux 为一组进程保留一个处理器(动态)

    有没有办法将处理器排除在正常调度之外 也就是说 使用sched setaffinity我可以指示线程应该在哪个处理器上运行 但我正在寻找相反的情况 也就是说 我想从正常调度中排除给定的处理器 以便只有已明确调度的进程才能在那里运行 我还知道
  • 使用 gdb 调试 Linux 内核模块

    我想知道 API 在内核模块 中返回什么 从几种形式可以知道 这并不是那么简单 我们需要加载符号表来调试内核模块 所以我所做的就是 1 尝试找到内核模块的 text bss和 data段地址 2 在 gdb 中使用 add symbol f
  • 这种文件锁定方法可以接受吗?

    我们有 10 个 Linux 机器 每周必须运行 100 个不同的任务 这些计算机主要在我们晚上在家时执行这些任务 我的一位同事正在开发一个项目 通过使用 Python 自动启动任务来优化运行时间 他的程序将读取任务列表 抓取一个打开的任务
  • cdc_acm:无法设置 dtr/rts - 无法与 USB cdc 设备通信

    我试图使用 pic24fj128gb206 枚举 usb cdc 设备 设备似乎已正确枚举 但是当我将设备连接到 Linux PC 时 我从内核收到以下警告消息 cdc acm 1 8 1 6 7 1 0 failed to set dtr
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 研究缓冲区溢出时应该使用哪些版本的 GCC 或标志?

    最近 作为计算机工程专业的本科生 我一直在研究缓冲区溢出 出于兴趣 我开始研究缓冲区溢出 但在尝试在我的计算机上用 GCC 4 9 1 在 Debian Jessie 中 编译的我自己的 C 程序中实现它们时遇到了困难 我听说较新的编译器中
  • express.js api 应用程序中的内存泄漏

    我正在运行一个express js应用程序 它用作REST API 一个端点启动 puppeteer 并使用多个过程测试我的网站 启动应用程序并持续消耗端点后 我的 docker 容器每小时都会耗尽内存 如下所示 首先 我认为我的 pupp
  • 从核心转储中获取堆栈跟踪

    如何从核心转储文件中获取堆栈跟踪 该文件大约 14 mb 是在我的应用程序退出并显示 分段错误 后生成的 我使用的是红帽 5 5 gdb usr bin myapp binary corefile 然后 使用以下之一 gdb bt gdb
  • 跨 CPU 内核的 rdtsc 精度

    我从一个线程发送网络数据包 并在运行于不同 CPU 核心上的第二个线程上接收回复 我的流程测量每个数据包发送和接收之间的时间 类似于 ping 我使用 rdtsc 来获得高分辨率 低开销的计时 这是我的实现所需要的 所有测量结果看起来都很可

随机推荐

  • sql和MySQL的语句执行顺序

    sql和mysql执行顺序 发现内部机制是一样的 最大区别是在别名的引用上 一 sql执行顺序 1 from 3 join 2 on 4 where 5 group by 开始使用select中的别名 后面的语句中都可以使用 6 avg s
  • Linux软件安装-rpm详解

    Linux软件安装 rpm详解 在Linux系统中 RPM Red Hat Package Manager 是一种常见的软件包管理器 提供了方便的软件安装 升级和卸载功能 本文将详细介绍rpm的语法 实操和各种方法之间的区别及重点内容 RP
  • Mysql8.0.16在win10的安装以及navicat连接

    Mysql8 0 16在win10的安装以及navicat连接 一 安装过程 1 去mysql官网下载适合自己电脑的版本https www mysql com downloads 进入官网 官网下载极慢 建议下载个迅雷 复制链接到迅雷 体验
  • 拥抱数字经济 商用终端成为企业“必需品”

    随着各行业数字化转型进程的不断推进 英特尔作为商用终端领域的 领路人 将继续联手生态伙伴推动商用领域生产工具的变革 赋能广大企业 机构用户最终实现业务创新和产业升级 助力中国经济高质量发展和数字中国建设 作者 贾贵鹏 来源 天极网 近年来
  • Uboot启动参数说明

    29 Uboot 启动参数说明 bootcmd cp b 0xc4200000 0x7fc0 0x200000 bootm 倒计时到 0 以后 自动执行的指令 bootdelay 2 baudrate 38400 串口波特率 一般使用 38
  • Springboot实现MQTT通信

    目录 一 MQTT简介 1 MQTT协议 2 MQTT协议特点 二 MQTT服务器搭建 三 使用Springboot整合MQTT协议 1 在父工程下创建一个Springboot项目作为消息的提供者 1 1 导入依赖包 1 2 修改配置文件
  • vue3 的 ref、 toRef 、 toRefs

    1 ref 对原始数据进行拷贝 当修改 ref 响应式数据的时候 模版中引用 ref 响应式数据的视图处会发生改变 但原始数据不会发生改变
  • 同行评审

    在IBM 微软等很多公司都有一个很好的实践 那就是代码复审 这种代码审查的过程 不是将代码发给某一个人或某几个人去看 而是强调程序员自己定期走上台 向其他人讲解自己源程序的活动 因为要向大家讲解自己的程序 程序员会极其重视自己的工作进度 代
  • SeleniumLibrary4.5.0 关键字详解(九)

    SeleniumLibrary4 5 0 关键字详解 九 库版本 4 5 0 库范围 全局 命名参数 受支持 简介 SeleniumLibrary是Robot Framework的Web测试库 本文档说明了如何使用SeleniumLibra
  • linux安装rz、sz上传下载文件工具

    在centos版本linux系统中执行如下命令 yum install lrzsz 如下图所以即可安装成功
  • windows 7编辑启动选项

    问题 开机之后 提示编辑启动选项 路径 windows system32 winload exe 分区 1 硬盘 f3c3f39 NOEXECUTE OPTIN 如图 解决步骤 1 按回车键 进入操作系统之后 查看启动项配置 msconfi
  • 自定义ZoomRecyclerView可缩放可点击

    可直接使用喔 public class PinchRecyclerView extends RecyclerView implements View OnTouchListener private static final int INVA
  • html网页效果跳动的心

    跳动的心代码 用到了css的轮廓 动画效果
  • 使用Eclipse Babel语言包汉化eclipse

    eclipse下载下来是默认是英文版的 在eclipse的设置里似乎不能直接更改eclipse的语言文字 我想把eclipse改成中文版 我发现在官网上有个叫Eclispe Babel的可以更改Eclipse的语言 这是一个多国语言包 可以
  • 2.7-3 Android Studio 的Gradle一点理解, 查看gradle 版本和android 插件的版本

    参考 https developer android com studio releases gradle plugin html gradle 最大的优点就是对依赖管理的强力支持 查看gradle 版本和android 插件的版本 Fil
  • Kubernetes 101,第一部分,基础知识

    已经有一段时间了 我想花点时间坐下来写写关于Kubernetes 的文章 时机已到 简而言之 Kubernetes是一个用于自动化和管理容器化应用程序的开源系统 Kubernetes 就是关于容器的 如果你对什么是容器不太了解 请先参考我的
  • 函数模板,重载函数模板,模板的显式具体化,实例化

    目录 一 函数模板应用场景 二 函数模板 1 直白理解函数模板 函数模板就是建立一个通用的函数 其参数类型和返回类型不具体指定 用一个虚拟的类型来代表 2 函数模板的声明 3 函数模板的代码 三 重载的模板 1 为什么要使用重载模板 2 代
  • H5静态页面跳转微信小程序;从外部浏览器,点击H5链接跳转打开微信小程序;以及在微信内直接点击H5链接打开微信小程序;

    参考链接 需求 从外部浏览器 点击H5链接跳转打开微信小程序 以及在微信内直接点击H5链接打开微信小程序 步骤1 小程序开发需要使用云开发创建项目 使用云开发生成的项目会自带云函数文件夹 步骤2 项目开启云开发 步骤3 下载官方的H5静态h
  • 详解AdaBoost

    Boosting 顾名思义 这是一个增强算法 而它增强的对象 就是机器学习中我们所熟知的学习器 在Valiant引入的PAC Probably Approximately Correct 又称可能近似正确 中 学习器可被分为强学习器和弱学习
  • 虚拟机同时连接内网 (通过网线连接到开发板) 和外网 (连接至Internet) 的一种解决办法

    因为嵌入式实验需要搭建开发环境 因此需要将虚拟机通过网线连接到开发板 同时因为更新的需要 也要将虚拟机连接至Internet 所以写了一下自己的解决方法 注 我的虚拟机为VMware 装的是Linux系统 Ubuntu 目录 虚拟机同时连接