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)

大家都在看

  • 每天一个 HTTP 状态码 204

    204 No Content 表示服务器成功地处理了客户端的请求,但是… 204 No Content 204 No Content 表示服务器成功地处理了客户端的请求…

    Linux 2023年6月7日
    099
  • Ubuntu16.04修改IP

    ssh登录到服务。编辑网卡配置文件。 vim /etc/network/interfaces 先关闭DPCP,将 iface eth0 inet dhcp前面加上#号。 设置IP地…

    Linux 2023年6月6日
    0106
  • 安卓手机改造服务器——解决chroot下无法使用systemctl

    在Linux Deploy中安装的CentOS7无法使用 systemctl命令,没关系我们有其他办法 写在前面 对于这个问题,我也是第一次遇见。并没有深入研究,所有如果有哪些地方…

    Linux 2023年6月8日
    0137
  • mac如何安装FinalShell

    1、Mac一键安装脚本: curl -o finalshell_install.sh www.hostbuf.com/downloads/finalshell_install.sh…

    Linux 2023年5月28日
    0100
  • PMP 考试常见工具与技术点总结

    转载请注明出处: 网络图:项目进度活动之间的逻辑关系,用来推算关键路径,最大浮动时间等; 横道图(甘特图):以图示的方式,通过活动列表和时间刻度,来展示项目获得那个顺序和持续时间 …

    Linux 2023年6月14日
    092
  • Vue3 封装 Element Plus Menu 无限级菜单组件

    本文分别使用 SFC(模板方式)和 tsx 方式对 Element Plus el-menu 组件进行二次封装,实现配置化的菜单,有了配置化的菜单,后续便可以根据路由动态渲染菜单。…

    Linux 2023年6月7日
    0146
  • Kubernetes-DashBoard部署

    DashBoard 在kubernetes中完成的所有操作都是通过命令行工具kubectl完成的。其实,为了提供更丰富的用户体验,kubernetes还开发了一个基于web的用户界…

    Linux 2023年6月13日
    096
  • Docker安装及配置镜像加速

    Docker 支持 Mac Windows Linux 的三种安装 1、系统要求 官网提示如果要安装 Docker Engine, 需要一个CentOS 7 以及以上的稳定版本。 …

    Linux 2023年5月27日
    0108
  • 【论文笔记】(模型压缩)Do Deep Nets Really Need to be Deep?

    摘要 作者通过模型压缩(model compression)使浅层的网络学习与深层网络相同的函数,以达到深层网络的准确率(accuracy)。当与深浅模型的参数量相同时,浅层模型可…

    Linux 2023年6月7日
    0105
  • 【电子取证:FTK Imager篇】DD、E01系统镜像仿真

    星河滚烫,人生有理想!​—【suy999】 一、DD、E01系统镜像动态仿真 在电子取证分析过程中,我们经常遇到DD、E01等系统镜像,然而,并非所有工作者手边都有自动…

    Linux 2023年6月13日
    0110
  • JAVAssist字节码操作

    Java 动态性的两种常见实现方式 字节码操作 反射 运行时操作字节码可以让我们实现如下功能: 动态生成新的类 动态改变某个类的结构(添加/删除/修改新的属性/方法) 优势: 比反…

    Linux 2023年6月13日
    094
  • [ Calibre ] 利用 Calibre LVS 检查网表正确性的最小 rule

    利用 Calibre LVS 检查网表正确性的最小 rule https://www.cnblogs.com/yeungchie/ 顶层验证前先检查网表,再跑完整流程。 check…

    Linux 2023年6月7日
    093
  • Linux静默安装weblogic12(fmw_12.1.3.0.0_wls.jar)

    1、安装JDK环境 2、创建安装用户 3、配置JAVA环境变量 4、创建响应文件wls.rsp 响应文件中的项一定要写全,否则会报奇怪的错误。 5、创建Loc文件oraInst.l…

    Linux 2023年6月14日
    0101
  • 在公司当上PD的心路历程

    前不久因为接了个新项目,我被选中当上PD也就是专门负责给客户演示,推进项目、录视频、写文档、做测试,因为我本来就需要测这些东西,熟悉算法、应用、固件,所以大部分人就觉得非我不可。 …

    Linux 2023年6月8日
    099
  • Jenkins+svn自动化部署完整教程

    1、概述 Jenkins 是一个可扩展的持续集成引擎。主要用于持续、自动地构建/测试软件项目、监控一些定时执行的任务。Jenkins用Java语言编写,可在Tomcat等流行的se…

    Linux 2023年6月7日
    095
  • typora使用

    一:typora、配置picgo+github安装以及配置 picgo 、Node.js和typora安装包见百度网盘链接: 参考的教程如下: 二:typora使用语法 Ctrl+…

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