我在一个 VMware Workstation 上设置了两个虚拟机。如何配置它以相互通信(双向)。
例如,如果 VM #1 正在运行 php Web 服务器并且它获得 IP 地址 192.168.1.12,则 VM #2 上的浏览器应该能够访问 http://192.168.1.12.
我想不出确切的解决方案。我看到这取决于网络类型。请指导我如何设置它。
最佳答案
vmware player 和 virtualbox 支持三种基本类型的网络。 1) 仅限主机 2) 网络地址转换 3) 桥梁
还有这些的其他变体。
由于您的问题特定于 vmware,因此答案将针对它。
对于你的问题,NAT 网络没问题。 1) 网络地址转换 使用 NAT,虚拟机将获得 192.168.211.0/24 网络。 (至少这发生在我的情况下) 在此 192.168.211.1 将是主机的 IP。 192.168.211.2 将是专用 IP。 vmware 工作站内部使用这个 IP。名称服务器、网关和 DHCP 服务器 IP 地址将为 192.168.211.2。 (三个都一样)
现在,当您设置 guest 机器时,DHCP 服务器会将 IP 地址分配给这些机器。
接下来,如果您在 192.168.211.12(比方说)上运行 PHP 服务器,那么转到这台机器并更改这台机器的接口(interface)文件,并将静态 IP 192.168.211.12 分配给这台机器。 关于如何配置接口(interface)文件的文档有数百个。 例如:-
DEVICE=eth0
BOOTPROTO=static //or set this as NONE
ONBOOT=yes
NETMASK=255.255.255.0
IPADDR=192.168.211.12
GATEWAY=192.168.211.2
注意:- 在 vmware 中,NAT 网络允许 VM 间通信以及互联网连接。 在 virtualbox 的情况下使用 NAT 不允许 Vms 间通信,它只允许互联网连接。 NAT 网络甚至可以在离线模式下工作。
2) 桥梁 在桥接模式下,虚拟机从与您的物理 LAN 相同的网络中分配 IP。如果您不是 LAN 管理员,请不要使用它。 桥接模式仅适用于在线模式。
3) HOST 仅允许 VM 间通信,但在 VM 之间创建本地网络并且不提供 Internet 连接。您将必须在 NAT 模式下配置一个接口(interface)用于互联网连接。 (我以前在使用虚拟盒时这样做。即在仅主机模式下配置一个接口(interface),在 NAT 模式下配置另一个接口(interface),因为使桥接模式在虚拟盒中工作很痛苦)。
这些是一些有用的链接
1) http://blog.pluralsight.com/vm-workstation-advanced-networking:-如果你想了解主机适配器是如何配置的,你可以阅读这篇文章。
2) http://pibytes.wordpress.com/2012/11/16/vmware-workstation-networking-basics/:-这个博客非常适合了解不同模式的工作原理。
关于php - VMware Workstation 上虚拟机之间的网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27708946/
我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此
在Cooper的书BeginningRuby中,第166页有一个我无法重现的示例。classSongincludeComparableattr_accessor:lengthdef(other)@lengthother.lengthenddefinitialize(song_name,length)@song_name=song_name@length=lengthendenda=Song.new('Rockaroundtheclock',143)b=Song.new('BohemianRhapsody',544)c=Song.new('MinuteWaltz',60)a.betwee
我正在检查一个Rails项目。在ERubyHTML模板页面上,我看到了这样几行:我不明白为什么不这样写:在这种情况下,||=和ifnil?有什么区别? 最佳答案 在这种特殊情况下没有区别,但可能是出于习惯。每当我看到nil?被使用时,它几乎总是使用不当。在Ruby中,很少有东西在逻辑上是假的,只有文字false和nil是。这意味着像if(!x.nil?)这样的代码几乎总是更好地表示为if(x)除非期望x可能是文字false。我会将其切换为||=false,因为它具有相同的结果,但这在很大程度上取决于偏好。唯一的缺点是赋值会在每次运行
我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b
网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识
在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主
需求:要创建虚拟机,就需要给他提供一个虚拟的磁盘,我们就在/opt目录下创建一个10G大小的raw格式的虚拟磁盘CentOS-7-x86_64.raw命令格式:qemu-imgcreate-f磁盘格式磁盘名称磁盘大小qemu-imgcreate-f磁盘格式-o?1.创建磁盘qemu-imgcreate-fraw/opt/CentOS-7-x86_64.raw10G执行效果#ls/opt/CentOS-7-x86_64.raw2.安装虚拟机使用virt-install命令,基于我们提供的系统镜像和虚拟磁盘来创建一个虚拟机,另外在创建虚拟机之前,提前打开vnc客户端,在创建虚拟机的时候,通过vnc
📢博客主页:https://blog.csdn.net/weixin_43197380📢欢迎点赞👍收藏⭐留言📝如有错误敬请指正!📢本文由Loewen丶原创,首发于CSDN,转载注明出处🙉📢现在的付出,都会是一种沉淀,只为让你成为更好的人✨文章预览:一.分辨率(Resolution)1、工业相机的分辨率是如何定义的?2、工业相机的分辨率是如何选择的?二.精度(Accuracy)1、像素精度(PixelAccuracy)2、定位精度和重复定位精度(RepeatPrecision)三.公差(Tolerance)四.课后作业(Post-ClassExercises)视觉行业的初学者,甚至是做了1~2年
由于匿名block和散列block看起来大致相同。我正在玩它。我做了一些严肃的观察,如下所示:{}.class#=>Hash好的,这很酷。空block被视为Hash。print{}.class#=>NilClassputs{}.class#=>NilClass为什么上面的代码和NilClass一样,下面的代码又显示了Hash?puts({}.class)#Hash#=>nilprint({}.class)#Hash=>nil谁能帮我理解上面发生了什么?我完全不同意@Lindydancer的观点你如何解释下面几行:print{}.class#NilClassprint[].class#A
在许多ruby类之间共享记录器实例的最佳(正确)方法是什么?现在我只是将记录器创建为全局$logger=Logger.new变量,但我觉得有更好的方法可以在不使用全局变量的情况下执行此操作。如果我有以下内容:moduleFooclassAclassBclassC...classZend在所有类之间共享记录器实例的最佳方式是什么?我是以某种方式在Foo模块中声明/创建记录器还是只是使用全局$logger没问题? 最佳答案 在模块中添加常量:moduleFooLogger=Logger.newclassAclassBclassC..