【问题标题】:Send a string from windows to vmware-ubuntu over socket using python使用 python 通过套接字将字符串从 Windows 发送到 vmware-ubuntu
【发布时间】:2014-12-01 16:34:38
【问题描述】:

我正在尝试将字符串从 windows 发送到同一台机器上的 linux vmware。

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

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

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

问题可能出在哪里?

【问题讨论】:

  • 你有没有先在同一台电脑上试过?
  • 除了端口转发之外,还绑定到所有接口,而不仅仅是 127.0.0.1,因为它只接受来自您的 VM 的连接。

标签: python linux sockets python-2.7 vmware


【解决方案1】:

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

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

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

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

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

【讨论】:

    【解决方案2】:

    你的问题是多方面的


    1st

    设置 Ubuntu-VM 的 IP 网络和此来宾操作系统的静态 IP 地址

    验证:

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

    2nd

    如果您的 VM 来宾被托管为连接到不同的 IP 网络,而不是您的 Windows 系统,确保这两个主机之间存在连接和路由(VmWare 中的 VMnet 配置器会有所帮助很多东西来解决这个问题)。

    验证:

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

    3rd

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

    验证:

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


    4

    确保您的 python 将所有套接字流量发送到 Windows 本地环回接口 ,但向可见Ubuntu-VM 的 IP 地址 来宾操作系统,(按步骤设置-1,按步骤验证- 2 ) 使用一个未使用的、允许的 TCP 端口#(按步骤验证/设置-3 kbd>)

    【讨论】:

      猜你喜欢
      • 2014-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多