环境:
在A计算机上运行着Debian11.3 Linux操作系统;在B计算机上运行着Windows10操作系统,并且安装了VMware软件,然后在VMware上创建了虚拟机C并安装了CentOS 6操作系统
需求:
现在A计算机上的程序需要同虚拟机C上的软件通讯,实现数据的交换。
已知A计算机的IP地址是10.10.4.1;B计算机的IP地址是10.10.4.4,当前A和B网络是通的。
需要如何配置虚拟机和VMware实现A计算机和C的直接通讯?
配置思路:
1、由于虚拟机C跑在B计算机上,它不是一个独立的计算机,最好不要再占用独立的4网段IP地址。它只要能和宿主机器B通讯就行,和A的通讯都通过B转发。
2、对于A计算机来说,它也只管发报文到实际的机器B上,然后通过B转发给上面的虚拟机C即可。故A不用感知到C计算机的存在。
3、通过上面的分析,我们使用宿主机和虚拟机网络的NAT模式比较合适。即:
A到C的数据包:A发到B计算机的12345端口,B收到后查询NAT转换表,转发报文到C的
12345端口即可
C到A的数据包:C发到B计算机,B转发数据包到A计算机即可
配置方法:
1、虚拟机配置成NAT转换模式。打开虚拟机->设置,选中网络适配器,然后选择自定义里的VMnet8(NAT模式),确认保存。 (VMnet8虚拟网卡默认是给NAT模式使用的)
此时正常的话,在虚拟机的CentOS系统里可以ping通宿主B计算机的IP:10.10.4.4,也可以ping通A计算机的IP:10.10.4.1
2、配置虚拟机的NAT转换。打开VMware的编辑->虚拟网络编辑器
[外链图片转
弹框如下,设置子网IP,默认可以设置成192.168.1.0网段,这是给虚拟机上的操作系统分配的IP地址网段。此时宿主机器内部也会分配一个此网段的IP地址,用于同虚拟机网络通讯。
接上图,点击NAT设置,弹框如下:
点击添加按钮,弹框后输入:
主机端口:12345 (宿主机器的端口号,即用于接收对端数据的端口)
类型:UDP或TCP (按实际的通讯协议选择)
虚拟机IP地址:192.168.1.128 (以当前虚拟机实际分配的IP地址填写)
虚拟机端口:12345 (虚拟机上的接收程序监听的实际端口,建议同主机端口一致,以免忘记)
然后确认保存即可。