virtualbox centos7 nat+host-only方式联网踩坑总结

目录
  • 1、问题背景
  • 2、虚拟机网卡有哪些连接方式?
    • 2.1、NAT
    • 2.2、Bridged Adapter(网桥模式)
    • 2.3、Internal(内网模式)
    • 2.4、Host-only Adapter(主机模式)
  • 3、让我们动手配置吧!
    • 3.1 设置Nat网络
    • 3.2 设置Host-only网络
  • 参考

1、问题背景

按照以往习惯的设置我采用桥接模式进行上网,但现在面临的需求场景是这样:

要求centos虚拟机可以yum install、docker拉互联网镜像,因此需要访问互联网。centos需要访问本地宿主机的vpn。本地xshell可以ssh访问cenots虚拟机。

因此为了实现我的目标需求,采用了 nat+host-only方式对虚拟机进行设置。在设置的过程中花了一些时间,为了总结经验就有了该文章。

2、虚拟机网卡有哪些连接方式?

VirtualBox中有4中网络连接方式:

  • NAT
  • Bridged Adapter
  • Internal
  • Host-only Adapter

先来一张图,通过这张图就很容易看出这4种方式的区别:

2.1、NAT

NAT:Network Address Translation,网络地址转换
NAT模式是最简单的实现虚拟机上网的方式,你可以这样理解:

Guest访问网络的所有数据都是由主机提供的,Guest并不真实存在于网络中,主机与网络中的任何机器都不能查看和访问到Guest的存在。
Guest可以访问主机能访问到的所有网络,但是对于主机以及主机网络上的其他机器,Guest又是不可见的,甚至主机也访问不到Guest。

**虚拟机与主机的关系:**只能单向访问,虚拟机可以通过网络访问到主机,主机无法通过网络访问到虚拟机。
**虚拟机与网络中其他主机的关系:**只能单向访问,虚拟机可以访问到网络中其他主机,其他主机不能通过网络访问到虚拟机。
**虚拟机与虚拟机的关系:**相互不能访问,虚拟机与虚拟机各自完全独立,相互间无法通过网络访问彼此。​

2.2、Bridged Adapter(网桥模式)

网桥模式,你可以这样理解:
它是通过主机网卡,架设了一条桥,直接连入到网络中了。因此,它使得虚拟机能被分配到一个网络中独立的IP,所有网络功能完全和在网络中的真实机器一样。
网桥模式下的虚拟机,你把它认为是真实计算机就行了。
**虚拟机与主机的关系:**可以相互访问,因为虚拟机在真实网络段中有独立IP,主机与虚拟机处于同一网络段中,彼此可以通过各自IP相互访问。
**虚拟机于网络中其他主机的关系:**可以相互访问,同样因为虚拟机在真实网络段中有独立IP,虚拟机与所有网络其他主机处于同一网络段中,彼此可以通过各自IP相互访问。
**虚拟机与虚拟机的关系:**可以相互访问,原因同上。

2.3、Internal(内网模式)

内网模式,顾名思义就是内部网络模式:
虚拟机与外网完全断开,只实现虚拟机于虚拟机之间的内部网络模式。
**虚拟机与主机的关系:**不能相互访问,彼此不属于同一个网络,无法相互访问。
**虚拟机与网络中其他主机的关系:**不能相互访问,理由同上。
**虚拟机与虚拟机的关系:**可以相互访问,前提是在设置网络时,两台虚拟机设置同一网络名称。如上配置图中,名称为intnet。

2.4、Host-only Adapter(主机模式)

主机模式,这是一种比较复杂的模式,需要有比较扎实的网络基础知识才能玩转。可以说前面几种模式所实现的功能,在这种模式下,通过虚拟机及网卡的设置都可以被实现。
我们可以理解为Guest在主机中模拟出一张专供虚拟机使用的网卡,所有虚拟机都是连接到该网卡上的,我们可以通过设置这张网卡来实现上网及其他很多功能,比如(网卡共享、网卡桥接等)。
**虚拟机与主机的关系:**默认不能相互访问,双方不属于同一IP段,host-only网卡默认IP段为192.168.56.X 子网掩码为255.255.255.0,后面的虚拟机被分配到的也都是这个网段。通过网卡共享、网卡桥接等,可以实现虚拟机于主机相互访问。
**虚拟机与网络主机的关系:**默认不能相互访问,原因同上,通过设置,可以实现相互访问。
**虚拟机与虚拟机的关系:**默认可以相互访问,都是同处于一个网段。​

3、让我们动手配置吧!

软件环境

  • virtualbox 6.0.22
  • centos linux7

3.1 设置Nat网络

设置nat网络是为了让虚拟机可以访问互联网。

