一、前言
最近调试一批设备使用的MQTT协议通讯,这里就需要安装MQTT服务器,推荐使用EMQX,直接进官网安装即可,详细介绍看这篇文章:
安装完成后运行不起来,执行指令.\emqx.cmd console有这么个错误:[error] tcp:default failed to listen on 1883 - eacces Failed to start listener tcp:default on 0.0.0.0:1883,查询后发现是服务器其他程序占用了端口1883导致EMQX运行不起来,所以这里需要更改EMQX的端口绑定。
二、EMQX的默认端口以及策略
1、1883:MQTT TCP 监听端口,用于设备连接
2、8883:MQTT SSL 监听端口,提供加密设备的连接
3、8083:MQTT WebSocket 监听端口,允许通过Web浏览器连接
4、8084:MQTT WebSocket 监听端口,提供加密的Web浏览器连接
5、18083:EMQX Dashboard 管理控制台端口,用于监控贺管理MQTT服务器
三、修改端口的步骤
1、找到文件emqx.conf并打开,正常情况路径为:/ect/emqx/emqx.conf或/ect/emqx.conf
2、1883端口修改,找到listeners.tcp.default修改到空白端口,我这里是2883,如果没有listeners.tcp.default则添加新的即可,修改或添加内容如下:
listeners.tcp.default {
# bind = "0.0.0.0:1883"
bind = "0.0.0.0:2883"
max_connections = 1024000
}
3、8883端口修改,同上:
listeners.ssl.default {
#bind = "0.0.0.0:8883"
bind = "0.0.0.0:9883"
max_connections = 102400
ssl_options {
keyfile = "etc/certs/key.pem"
certfile = "etc/certs/cert.pem"
}
}
4、8083端口修改,同上:
listeners.ws.default {
#bind = "0.0.0.0:8083"
bind = "0.0.0.0:9083"
max_connections = 102400
}
5、8084端口修改,同上:
listeners.wss.default {
#bind = "0.0.0.0:8084"
bind = "0.0.0.0:9084"
max_connections = 102400
ssl_options {
keyfile = "etc/certs/key.pem"
certfile = "etc/certs/cert.pem"
}
}
6、18083端口配置,同上:
dashboard {
listeners.http {
#bind = 18083
bind = 28083
}
default_username = "admin"
default_password = "public"
}
7、 修改完成后重新运行服务器。
四、补充
如果你照着这个方式修改,还没有成功,那应该就是安装的EMQX版本过低,建议更新。不更新的话就试试这样修改吧,不行的话也没办法了:
listener.tcp.external = 1883
listener.ssl.external = 8883
listener.ssl.external.keyfile = etc/certs/key.pem
listener.ssl.external.certfile = etc/certs/cert.pem
listener.ws.external = 8083
listener.wss.external = 8084
listener.wss.external.keyfile = etc/certs/key.pem
listener.wss.external.certfile = etc/certs/cert.pem
dashboard.listener.http = 18083