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

更新日期: 2022-07-11 阅读次数: 4952 字数: 310 分类: 物联网

在生产环境服务器部署了 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 聊聊, 查看更多联系方式