设置前先把虚拟机关机,笔者在这里踩坑了很久。

  1. 在 VirtualBox 主控制界面点击 【管理】–【全局设定】–【网络】–【添加新NAT网络】
  2. 在弹出的对话框中,设置【网络CIDR】为【192.168.100.0/24】,【确定】

入下图所示:

在管理界面点击【设置】–【网络】–【网卡1】,【连接方式】选择【NAT网络】,【界面名称】选【NATNetwork】,【确定】,截图如下:

【启动】

登陆进系统之后,运行:

# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

将【ONBOOT】改为【yes】 具体配置如下:

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=3b8d1c63-5d2e-43d2-9508-6c1ecec961346
DEVICE=enp0s3
ONBOOT=yes
HWADDR=08:00:27:AF:90:BF

重启网络服务:

systemctl restart network

此时可以正常联网了,curl访问百度入下图所示:

但是此时还不能通过 SSH 登陆服务器。

3.2 设置Host-only网络

设置前先把虚拟机关机,笔者在这里踩坑了很久。

在【管理】–【全局设定】–【网络】中,应该能看到【仅主机(Host-Only)网络】的选项卡。在安装完 VirtualBox后,在计算机的【网络和共享中心】–【更改适配器设置】中可以看到【VirtualBox Host-Only Network】:

右键【属性】–【Internet协议版本4(TCP/IPv4)】中可以看到 IP 地址是【192.168.56.1】:

回到 VirtualBox,选择【编辑仅主机(Host-Only)网络】。可以看到:

【设置】–【网络】–【网卡2】–【启用网络连接】,【连接方式】选【仅主机(Host-Only)网络】:

开机。

执行下列命令:

复制一份网卡配置

cp ifcfg-enp0s3  ifcfg-enp0s8
vi ifcfg-enp0s8

删除【HWADDR】行,删除【UUID】行,添加【IPADDR】和【NETMASK】,修改【DEVICE】为【enp0s8】,【BOOTPROTO】为【static】:

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s8
UUID=3b8d1c63-5d2e-43d2-9508-6c1ecec96146
DEVICE=enp0s8
ONBOOT=yes
IPADDR=192.168.56.42
NETMASK=255.255.255.0

重启网络服务。

systemctl restart network

此时可以使用 xshell连接虚拟机了,配置连接入下图所示:

连接成功入下图所示:

收工!

参考

https://www.cnblogs.com/dee0912/p/5470700.html
https://www.cnblogs.com/york-hust/archive/2012/03/29/2422911.html

