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

本文涉及的产品
公网NAT网关,每月750个小时 15CU
简介: virtualbox centos7 nat+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种方式的区别:


28.png

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】,【确定】

入下图所示:

29.png


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

30.png


【启动】


登陆进系统之后,运行:

# 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访问百度入下图所示:

31.png

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


3.2 设置Host-only网络

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


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

32.png


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

33.png


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


34.png

35.png36.png

新版本在 管理》主机网络管理器,找到。


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

37.png

开机。


执行下列命令:

复制一份网卡配置

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连接虚拟机了,配置连接入下图所示:

38.png

连接成功入下图所示:

39.png

收工!


参考

https://www.cnblogs.com/dee0912/p/5470700.html

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


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
网络协议 虚拟化
76Linux - VMware虚拟机三种联网方法( NAT网络地址转换: 默认使用VMnet8 )
76Linux - VMware虚拟机三种联网方法( NAT网络地址转换: 默认使用VMnet8 )
117 0
|
Oracle 关系型数据库 Linux
Virtualbox上安装Linux系统(CentOS7)(图文超详细)
Virtualbox上安装Linux系统(CentOS7)(图文超详细)
1131 0
|
1月前
|
Linux
VirtualBox的Centos上安装GNOME桌面完整教程
在VirtualBox上的CentOS系统安装GNOME桌面环境的完整教程,通过执行一系列命令来安装EPEL软件源、GNOME桌面环境,并配置系统默认运行级别为图形界面。
53 0
|
6月前
|
Linux 虚拟化
VMware workstation 中centos7虚拟机在nat模式下怎么配置网卡,指定我想要的IP并且可以联网
https://blog.csdn.net/2302_78534730/article/details/132825156?spm=1001.2014.3001.5502
301 0
|
缓存 Linux 网络安全
|
6月前
|
Kubernetes Linux 数据安全/隐私保护
k8s安装环境准备:Virtualbox安装CentOS;复制多个CentOS虚拟机
k8s安装环境准备:Virtualbox安装CentOS;复制多个CentOS虚拟机
120 0
|
6月前
|
缓存 网络协议 Linux
百度搜索:蓝易云【【CentOS】VirtualBox yum 无法使用怎么办?】
如果您尝试了以上解决方法仍然无法解决问题,建议查看相关的错误提示信息以获取更多的线索。您也可以在论坛或社区中寻求帮助,向其他用户或开发者寻求进一步的支持和指导。
75 0
|
Shell Linux 数据安全/隐私保护
virtualbox+centos8安装 2
virtualbox+centos8安装
58 0
virtualbox+centos8安装 1
virtualbox+centos8安装1
117 0
|
大数据 Linux 网络安全
VirtualBox虚拟机里安装centos和虚拟机相互通讯和访问外网
VirtualBox虚拟机里安装centos和虚拟机相互通讯和访问外网
VirtualBox虚拟机里安装centos和虚拟机相互通讯和访问外网