虚拟机网络配置详解(NAT、桥接、Hostonly)

VirtualBox中有四种网络连接方式:

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

VMWare中有三种,其实它跟VMWare的网络连接方式都是一样的概念,只是比VMWare多了Internal方式

四种工作模式

在介绍四种工作模式之前,先说下虚拟网卡,虚拟机安装好之后,会自动添加两张网卡(VMnet1和VMnet8),VMnet1用户Host-only网络连接,VMnet8用NAT方式的网络连接,原先的VMnet0用桥接网络连接。

1.Bridged 桥接模式

1.1 特点

虚拟机和主机是处于同等地位的机器,所以网络功能也无异于主机。并且和主机处于同一网段。

1.2 原理

桥接模式,使用的是VMnet0虚拟网卡。
vmnet0实际上就是一个虚拟的网桥(2层交换机),这个网桥有若干个接口,一个端口用于连接你的Host主机,其余端口可以用于连接虚拟机,他们的位置是对等的,谁也不是谁的网关。所以桥接模式下,虚拟机和Host主机是同等地位的主机。

VMnet0

1.3 示例图

主机A上的两个虚拟机1和虚拟机2,和主机A、B同处于一个网段,能够相互通信

桥接模式

1.4 配置

虚拟机1的配置:

DEVICE="eth0"
BOOTPROTO=“static" #设置静态ip,动态为dhcp
IPADDR="192.168.1.3"
GATEWAY="192.168.1.1"
HWADDR="08:00:27:C7:1B:22"
DNS1="8.8.8.8"
NETMASK="255.255.255.0"
ONBOOT="yes"

2.Host-only模式

2.1 特点

只能和主机相互通信,不能上网,也不能访问其他主机,用于建立与外部隔离的网络环境

2.2 原理

Host-only模式使用的是VMnet1网卡。
这种方式下,虚拟机连接到VMnet1上,但系统并不为其提供任何路由服务,因此虚拟机只能和宿主机进行通信,而不能连接到真正的网络上。

2.3 示例图

虚拟机1和2之间可以相互通信,主机A能和虚拟机1和2通信,虚拟机1和2不能和主机通信(需要设置),虚拟机不能和B主机以及外网通信

Hostonly模式

2.4 配置

虚拟机1的配置:

DEVICE="eth0"
BOOTPROTO=“static" #设置静态ip,动态为dhcp
IPADDR="192.168.56.3"
HWADDR="08:00:27:C7:1B:22"
NETMASK="255.255.255.0"
ONBOOT="yes"

3.NAT

3.1 特点

  • 主机ping不通虚拟机(包括宿主)
  • 同一宿主的虚拟机可以相互ping通
  • 宿主能够联网,虚拟机也能联网(其他主机)。宿主没有联网,虚拟机也不能联网
  • 虚拟机能够ping通主机
    其他主机不能访问虚拟机

3.2 原理

网络地址转换类似于家庭路由器的方式工作。使用NAT模式,就是让虚拟系统借助NAT(网路地址转换)功能,通过宿主机器所在的网络来访问公网。

其实就是虚拟机的网卡连接到宿主的VMnet8虚拟机交换机上,VMnet8充当了路由器的作用,负责将虚拟机转发到VMnet8的包进行地址转换之后发送到实际的网络中,再降实际网络上返回的包进行地址转换后通过VMnet8发送给虚拟机。

其实相比Host-only模式只不过增加一层路由功能。

注意:
 看VirtualBox官方文档,如果VMnet8网卡地址段是10.0.2.0/8 那么默认网关是10.0.2.1,而且我这样配置也对。但是看网上VMVare使用的网关都是10.0.2.2,没有看VMVare官方文档,也不清楚,希望知道的同学告知一下。

3.3 示例图

主机A和虚拟机1和2能相互通信,虚拟机1和2能访问主机B和外网,主机B不能访问虚拟机1和2,虚拟机1和2能相互通信

NAT模式

3.4 配置

虚拟机1的配置:

DEVICE="eth0"
BOOTPROTO=“static" #设置静态ip,动态为dhcp
IPADDR="10.0.2.5"
GATEWAY="10.0.2.1"
HWADDR="08:00:27:C7:1B:22"
DNS1="10.0.2.1"
NETMASK="255.255.255.0"
ONBOOT="yes"