到此这篇关于virtualbox centos7 nat+host-only方式联网踩坑总结的文章就介绍到这了,更多相关virtualbox host-only联网内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详解VirtualBox虚拟机网络环境解析和搭建-NAT、桥接、Host-Only、Internal、端口映射

    由于前几天老师要检查大作业,而我们的数据库是放在虚拟机里的(不想在本机里放太多东西,保持轻便快速...),平时是用的桥接模式,但是考虑到可能教室里不好上网(图书馆底下信号比较差...),所以就试了试断网情况,却发现无法连接到数据库,因此专门找了资料学习了一下虚拟机的网络环境,网上信息比较杂,粘贴党太多,害苦了我,因此写这篇文章供大家参考,也供自己以后参考.全是经过测试的,绝非粘贴. 本文以VirtualBox为例 如果出现主机无法ping通虚拟机的情况,请首先确认虚拟机防火墙已关闭. 一.NAT

  • virtualbox centos7 nat+host-only方式联网踩坑总结

    目录 1.问题背景 2.虚拟机网卡有哪些连接方式? 2.1.NAT 2.2.Bridged Adapter(网桥模式) 2.3.Internal(内网模式) 2.4.Host-only Adapter(主机模式) 3.让我们动手配置吧! 3.1 设置Nat网络 3.2 设置Host-only网络 参考 1.问题背景 按照以往习惯的设置我采用桥接模式进行上网,但现在面临的需求场景是这样: 要求centos虚拟机可以yum install.docker拉互联网镜像,因此需要访问互联网.centos需

  • vue使用 vue-socket.io三种方式及踩坑实例解析

    目录 前言 安装 使用方式一 (官方用法)[全局挂载,不验证] 使用方式二 (组件挂载使用)[可验证] 使用方式三 (全局挂载使用)[可验证] 使用方式推荐 nodejs服务端本地demo代码 总结 前言 vue项目实时通信实现常用方式: 一.原生HTML5 WebSocket实现,vue中使用websocket 二.插件socket.io官网 ,Socket.io是一个WebSocket库,包括了客户端js和服务器端的nodejs,会自动根据浏览器从WebSocket.AJAX长轮询.Ifra

  • Oracle数据库表备份导入导出dmp的方式及踩坑记录

    目录 一.备份导出前的注意事项 二.导出的两种方式 2.1.使用exp导出 2.2.使用数据泵expdp导出 三.在备份时遇到的坑 附:Oracle导出指定用户下dmp文件 总结 一.备份导出前的注意事项 1.导出导出的时候需要注意数据库的字符集是否一致,使用工具导入的话也需要确认工具的字符集 --查询服务端的编码命令 SELECT * FROM Nls_Database_Parameters where parameter = 'NLS_CHARACTERSET'; --查询客户端软件的编码命

  • VirtualBox CentOS7.7.1908 Python3.8 搭建Scrapy开发环境【图文教程】

    环境 VirtualBox_v6.0.14 CentOS_v7.1908 Python_v3.8.0 MongoDB_v3.2.22 pip_v19.3.1 windows Pycharm-2019.2.3企业版(社区版不支持远程连接linux开发),需激活使用系统自带Python2.7.5不做处理,尝试过pyenv安装3.8,但是到安装scrapy的时候报错不断,最终又卸载了pyenv重新手动编译安装. 安装CentOS 为了保证虚拟机和宿主机能互相访问和正常通信,采用2虚拟网卡的配置方式.

  • centos7上mysql8.0rpm方式安装教程图解

    首先是下载图解 1.首先卸载centos7中自带的mariadb rpm -qa|grep mariadb //查询出来已安装的mariadb rpm -e --nodeps 文件名 //卸载mariadb,文件名为上述命令查询出来的文件 2.查看是否已经安装了mysql rpm -qa | grep -i mysql 查找mysql文件,使用rm -rf mysql文件路径删除 find / -name mysql 删除分散mysql文件 find / -name mysql / # wher

  • CentOS7.5使用mysql_multi方式安装MySQL5.7.28多实例(详解)

    因使用源码安装的MySQL5.7.28多实例,在导入数据库时会出现问题,所以重新研究使用mysql_multi的方法来管理多实例,经过测试环境验证之后,在各方面使用上特别在备份还原上,没有报MySQL5.7.28多实例的问题,踩了不少坑,这里我将我的部署过程分享下,如果在哪里出问题的,还请多多指正与指导,谢谢!! 参考文章:Centos7.5安装mysql5.7.24二进制包方式部署 https://www.jb51.net/article/151867.htm 本从就直接从2.7章节开始安装m

  • centos7安装mysql5.7的踩坑记录

    目录 下载安装mysql 下载rpm安装包 安装 查看安装情况 安装server 这里发现这个问题: 备注: 总结 今天使用centos7进行mysql5.7的安装,出现挫折,记录如下: 下载安装mysql 下载rpm安装包 wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm --2022-01-22 03:01:53-- http://dev.mysql.com/get/mysql57-communi

  • PyTorch中apex安装方式和避免踩坑

    目录 1.apex 2.安装步骤 3.虽然就简单三行命令,但是仍有很多“坑”存在 背景:这个库的安装不是像其他的一样的直接使用 pip install XXX的形式,而是使用原始的Git方式 1.apex 这是NVIDIA开发的基于PyTorch的混合精度训练加速神器,能够增加运算速度,并且减少显存的占用 2.安装步骤 git clone https://github.com/NVIDIA/apex.git cd apex pip install -v --no-cache-dir --glob

  • nginx反向代理踩坑实战记录(容器方式)

    目录 一.简述 1.1 什么是反向代理? 1.2 看图理解 1.3 错误总结 二.正确案例 2.1 启动nginx 2.3 配置nginx 2.4 重启所有服务 2.5 测试 三.云服务器上跑的nginx怎么代理本地项目 总结 一.简述 1.1 什么是反向代理? 这很重要,反向代理就是代理服务器代理真实服务器.客户端以为代理服务器就是真实服务器,所以就会把要请求的==资源(URL)==发给代理服务器. 代理服务器一般是由nginx来充当,代理功能由配置文件来完成. 1.2 看图理解 画的仓促,大

  • vmware导入ova文件踩坑记小结

    问题来源 众所周知,所有的网络行为都会产生相应的网络流量,那么所有的网络攻击行为也有其对应的流量特点,那么是否能根据流量特点进而分析出其对应的是什么攻击行为呢? 我在虚拟机上使用vulnhub的靶场环境进行模拟攻击,然乎使用wireshark进行抓包分析流量. 问题出现 因为vulnhub的环境是ova文件的虚拟机,是需要使用virtualbox打开的,但是我没有用过vbox,想着把他导入vmware中进行测试,很快遇到了第一个问题:当我把ova文件导入vmware时报错了,错误如下: 我尝试放

随机推荐