代码之家  ›  专栏  ›  技术社区  ›  Phlip-Phlop

连接到Raspberry Pi时没有到主机的路由/WinError 10060

  •  0
  • Phlip-Phlop  · 技术社区  · 2 年前

    当尝试将客户端连接到Raspberry Pi服务器时,Linux返回“无主机路由”错误,Windows 10返回“WinError 10060”。

    服务器.py -在Raspberry Pi 2上运行(rasbian,Bullseye,内核6.1.21-v7+)

    import socket
    
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.bind(("192.168.0.17", 1234))
    s.listen(5)
    
    while True:
        clientsocket, address = s.accept()
        print(f"Connection from {address} has been established!")
        clientsocket.send(bytes("Welcome to the server!", "utf-8"))
    

    客户端.py -在Linux和Windows 10上运行

    import socket
    
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect(("192.168.0.17", 1234))
    
    msg = s.recv(64)
    print(msg.decode("utf-8"))
    

    我已经尝试过:

    • ifconfig确认Ras Pi ipv4为预期的192.168.0.17。
    • 已检查端口1234是否在所有设备上都可用。它是。
    • 从Linux和Windows 10设备Ping ras pi返回0%的数据包丢失。
    • 所有设备上都禁用了防火墙,只是为了确保安全。
    • Ras-Pi客户端.py和Linux客户端.py连接到Windows服务器.py。
    • Linux客户端.py和Windows客户端.py都未连接到Ras Pi服务器.py。
    • 通过wifi和以太网将Ras Pi连接到网络。
    • “nmap-sn 192.168.0.0/24”来检查192.168.0.17是否在那里,但它没有显示,即使ping有效。
    • 安装了出色的Ras Pi更新,然后重新启动。
    • 在Ras Pi上启用SSH,然后尝试从Linux连接,但由于相同的错误而失败(没有到主机的路由)。
    • 关闭并再次打开路由器。

    这些都没有导致网络上的其他设备找不到Ras-Pi的解决方案。

    我还尝试了其他一些事情,比如添加防火墙规则,但后来在一起禁用防火墙之前重置为默认值。

    我唯一能想到的尝试就是在Ras Pi上完全重新加载操作系统,但如果我能避免的话,我宁愿不这样做。

    最令人困惑的是,我可以ping Ras Pi,但如果ip不存在,任何其他形式的连接都会返回一个错误。但确实如此。我希望。

    我担心有一个简单的解决方案我忽略了。我忘了什么考试了?

    0 回复  |  直到 2 年前
        1
  •  0
  •   Michael Butscher    2 年前

    可能是服务器使用另一个网络适配器连接到客户端。

    更换

    s.bind(("192.168.0.17", 1234))
    

    通过

    s.bind(("0.0.0.0", 1234))
    

    在服务器代码中,使服务器侦听端口1234上的所有适配器。