VirtualBox网络模式 宿主机无法访问虚拟机问题记录

问题背景

最近在公司使用VirtualBox虚拟机,使用虚拟的ubuntu系统,家里的路由能使用桥接模式,然后能双向ping通(宿主机

现在经常要打开虚拟Linux跑一些脚本和编译一些.so,感觉这个问题以后还是会经常遇到,所以我就记录下来,方便以后查阅。

注 : 桥接模式 = 网桥模式;

VirtualBox的4种网络连接模式

VMware的网络情况也类似,可以类比。

默认情况下,相互之间网络连接情况如下图:

NAT Bridged Adapter Internal Host-only Adapter 虚拟机 ——> 主机 √ √ × 默认不能,需要设置 主机 ——> 虚拟机 × √ × 默认不能,需要设置 虚拟机 ——> 其它主机 √ √ × 默认不能,需要设置 其它主机 ——> 虚拟机 × √ × 默认不能,需要设置 虚拟机

NAT (网络地址转换模式)

NAT: Network Address Translation (网络地址转换)
NAT 网络地址翻译,是只能从内访问外面而不能从外部访问里面,所以只能单向ping通,虚拟机的ip只是内部ip。桥接则是与主机公用网卡,有独立的外部ip。

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

NAT模式通过 绑定静态转发才能从 外部访问,这个还是很方便的,绑定了静态转发之后,就没有网络环境的限制问题了。有需求的话,自己搜索一下网上的文章和教程,按照步骤操作即可,步骤很简单。

VirtualBox网络模式 宿主机无法访问虚拟机问题记录
找到对应nat模式的网卡,点击下面的端口转发,增加转发规则,添加相应端口即可(只需填主机端口、子系统端口,ip不用填写)

假设虚拟机开启了ssh服务,服务默认服务端口为22,则设定子系统端口为22,主机端口222(自己随意填写),那么使用putty、scrt、xmanager等工具连接时,主机填写localhost,端口填写222(你定义的主机端口),即可实现宿主机ssh方式访问虚拟机。

假设虚拟机开启了httpd服务,服务默认服务端口为80,则设定子系统端口为80,主机端口880(自己随意填写),那么宿主机开启浏览器,输入地址http://localhost:880(你定义的主机端口),即实现宿主机访问虚拟机中的httpd提供的web服务了。

Bridged Adapter (网桥模式)

它是通过主机网卡,架设了一条桥,直接连入到网络中了。因此,它使得虚拟机能被分配到一个网络中独立的IP,所有网络功能完全和在网络中的真实机器一样。

网桥模式下的虚拟机,可以认为它是真实计算机了,因为它拥有真实的局域网ip地址,只要防火墙允许,它就能通。

虚拟机主机的关系:可以相互访问,因为虚拟机在真实网络段中有独立IP,主机与虚拟机处于同一网络段中,彼此可以通过各自IP相互访问。
虚拟机网络中其他主机的关系:可以互相访问,同样因为虚拟机在真实网络段中有独立IP,虚拟机与所有网络其他主机处于同一网络段中,彼此可以通过各自IP互相访问。
虚拟机虚拟机的关系:可以互相访问,原因同上。

使用网桥模式需要注意的点:
由于”桥接模式”相当于在局域网内新加入一台独立计算机,让它具有指定的IP地址、子网掩码、网管、DNS等。 在公司里,不管什么资源都是要管控的,即使是网络资源,尤其是IP地址(毕竟是有限的),一般情况下,公司里,这个是由网管/运维来统筹处理的,他们为了网络的安全性,和方便做统一管理,公司的网关默认都是不允许你的虚拟机网络成功分配到网络资源的,他们会在路由上做限制,导致你的虚拟机无法使用网桥模式。

我尝试宿主机加入 4G网络,虚拟机也一样不能使用网桥模式。

所以想要网桥功能的话,我一般选择下班之后,回家里(家里的路由不做这种限制)去做实验。

Internal (内网模式)

内网模式,顾名思义就是内部网络模式:

虚拟机与外网完全断开,只实现虚拟机与虚拟机之间的内部网络模式。

虚拟机主机的关系:不能相互访问,彼此不属于同一个网络,无法相互访问。
虚拟机网络中其他主机的关系:不能相互访问,理由同上。
虚拟机虚拟机的关系:可以相互访问,前提是在设置网络时,两台虚拟机设置同一网络名称。如上配置图中,名称为intnet。

Host-only Adapter (主机模式)

主机模式,这是一种比较复杂的模式,需要有比较扎实的网络基础知识才可以玩转。可以说前面几种模式所实现的功能,在这种模式下,通过虚拟机及网卡的设置都可以被实现。

我们可以理解为Guest在主机中模拟出一张专供虚拟机使用的网卡,所有虚拟机都是连接到该网卡上的,我们可以通过设置这张网卡来实现上网及其他很多功能,比如(网卡共享、网卡桥接等)。

虚拟机主机的关系:默认不能相互访问,双方不属于同一IP段,host-only网卡默认IP段为192.168.56.X 子网掩码为255.255.255.0,后面的虚拟机被分配到的也都是这个网段。通过网卡共享、网卡桥接等,可以实现虚拟机与主机相互访问。
虚拟机网络主机的关系:默认不能相互访问,原因同上,通过设置,可以实现互相访问。
虚拟机虚拟机的关系:默认可以相互访问,都是同处于一个网段。

reference

https://www.cnblogs.com/haolb123/p/16553059.html 《VirtualBox NAT模式,设置虚拟机可上网,宿主机可访问虚拟机的方法》
http://blog.csdn.net/ixidof/article/details/12685549 《快速理解VirtualBox的四种网络连接方式》
http://blog.csdn.net/zero_295813128/article/details/51159805 《快速理解VirtualBox的四种网络连接方式》
https://www.cnblogs.com/mysticbinary/p/12703542.html 《网络地址转换NAT的两种模式(概念浅析)& IP溯源》

Original: https://www.cnblogs.com/mysticbinary/p/16595169.html
Author: Mysticbinary
Title: VirtualBox网络模式 宿主机无法访问虚拟机问题记录

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578325/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • .Net中Aspose组件调试技巧

    | 0.48分钟 | 774.4字符 | 1、引言&背景 2、水印或截断问题解决 3、即时调试的技巧 4、声明与参考资料 | SCscHero | 2022/6/4 PM2…

    Linux 2023年6月13日
    073
  • MAC Book: Operation not permitted

    背景: 最近清理系统上的一些无用的文件后,为了release出可用空间,所以还要把.Trash目录下的文件清理才真正清理完,但是ls 查看该目录时发现一直报”opera…

    Linux 2023年6月7日
    081
  • 浅谈缓存击穿、缓存穿透、缓存雪崩、缓存预热、缓存降级

    对于缓存,大家肯定都不陌生,不管是前端还是服务端开发,缓存几乎都是必不可少的优化方式之一。在实际生产环境中,缓存的使用规范也是一直备受重视的,如果使用的不好,很容易就遇到缓存击穿、…

    Linux 2023年6月14日
    090
  • RHCSA阶段笔记

    命令终端字段含义介绍 [root@localhost ~]# 解释: root:当前登录系统用户名(root超级管理员) localhost :当前主机名 :当前用户所在目录( 为…

    Linux 2023年6月14日
    078
  • Kubernetes 容器平台实战

    一、什么是Kubernetes? Kubernetes是容器集群管理系统,是一个开源的平台,可以实现容器集群的自动化部署,自动扩缩容,维护等功能. 通过Kubernetes可以做到…

    Linux 2023年6月14日
    091
  • apk自签证书

    需要用到keytool.exe (位于D:\Program Files\Java\jdk1.8.0_291\jre\bin目录下),使用产生的key对apk签名用到的是jarsig…

    Linux 2023年6月8日
    089
  • Kafka 配置文件详情

    kafka的配置分为 broker、producter、consumer三个不同的配置 一 、BROKER 的全局配置 最为核心的三个配置 broker.id、log.dir、zo…

    Linux 2023年6月8日
    076
  • 域控制器所需的DNS SRV记录没有在DNS中注册的解决方法

    搭建完AD和DNS之后,发现在DNS的正向查找区域没有SRV记录,并且客户端无法加入到AD中,如下 解决方法 删除正向查找区域下的目录 然后选择”正向查找区域&#822…

    Linux 2023年6月14日
    092
  • POJ1979(Red and Black)–FloodFill

    题目在这里 题目意思是这样的,一个人起始位置在 ‘@’ 处,他在途中能到达的地方为 ‘ . ‘ 而 ‘#’ …

    Linux 2023年6月7日
    092
  • WPF 切换主题使用 luna 复古版本

    本文告诉大家如何在 WPF 里面使用 luna 等复古主题 今天在 lsj 说他准备优化 WPF 的程序集时,准备删除 luna 等程序集时,找到了一段有趣的注释,发现在 WPF …

    Linux 2023年6月6日
    067
  • 使用 shell 脚本自动对比两个安装目录并生成差异补丁包

    问题的提出 公司各个业务线的安装包小则几十兆、大则几百兆,使用自建的升级系统向全国百万级用户下发新版本时,流量耗费相当惊人。有时新版本仅仅改了几个 dll ,总变更量不过几十 K …

    Linux 2023年6月6日
    073
  • redis缓存按条件查询,删除等等i_master_cell

    先用hash 存masterid中的全部i_master_cell key为master_id hash里面为key 为cell_id value为i_master_cell的各个…

    Linux 2023年5月28日
    077
  • Python代码模板

    #!/usr/bin/env python -*- encoding: utf-8 -*- class ClassName: def __init__(self, arg1, ar…

    Linux 2023年6月14日
    079
  • Java基础系列–09_集合2

    昨天介绍了集合的主要架构体系,今天主要的目的是学习集合的迭代器的遍历和List的特有功能。 迭代器:概述: 由于多种集合的数据结构不同,所以存储方式不同,取出方式也不同。但是他们都…

    Linux 2023年6月7日
    067
  • 我为儿子开发的第一款Android App,用于九九乘法练习

    用一天时间在macbook上安装好了Android Studio For Mac,注意dl.google.com只支持电信网络下载,家里宽带如果是移动或者联通的,使用AS下载And…

    Linux 2023年6月14日
    084
  • Ubuntu2004使用dnsmasq+Clash+Iptables+Ipset

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Linux 2023年6月13日
    080
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球