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

2024-10-03 04:37:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试从windows向同一台机器上的linuxvmware发送一个字符串。在

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

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

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

问题出在哪里?在


Tags: 端口字符串命令机器linuxwindows事情编程语言
2条回答

你的问题是多重的


1st

安装程序Ubuntu虚拟机的IP网络和此来宾操作系统的静态IP地址

验证:

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

2nd

如果您的虚拟机来宾主机连接到与Windows系统不同的IP网络,请确保这两个主机之间存在连接和路由(VmWare中的VMnet configurator将非常有助于解决此问题)。在

验证:

^{pr2}$

3rd

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

验证:

list all allowed / add if-needed TCP-port# in Windows Firewall setup


4th

确保您的python将所有套接字通信不是发送到Windows本地环回接口<;127.0.0.1>;,而是发送给Ubuntu VM来宾操作系统的可见IP地址(按照步骤-1,按照步骤-2使用未使用的、允许的TCP端口进行验证(根据步骤-3进行验证/设置)

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

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

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

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

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

相关问题 更多 >