当前位置: 首页 > article >正文

VirtualBox虚拟机连接宿主机并能够上网(小白向)

现存问题

  windows系统主要使用vmarevirtualbox两种虚拟机,virtualbox相对于vmare更加轻便,但少有博客能够详细说明使用virtualbox的教程。踩了网上的坑后,决定写一篇文章介绍virtualbox虚拟机上网的流程。

 需求

 1. virtualbox虚拟机与宿主机能够通信,便于宿主机通过ssh协议连接虚拟机
 2. virtualbox虚拟机能够访问互联网,便于下载互联网资源

方法


下载安装

       首先在官网根据自身系统下载对应版本的virtualbox。创建虚拟机有以下三种方式。

  • 本地存在.ova或者.ovf文件(现成的虚拟操作系统文件),则按以下图片直接导入电脑即可

  • 若之前注册过虚拟机,则会将相关的虚拟机文件保存到某个文件夹下,此时可以直接使用注册,选择该文件夹下的.xml或.vbox文件

  • 通过以下页面,也可以新建一个虚拟机


网卡配置(重要)

        首先需要知道virtualbox的网卡有以下几种常见的模式,它们分别的作用记录在表格中。

网络类型作用
NAT(网络地址转换模式)

1. 通过宿主机的网络来访问公网

2. 宿主机不能和虚拟机进行通信

Bridged(桥接模式)

1. 拥有独立的ip地址,访问公网

2. 要和宿主机器处于同一网段才能进行通信

Host-only(主机模式) 

1. 虚拟机无法访问公网

2. 宿主机能和虚拟机进行通信

        根据各种不同的模式,目前想要实现目的,通常有两种方法。一种是使用NAT模式,然后通过端口转发的方式解决宿主机和虚拟机通信的问题;另一种是使用两块网卡,一块使用NAT模式访问公网,另一块使用Host-only模式访问宿主机。这里采用第二种方式,来配置网卡,具体的配置信息如下图所示。


配置修改

        然后需要修改每一块网卡的配置, 这里使用netplan实现。具体命令如下:

cd /etc/netplan
sudo vim 00-installer-config.yaml
sudo netplan apply

        其中上述第二步中 00-installer-config.yaml 中需要保存的内容如下,要注意用缩进来表示层级关系,每个冒号之后要有个空格。这里设置了两张网卡,第一张网卡enp0s3对应上一步中的NAT模式,因此开启DHCP协议,自动获取IP地址用于访问互联网。第二张网卡enp0s8对应上一步的Host-only模式,因此关闭DHCP协议。addresses字段需要指定一个固定IP地址(自己想一个合法的)。

network:
  ethernets:
    enp0s3: # 配置的网卡名称,可以使用ifconfig -a查看本机的网卡
      dhcp4: true # 动态IP配置协议
      nameservers: 
        addresses: # 要设置的DNS地址
          - 8.8.8.8
          - 114.114.114.114
    enp0s8:
      dhcp4: no
      dhcp6: no
      addresses: 
        - xx.xx.xx.xx/24
      nameservers:
        addresses: 
          - 8.8.8.8
          - 114.114.114.114
  version: 2

        配置完成后,可以使用以下命令依次检查是否配置成功:

  1. ifconfig: 检查virtualbox界面上网卡的mac地址与实际配置的mac地址是否对应(具体而言,我将enp0s3网卡的信息配置为NAT模式,而"网卡1"也是NAT模式,所以查看两者的mac地址是否一样,结果发现均为0800271A58F6)

验证

        配置完成后,需要验证网卡是否起作用。首先是使用 ping baidu.com  是否能够上网,正确结束如下:

        然后宿主机和虚拟机相互ping通即可,宿主机的ip地址使用cmd输入ipconfig可以查询,而虚拟机的ip地址就是上述自己所设置的。 


http://www.kler.cn/news/342004.html

相关文章:

  • Linux驱动开发(速记版)--GPIO子系统
  • 如何构建某一行业的知识图谱
  • redis同步解决 缓存击穿+缓存穿透 原理代码实现
  • go代码不生效问题
  • Java开发环境命名规则
  • 使用FastAPI做人工智能后端服务器时,接口内的操作不是异步操作的解决方案
  • 【rCore OS 开源操作系统】Rust 异常处理
  • 5款人声分离免费软件分享,从入门到精通,伴奏提取分分钟拿捏!
  • 基于微信小程序的像素画创作与分享平台设计与实现
  • 【实战】Nginx+Lua脚本+Redis 实现自动封禁访问频率过高IP
  • 10.10 题目总结(累计)
  • 大数据技术与应用实战
  • 算法学习4
  • 第十二章 Redis短信登录实战(基于Session)
  • 十二、血条UI
  • 第100+27步 ChatGPT学习:概率校准 Temperature Scaling
  • rabbitmq死信队列详解与使用
  • 猿人学 — 第1届第13题(解题思路附源码)
  • 普中51单片机
  • java速成指南