You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ZMQ消息无法接收求助:Windows向Ubuntu发送消息失败

排查Ubuntu端ZMQ消息接收问题的步骤

别担心,新手接手陌生代码库遇到问题太正常了!结合你说的Windows端TCPView显示连接已建立的情况,咱们一步步排查Ubuntu端的可能问题:

  • 确认ZMQ服务进程状态
    先检查Ubuntu上的ZMQ接收服务是否在正常运行。可以用以下命令查看进程:

    ps aux | grep <你的ZMQ服务进程名称>
    

    如果服务是通过systemd管理的,还可以用:

    systemctl status <服务单元名称>
    

    重点看进程是否存在,有没有异常退出的日志信息。

  • 检查端口监听状态
    确认ZMQ服务绑定的端口是否处于监听状态,并且没有只绑定本地回环地址(127.0.0.1)。执行命令:

    ss -tulpn | grep <ZMQ使用的端口号>
    

    输出结果里要确保LISTEN状态的条目,绑定地址是0.0.0.0(允许所有IP访问)或者10.10.10.15(Ubuntu机器的本地IP),如果是127.0.0.1,那外部Windows机器是无法连接的。

  • 排查防火墙规则
    Ubuntu默认启用ufw防火墙,可能拦截了目标端口的入站流量。先查看防火墙状态:

    ufw status
    

    如果防火墙处于活跃状态,需要确认ZMQ使用的端口是否被允许入站:

    ufw allow <端口号>/tcp
    

    (如果你的ZMQ用的是UDP协议,把tcp换成udp即可)

  • 验证基础网络连通性
    先抛开ZMQ,测试Windows到Ubuntu目标端口的基础连通性。在Windows的命令提示符里执行:

    telnet 10.10.10.15 <端口号>
    

    或者用更直观的nc(如果安装了):

    nc -zv 10.10.10.15 <端口号>
    

    如果连接失败,说明是网络或防火墙层面的问题,优先解决这个;如果能连通,再聚焦到ZMQ的代码逻辑。

  • 检查ZMQ代码逻辑
    重点确认几个点:

    • Ubuntu端的ZMQ套接字类型是否和Windows端匹配(比如Windows用REQ,Ubuntu得用REP;Windows用PUB,Ubuntu得用SUB,类型不匹配会导致消息无法接收)
    • Ubuntu端是用bind还是connect?接收端必须用bind绑定到本地端口,而不是connect到Windows的IP
    • 查看代码中是否有捕获ZMQ错误的逻辑,如果没有,可以临时添加错误日志,打印ZMQ调用返回的错误码和信息

内容的提问来源于stack exchange,提问作者Matt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:41:14