4.内部网络

内部网络类似于桥接网络,虚拟机可以直接与外部通信。但是外部仅限于连接到统一主机上的其他虚拟机。

即使在技术上,使用内部网络可以完成的一切也可以使用桥接网络,内部网络有安全优势。在桥接网络模式下,所有流量都通过主机系统的物理接口。

默认不分配IP,需要自己手动设置。

参考:
【1】虚拟机网络拓扑http://wangchunhai.blog.51cto.com/225186/381225/

【2】http://blog.csdn.net/clevercode/article/details/45934233

转载于:https://www.cnblogs.com/beginmind/p/6379881.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/282890.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Oracle收款核销了怎么撤销,21应收收款-核销取消或核销调整

注:本课程不包含学习下载资料目标人群:1、Oracle ERP/EBS初级顾问和技术顾问; 1、Oracle ERP/EBS用户熟练学习ERP系统的基本设置功能; 2、Oracle ERP/EBS财务初级顾问的学习; 3、其他对Oracle ERP/EBS有兴趣的想转行如…

微软宣布正式开源 Azure IoT Edge 边缘计算服务

开发四年只会写业务代码,分布式高并发都不会还做程序员? 微软宣布,去年年底公开预览的 Azure IoT Edge 边缘计算服务已进入官方版,并通过 GitHub 将其开源。Azure IoT Edge 主要将基于云的分析和定制的业务逻辑转移到边缘设备&a…

Windows下安装BeautifulSoup

电脑首先要安装好了python,我安装的是2.7。 下面就是bs4的安装过程了: 1.去官网下载BeautifulSoup4 2017.02.10目前最新版本:Beautiful Soup 4.3.2 2.解压文件 将下载得到的压缩包解压到任意文件夹,路径不含中文 3.打开cmd命令提示符 winr&am…

BZOJ1578: [Usaco2009 Feb]Stock Market 股票市场

S<50只股票D<10天的价格给出&#xff0c;求第一天开始用n<200000元最后能得到的最大钱数&#xff0c;保证答案<500000。 做D次完全背包即可&#xff0c;每次做完把dp数组清空。 1 #include<cstdio>2 #include<cstring>3 #include<algorithm>4 #i…

OC如何跳到系统设置里的各种设置界面

当 iOS系统版本 < iOS7时 , 只能跳转到 系统设置页面 &#xff0c;楼主试了下&#xff0c;非真机是没有任何效果的 当iOS系统版本 < iOS 10.0 时 NSURL *url [NSURL URLWithString:"prefs:rootLOCATION_SERVICES"]; if( [[UIApplication sharedApplication]can…

oracle 注册程序,oracle 静态注册

1. 最近在装ASMDATAGUARD&#xff0c; 在静态注册上面吃了大亏&#xff0c;现总结如下2. 在Asm环境中&#xff0c;listener监听器在grid用户下DGLSN (DESCRIPTION_LIST (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST asm)(PORT 1521))))SID_LIST_DGLSN (SID_LIST (SID_DESC (…

Linux下find用法总结

find:实时查找工具&#xff0c;通过遍历指定起始路径下的文件系统层级结构完成文件查找:工作特性:查找速度略慢精确查找实时查找用法:find [option] [查找起始路径][查找条件][处理动作]查找起始路径&#xff1a;指定具体搜索目标起始路径&#xff1b;默认为当前目录查找条件:指…

虚拟DOM Diff算法解析

React中最神奇的部分莫过于虚拟DOM&#xff0c;以及其高效的Diff算法。这让我们可以无需担心性能问题而”毫无顾忌”的随时“刷新”整个页面&#xff0c;由虚拟DOM来确保只对界面上真正变化的部分进行实际的DOM操作。React在这一部分已经做到足够透明&#xff0c;在实际开发中我…

生成ID模板:年月日时分秒+6位自增码

因为生成订单ID、商品ID 或者什么什么ID的&#xff0c;不想用自增&#xff0c;又怕反复&#xff0c;于是就用 年与日时分秒 6位自增码 &#xff08;共计20位长度&#xff09;来当作ID 注意&#xff1a;假设你的ID是Long型。就要注意&#xff0c;Long的最大长度为19位&#xf…

