NAT模式实现局域网物理机与虚拟机的互通访问「建议收藏」

NAT模式实现局域网物理机与虚拟机的互通访问「建议收藏」玩过虚拟机的朋友都知道,不管是vbox还是vm,最常用的网络设置也不外乎3种:1、桥接模式:此模式下,虚拟机的操作系统就像和物理机同一段网络中的物理机一样,它可以访问网络中的任何机器,同时只要物理机可以访问网络,虚拟机也可以实现上网。此模式是懒人模式首选!但换来一个问题就是,如果你的物理机网络IP发生变化,虚拟机的IP也会相应的改变。如果IP变化对虚拟机有影响的环境,此模式慎用!

大家好,又见面了,我是你们的朋友全栈君。

玩过虚拟机的朋友都知道,不管是vbox还是vm,最常用的网络设置也不外乎3种:

1、桥接模式:此模式下,虚拟机的操作系统就像和物理机同一段网络中的物理机一样,它可以访问网络中的任何机器,同时只要物理机可以访问网络,虚拟机也可以实现上网。此模式是懒人模式首选!但换来一个问题就是,如果你的物理机网络IP发生变化,虚拟机的IP也会相应的改变。如果IP变化对虚拟机有影响的环境,此模式慎用!

2、Host-only模式:在一些网络环境中,由于安全,调试等原因,可能需要讲虚拟机和真实的物理环境隔离开来,那么此模式是首选。此模式下的所有虚拟机可以相互访问,但和真实的物理网络环境是隔离开的,此模式下的IP信息,是由host-only虚拟网络的DHCP服务器来分配的。当然了,此模式由于是和真实环境隔离开的,如果要上网,可能比较麻烦,博主没试过,有兴趣的可以自己研究下。

3、NAT模式:使用NAT模式,就是让虚拟机借助NAT(网络地址转换)功能,通过物理机来访问网络。此模式下,如果物理机可以访问互联网,那么虚拟机也可以,默认情况下 和物理机同一网络中的其它机器不能访问虚拟机,但虚拟机可以访问其它物理机。

上面说默认情况下,物理机的其它机器不能访问NAT模式下的虚拟机,但是通过端口转发功能可以实现物理机和NAT模式下的虚拟机的相互通信功能,下面说说如何设置:以vm为例(vbox一样)

打开vm的虚拟网络编辑器,如下:

添加一个NAT模式的网络,然后点开NAT设置,

在端口转发一项里面,添加,下面是一个示例:

其中,主机端口:即是网络中其它机器访问此物理机的端口。也是在xshell里面配置ssh的端口或者要访问的ftp服务器的端口。

虚拟机IP:也就是NAT模式下,分配给虚拟机的IP地址

虚拟机端口:是虚拟机设置的供外部访问的端口。比如22 80等。

以下是主要的端口转发设置。

这样设置以后,那么在其它物理机的xshell的连接里面,可以这样配置:(假设其它物理机访问宿主机的IP为:10.0.100.23)

上图中,9999端口,也就是在刚才NAT设置里面添加的端口号,此端口是有NAT开放出来,也是宿主机对外提供转发功能的端口。

其它物理机,通过宿主机的IP和9999端口,访问到NAT设置的虚拟网卡,然后NAT对该请求进行转发到IP为192.168.237.10,端口22进行处理,192.168.237.10:22,此IP和端口也就是NAT模式下的真实虚拟机的IP,端口。

在Xshell里面,也可以直接SSH过去,ssh root@10.0.100.23:9999。登录成功后,输入ifconfig,看到的IP信息一定是192.168.237.10,也可以查看到端口22是打开并在连接使用中

如果对以上设置不清楚的地方,可以参考: http://blog.csdn.net/u011031430/article/details/77131830

在这里插入图片描述
以上图片的配置
物理机网络中其它主机访问虚拟机服务方式则是 物理机IP:9999

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149798.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月23日 下午8:00
下一篇 2022年6月23日 下午8:16


相关推荐

  • C++中set用法详解

    C++中set用法详解1.关于setC++STL之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector,string,list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数方式提供的常用操作,如:插入、排序、删除、查找等。让用户…

    2022年5月11日
    46
  • Redis和MySQL的区别与使用(redis做mysql的缓存并且数据同步)

    Redis和MySQL的区别与使用(redis做mysql的缓存并且数据同步)一、redis和mysql介绍Redis基于内存,读写速度快,也可做持久化,但是内存空间有限,当数据量超过内存空间时,需扩充内存,但内存价格贵。MySQL基于磁盘,读写速度没有Redis快,但是不受空间容量限制,性价比高。大多数的应用场景是MySQL(主)+Redis(辅),MySQL做为主存储,Redis用于缓存,加快访问速度。需要高性能的地方使用Redis,不需要高性能的地方使用M…

    2022年6月15日
    38
  • matlab如何做向量内积,matlab2010a的bug:* 向量内积的错误解决方案「建议收藏」

    matlab如何做向量内积,matlab2010a的bug:* 向量内积的错误解决方案「建议收藏」很偶然地发现了一个matlab2010a的一个bug:在某种非常特殊的情况下,matlab2010a的向量内积,即*指令会产生错误的结果。下面陈述具体现象:1.程序源代码(注:运行该程序时需要把den1.mat和kern1.mat这两个matlab数据文件与程序放在同一个文件夹中)clc;clear;load(‘den1.mat’);load(‘kern1.mat’);x=kern;y=d…

    2026年3月6日
    4
  • Java工程师自我评价(软件工程师自我评价)

    JAVA工程师简历自我评价无论在学习、工作或是生活中,我们都可能会使用到自我评价,自我评价具有重要的社会功能,它极大地影响人与人之间的交往方式。那要怎么写好自我评价呢?以下是小编收集整理的JAVA工程师简历自我评价,仅供参考,希望能够帮助到大家。JAVA工程师简历自我评价11、有较强的分析、解决问题的能力,具有较强逻辑思维能力和表达能力。2、性格开朗,积极乐观,能以极大的’热情投入工作。3、具…

    2022年4月15日
    49
  • C程序设计(第五版)谭浩强 学习笔记—重点及易错点(1-5章)

    C程序设计(第五版)谭浩强 学习笔记—重点及易错点(1-5章)第一章程序设计与 C 语言目录第一章程序设计与 C 语言一 计算机语言的发展二 C 语言的注释方法三 程序设计任务第二章算法 程序的灵魂一 程序的组成二 结构化程序设计的方法第三章最简单的 C 程序设计 顺序程序设计一 数据类型二 运算符与表达式三 数据的输入和输出第四章选择结构与条件判断第五章循环结构程序设计第六章利用数组处理批量数据

    2026年2月16日
    1
  • k8s pod Evicted状态问题解决

    k8s pod Evicted状态问题解决kubectlgetpo-nkube-system-owide#查看pod运行状态信息可以看到有两个状态为驱赶,一般是磁盘空间不足了,清理slave磁盘空间后,状态正常

    2022年5月16日
    61

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号