使用python从Windows发送string到vmware-ubuntu通过套接字

我试图从Windows发送一个string到同一台机器上的Linux vmware

我做了以下事情: – 在linux机器上的127.0.0.1端口50000上打开一个套接字,并在while循环中读取套接字。 我的编程语言是python 2.7 – 使用nc(netcat)从Windows机器上的127.0.0.1 port 50000(使用cygwin)发送命令。

但是,我没有收到任何命令在Linux机器上,虽然通过Windows / cygwin发送的命令是成功的。

我在VMWARE机器上使用NAT(共享主机IP地址)。

问题在哪里?

当您使用NAT时,主机无法直接联系客户端机器。 你所能做的只是通过端口转发来告诉vmware,所有到达主机指定端口的流量都将被传送到客户端。 它旨在在客户机上安装可从主机外部访问的服务器。

如果要测试主机和客户机之间的网络操作,则应在客户机上配置仅主机适配器。 它是主机和客户机之间的虚拟网络(多个客户机可以共享同一主机专用网络,当然也可以有不同的地址)

我通常在我的客户机上配置2个网络适配器:

  • 一个NAT让客户机访问开放的世界
  • 在主机上 – 仅在主机和客户端之间建立专用网络,并允许它们与任何端口上的任何协议进行通信

您也可以在客户端上使用桥接接口。 在这种模式下,客户端机器的地址与主机的外部网络在同一网络上:它结合了以前的两种模式

你的问题是多方面的


1 st

设置 Ubuntu-VM的IP网络和这个客户操作系统的静态IP地址

VALIDATE:

$> ifconfig // list all setup Ubuntu interfaces/addresses 

第二

如果您的VM guest虚拟机连接到不同的IP网络,而不是Windows系统,请确保这两台主机之间存在连接和路由 (VmWare中的VMnet配置程序将有助于解决此问题)。

VALIDATE:

 C:\ ping <aUbuntuVmIpADDRESS> // prove an online visibility Win->UbuntuVM 

第三

确保你的Windows操作系统允许使用你选择的TCP端口#

VALIDATE:

在Windows防火墙设置中列出所有允许/添加的如果需要的TCP端口号


4

确保你的python发送的所有套接字流量不是到Windows本地回送接口<127.0.0.1>, 而是到 Ubuntu-VM guest 虚拟机 O / S的可见IP地址 (按照步骤1设置,按照每个步骤2使用未使用的,允许的TCP端口#(根据步骤3验证/设置)