oracle optimizer_features_enable,Oracle Optimizer:迁移到使用基于成本的优化器—–系列2.1-数据库专栏,ORACLE...

oracle optimizer:迁移到使用基于成本的优化器—–系列2.1系列之二包含影响优化器选择执行计划的初始化参数和oracle内部隐藏参数&#xff0c;合理设置这些参数对于优化器是相当重要的。6.影响优化器的初始化参数除了生成统计资料之外&#xff0c;下面提及的参数设置在你的系统…

Azure 跨订阅迁移资源踩坑记

突然收到微软的邮件&#xff0c;提示我的一个 Azure 订阅已经到期&#xff0c;所以转为“禁用”状态&#xff0c;只能进行数据的导出和处理。在这个订阅里有不少较重要的资源在跑&#xff0c;直接关了可不行…于是开启了一个支持事件&#xff0c;台湾美眉的态度和声线真的没话说…

阶乘的精确性

/* 输入不超过1000的正整数n&#xff0c;输出n!1*2*3*……*n的精确结果。 样例输入&#xff1a;30 样例输出&#xff1a;265252859812191058636308480000000 例如 n3&#xff1b;s6&#xff1b; n4&#xff1b;s24&#xff1b; n5&#xff1b;s120&#xff1b; 1000的阶乘需要一…

Optaplanner规划引擎的工作原理及简单示例(1)

在之前的文章中&#xff0c;老猿已介绍过APS及规划的相关内容&#xff0c;也对Optaplanner相关的概念和一些使用示例进行过介绍&#xff0c;接下来的文章中&#xff0c;我会自己做一个规划小程序 - 一个关于把任务分配到不同的机台上进行作来的小程序&#xff0c;并在这个小程序…

[HNOI2017]礼物

题目描述 我的室友最近喜欢上了一个可爱的小女生。马上就要到她的生日了&#xff0c;他决定买一对情侣手环&#xff0c;一个留给自己&#xff0c;一个送给她。每个手环上各有 n 个装饰物&#xff0c;并且每个装饰物都有一定的亮度。 但是在她生日的前一天&#xff0c;我的室友突…

《ASP.NET Core 6框架揭秘》实例演示[25]:配置与承载环境的应用

与服务注册一样&#xff0c;针对配置的设置同样可以采用三种不同的编程模式。第一种是利用WebApplicationBuilder的Host属性返回的IHostBuilder对象&#xff0c;它可以帮助我们设置面向宿主和应用的配置。IWebHostBuilder接口上面同样提供了一系列用来对配置进行设置的方法&…

oracle的除,Oracle数据库如何去除别名 - daiyan0526的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

本人曾经用Personal OracleDeveloper2000开发了一些程序&#xff0c;当移植到FOR NT的时候发现有些功能出现了出错提示。经研究发现原来是用户没有能正常连接。由于在developer2000连接personal oracle时不需要别名(alias)&#xff0c;直接写入用户名/密码则可。而在OracleFOR …

Java 之 JavaScript (一)

1.JavaScripta.定义&#xff1a;JavaScript是脚本语言&#xff0c;是一种轻量级的编程语言b.实现&#xff1a;①直接通过标签里面的onXX属性驱动js的执行<input type"button" value"测试" οnclick"alert(‘hello‘)">②引入外部js文件——…

Linux日志出现大量kernel: NET: Registered protocol family 36

一台Linux服务器的系统错误日志出现大量的“ kernel: NET: Registered protocol family 36”错误信息&#xff0c;如下所示&#xff1a; Jul 2 05:27:45 xxxxxx kernel: NET: Registered protocol family 36Jul 2 05:27:45 xxxxxx kernel: NET: Unregistered protocol family…

node的模块机制

Node.js模块的实现 之前在网上查阅了许多介绍Node.js的文章&#xff0c;可惜对于Node.js的模块机制大都着墨不多。在后续介绍模块的使用之前&#xff0c;我认为有必要深入一下Node.js的模块机制。 CommonJS规范 早在Netscape诞生不久后&#xff0c;JavaScript就一直在探索本地编…

vs使用ado连接oracle,在VS环境下以ADO方式操作Oracle数据库

利用ADO引擎方式访问Oracle数据库的实现方法&#xff1a;定义数据库头文件为CDBOperation.h#pragma once#import "C:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF","adoEOF"),rename("LockTypeEnum"…