网络设置实现虚拟机系统局域网通信

简介:
最近移植工作接近尾声了,不过出了一个算是奇怪的问题。我的 Linux 系统是装在虚拟机上的,当我的程序做客户端时,主动连接 Windows 下面的服务端是没有问题的。由于我的程序时 TCP UDP 混合使用的。有时候,我的程序会当做服务端,此时, Windows 下面的 Socket 无法连接到我的程序。后来自己写了一些简单的 demo 进行测试发现,虚拟机可以主动连接局域网中的实体机,而反过来就不可以了。后来上网收集资料才发现,原来是虚拟机网络设置引起的。下面将相关的内容做个总结。

首先说说虚拟机的几种网络连接方式。我用的是 VirtualBox VmWare 其实也一样。它们提供了三种工作模式, bridged( 桥接模式 ) NAT( 网络地址转换模 ) host-only( 主机模式 )

 
1.       bridged( 桥接模式 )

 
在这种模式下, VmWare 虚拟出来的操作系统就像是局域网中的一台独立的主机,它可以访问网内任何一台机器。在桥接模式下,你需要手工为虚拟系统配置 IP 地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚拟系统才能和宿主机器进行通信。同时,由于这个虚拟系统是局域网中的一个独立的主机系统,那么就可以手工配置它的 TCP/IP 配置信息,以实现通过局域网的网关或路由器访问互联网。

此时,你的虚拟机和宿主机可以相互通信,就想局域网中的两台实体机一样。

     2.host-only(主机模式)

    在某些特殊的网络调试环境中,要求将真实环境和虚拟环境隔离开,这时你就可采用host-only模式。在host-only模式中,所有的虚拟系统是可以相互通信的,但虚拟系统和真实的网络是被隔离开的。在host-only模式下,虚拟系统和宿主机器系统是可以相互通信的,相当于这两台机器通过双绞线互连。但是并不能和局域网中的其他实体机进行通信(自己理解,为测试验证,因为该模式下和局域网的其他网络是隔离开来的)。
     3.NAT(网络地址转换模式)

使用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用NAT模式可以实现在虚拟系统里访问互联网。NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域网中的其他真实主机进行通讯。采用NAT模式最大的优势是虚拟系统接入互联网非常简单,你不需要进行任何其他的配置,只需要宿主机器能访问互联网即可。在该模式下,虚拟机可以访问宿主机和互联网,但是宿主机无法连通虚拟机。
一般安装虚拟系统时,都按默认的设置为NAT模式,因为它比较简单快速。但是我需要将虚拟机设置为局域网中一个独立的机子时,就需要设置为bridge模式。下面说说设置bridge模式的方法。由于网上很多方法是针对旧版本的VirtualBoxl,这里我用的3.0.10版的。
首先,关闭虚拟系统,在虚拟机中设置网络:
      虚拟机->设置->网络->网络连接;
      选择Bridged Adapter;
      点击有个按钮,点开,按默认选择;
      点击OK,关闭虚拟机设置;
其次,创建一个网桥:
      进入网络连接;
      选中“本地连接”和“VirtualBox Host-Only Network”;
      右键选择创建网桥;
      在新创建的网桥上点击右键->属性;
      设置网桥的网络IP地址等(和一般情况的设置一样);
      关闭网络连接;
最后,打开虚拟机系统进行网络设置,其设置和网桥一样,除 IP地址的最后一位。
 
通过上述步骤,你的虚拟机系统就像一台独立的机子一样,有自己的IP了。不仅可以上互联网,而且可以和宿主机以及局域网中的任何一台实体机进行通信了。


本文转自jazka 51CTO博客,原文链接:http://blog.51cto.com/jazka/271958,如需转载请自行联系原作者
相关文章
|
2月前
|
Ubuntu 网络协议 网络安全
解决Ubuntu系统的网络连接问题
以上步骤通常可以帮助解决大多数Ubuntu系统的网络连接问题。如果问题仍然存在,可能需要更深入的诊断,或考虑联系网络管理员或专业技术人员。
464 18
|
2月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的青少年网络使用情况分析及预测系统
本研究基于Python大数据技术,构建青少年网络行为分析系统,旨在破解现有防沉迷模式下用户画像模糊、预警滞后等难题。通过整合多平台亿级数据,运用机器学习实现精准行为预测与实时干预,推动数字治理向“数据驱动”转型,为家庭、学校及政府提供科学决策支持,助力青少年健康上网。
|
2月前
|
监控 安全 网络协议
Cisco Identity Services Engine (ISE) 3.5 发布 - 基于身份的网络访问控制和策略实施系统
Cisco Identity Services Engine (ISE) 3.5 发布 - 基于身份的网络访问控制和策略实施系统
324 1
Cisco Identity Services Engine (ISE) 3.5 发布 - 基于身份的网络访问控制和策略实施系统
|
3月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
205 2
|
4月前
|
安全 KVM 虚拟化
Cisco Identity Services Engine (ISE) 3.4 - 基于身份的网络访问控制和策略实施系统
Cisco Identity Services Engine (ISE) 3.4 - 基于身份的网络访问控制和策略实施系统
214 2
Cisco Identity Services Engine (ISE) 3.4 - 基于身份的网络访问控制和策略实施系统
|
2月前
|
机器学习/深度学习 分布式计算 Java
Java与图神经网络:构建企业级知识图谱与智能推理系统
图神经网络(GNN)作为处理非欧几里得数据的前沿技术,正成为企业知识管理和智能推理的核心引擎。本文深入探讨如何在Java生态中构建基于GNN的知识图谱系统,涵盖从图数据建模、GNN模型集成、分布式图计算到实时推理的全流程。通过具体的代码实现和架构设计,展示如何将先进的图神经网络技术融入传统Java企业应用,为构建下一代智能决策系统提供完整解决方案。
314 0
|
12月前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
264 17
|
12月前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
224 10
|
12月前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。