python - 无法在windows7上查看创建的开放端口,但在mac上可以

标签 python windows macos sockets

我已经坚持了几天了。当使用 python 在 OSX 中打开监听套接字时,我能够通过 canyouseeme.org 验证我正在监听的端口是否打开。

Python代码

import socket

host = ''
port = 8072
backlog = 5
size = 1024

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
s.bind((host,port)) 
s.listen(backlog) 
client, address = s.accept()
while 1: 
    data = client.recv(size)
    print(data)

当我尝试在我的 Windows VM(运行 vmware 6.02)上创建一个类似的监听套接字时,连接超时。我在尝试连接时使用的步骤。我有屏幕截图,但没有足够的代表发布,哈。

1) 验证实际收听:

  • 使用 CurrPorts,我看到进程名称:pythonw.exe,协议(protocol):TCP,本地端口:8072,本地地址:0.0.0.0,远程地址:0.0.0.0,状态:监听....

2) 检查ip地址

  • cmd terminal ipconfig -all , IPv4 Address : 192.168.2.10(Prefered)

3) 验证端口转发到正确的 ip 地址

  • 描述:UMSM,入站端口:8000-9000,类型:TCP,私有(private)IP地址:192.168.2.10,私有(private)端口:8000-9000

  • 554 也顺便转发了

4) 端口不可见

  • canyouseeme 连接不上原因:连接超时

我知道端口转发是有效的,因为我能够访问 Windows 端 554 上的另一个开放端口,即 grc.com 上的“所有服务端口”在隐身模式下验证所有其他端口 < 1000 是否打开。

我的想法是我在创建套接字时做错了什么。在 python 中打开监听套接字时,与 osx 相比,我需要在 Windows 上做哪些不同的事情?

谢谢,

吉姆

---- 编辑----

现在我可以添加图片了

2.) check windows IP for port forwarding

3.) port forwarding to windows VM

1.) verify actually listening

4.) could not connect

所以我知道它不是防火墙,因为我可以连接到不同的 Windows 端口 I can see atleast one port on windows as shown in the grc analysis

另外,我可以通过本地网络在 Windows 上的 Python 服务器和 OSX 上的客户端之间进行通信

最佳答案

创建监听器的方式应该没有区别。 您是否检查过内置 Windows 防火墙是否可以阻止连接(例如它是否关闭?)。 检查监听器是否正常工作的最佳方法是编写另一个在同一台机器上连接到它的小应用程序(或使用 telnet 或 netcat),这样防火墙就不会造成伤害。

关于python - 无法在windows7上查看创建的开放端口,但在mac上可以,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21368251/

相关文章:

python - 运行游戏时显示随机图像

python - 如何将 django admin "view site"链接更改为自定义绝对 url

php - 用于 ping Web 服务器的服务

c++ - Windows 版本识别 [C/C++]

java - 如何检测 Windows 中是否正在运行全屏应用程序?

python - FFTshift 导致振荡 - 为什么? ( NumPy 的)

windows - 使用 Windows 终端的 Cmder 颜色错误

cocoa - 您可以从 Mac 应用程序中安装 Safari 扩展吗?

macos - 在 Mac 上的 docker ubuntu 镜像上运行 apt-get update 会导致 "File has unexpected size"

mysql - 检查 Mac 10.8.5 上的 mySQL 版本