1883 端口被占用,导致 EMQX 无法启动

文章目录

    在生产环境服务器部署了 EMQX 之后,发现执行

    ./emqx start
    

    没有任何响应。即,长时间没有返回:

    EMQX 5.0.3 is started successfully!

    就是卡在那里,任何输出都没有。访问 18083 端口也没有页面展示。

    查看日志

    查看安装目录下的 log/emqx.log.1,可以看到具体的错误日志:

    2022-07-11T15:43:16.254775+08:00 [error] tcp:default failed to listen on 1883 - eaddrinuse (address already in use)

    查看端口被哪个进程占用

    $ sudo lsof -i:1883
    COMMAND   PID     USER   FD   TYPE    DEVICE SIZE/OFF NODE NAME
    nginx   13002 www-data   15u  IPv4 195762808      0t0  TCP *:1883 (LISTEN)
    nginx   13003 www-data   15u  IPv4 195762808      0t0  TCP *:1883 (LISTEN)
    nginx   13004 www-data   15u  IPv4 195762808      0t0  TCP *:1883 (LISTEN)
    nginx   13005 www-data   15u  IPv4 195762808      0t0  TCP *:1883 (LISTEN)
    nginx   13007 www-data   15u  IPv4 195762808      0t0  TCP *:1883 (LISTEN)
    nginx   13008 www-data   15u  IPv4 195762808      0t0  TCP *:1883 (LISTEN)
    nginx   13009 www-data   15u  IPv4 195762808      0t0  TCP *:1883 (LISTEN)
    nginx   13010 www-data   15u  IPv4 195762808      0t0  TCP *:1883 (LISTEN)
    nginx   22119     root   15u  IPv4 195762808      0t0  TCP *:1883 (LISTEN)
    

    注意需要 sudo,否则没有返回数据。

    想了半天,才记起来,之前为了定位 4G 连腾讯云 MQTT 的问题
    在 Nginx 上加了一层转发,所以就监听了 1883 端口。
    后来问题解决后,也忘记了把端口关闭。。。

    修改 Nginx 配置后,reload 就可以正常启动 EMQX 服务了。

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式