使用python通过套接字将字符串从windows发送到vmware ubuntu

使用python通过套接字将字符串从windows发送到vmware ubuntu,python,linux,sockets,python-2.7,vmware,Python,Linux,Sockets,Python 2.7,Vmware,我试图在同一台机器上从windows向linux vmware发送字符串 我做了以下工作: -在linux机器上的127.0.0.1端口50000上打开一个套接字,并在while循环中读取该套接字。我的编程语言是python 2.7 -从windows机器(使用cygwin)在127.0.0.1端口50000上使用nc(netcat)发送命令 但是,尽管通过windows/cygwin发送的命令成功,但我在linux机器上没有收到任何命令 我正在VMWARE机器上使用NAT(共享主机IP地址)

我试图在同一台机器上从windows向linux vmware发送字符串

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

但是,尽管通过windows/cygwin发送的命令成功,但我在linux机器上没有收到任何命令

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


问题出在哪里?

当您使用NAT时,主机无法直接与客户机联系。您所能做的就是使用Sign port forwarding告诉vmware,所有定向到主机上指定端口的流量都将传递到客户端。它旨在在客户机上安装一台服务器,该服务器可以从主机外部访问

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

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

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

您还可以在客户端上使用桥接接口。在此模式下,客户端计算机在与主机外部网络相同的网络上有一个地址:它结合了前面两种模式

您的问题是多方面的


1st 设置Ubuntu虚拟机的IP网络&此来宾操作系统的静态IP地址

验证:

$> ifconfig                         // list all setup Ubuntu interfaces/addresses
C:\ ping <aUbuntuVmIpADDRESS>      // prove an online visibility Win->UbuntuVM

2nd 如果您的VM来宾被托管为连接到不同于Windows系统的IP网络,请确保这两台主机之间存在连接和路由(VmWare中的VMnet configurator将有助于解决此问题)

验证:

$> ifconfig                         // list all setup Ubuntu interfaces/addresses
C:\ ping <aUbuntuVmIpADDRESS>      // prove an online visibility Win->UbuntuVM
C:\ping//证明在线可视性胜利->UbuntuVM

3rd 确保您的Windows O/S允许使用您选择的TCP端口#

验证:

$> ifconfig                         // list all setup Ubuntu interfaces/addresses
C:\ ping <aUbuntuVmIpADDRESS>      // prove an online visibility Win->UbuntuVM
在Windows防火墙设置中列出所有允许/添加(如果需要)的TCP端口


4th
确保您的python将所有套接字通信发送到Windows本地环回接口,而是发送到Ubuntu虚拟机的可见IP地址(按照步骤-1进行设置,按照步骤-2进行验证),使用未使用的,允许的TCP端口#(根据步骤验证/设置-3

您是否先在同一台PC上尝试过它?除了端口转发,绑定到所有接口,而不仅仅是127.0.0.1,因为它只接受来自您虚拟机的连接。