EMQX 默认安装后常用端口及其功能
1. 默认端口列表
EMQX 作为 MQTT 消息服务器,主要开放以下端口(以默认配置为例):
端口 | 协议/用途 | 说明 |
---|---|---|
1883 | MQTT(非加密) | 客户端通过 MQTT 协议连接的核心端口(默认监听)。 |
8883 | MQTT over SSL/TLS | 加密的 MQTT 连接端口,需配置 SSL 证书。 |
8083 | MQTT over WebSocket(非加密) | 客户端通过 WebSocket 协议连接(常用于浏览器端)。 |
8084 | MQTT over WebSocket Secure | 加密的 WebSocket 连接端口(需 SSL 证书)。 |
18083 | HTTP API & 管理界面 | 用于访问 EMQX Dashboard(Web 管理界面)和调用 REST API。 |
4369 | EPMD(Erlang Port Mapper) | Erlang 分布式节点通信的默认端口,用于集群节点发现。 |
6370 | MQTT-SN(非加密) | MQTT-SN(Sensor Network)协议端口,适用于低功耗设备。 |
6369 | MQTT-SN over TLS | 加密的 MQTT-SN 连接端口。 |
2. 核心端口详解
(1) 1883(MQTT 默认端口)
- 用途:客户端(如 IoT 设备、应用程序)通过 MQTT 协议与 EMQX 建立连接。
- 示例:设备通过
mqtt://emqx-server:1883
连接。 - 安全性:明文传输,建议内网使用或搭配 VPN;公网环境应优先使用 8883(SSL)。
(2) 18083(管理界面端口)
- 用途:
- Dashboard:通过浏览器访问
http://emqx-server:18083
管理 EMQX(用户认证、监控、插件配置等)。 - REST API:通过 HTTP 接口管理 EMQX(如
GET /api/v4/clients
获取客户端列表)。
- Dashboard:通过浏览器访问
- 权限:默认管理员账号
admin/public
,需及时修改密码。
(3) 8883(MQTT SSL 端口)
- 用途:客户端通过加密的 MQTT 协议连接。
- 配置:需在
emqx.conf
中指定 SSL 证书路径:listeners.ssl.default {bind = "0.0.0.0:8883"ssl_options {keyfile = "/etc/emqx/certs/key.pem"certfile = "/etc/emqx/certs/cert.pem"} }
(4) 8083/8084(WebSocket 端口)
- 用途:支持浏览器或 Web 应用通过 WebSocket 协议连接 EMQX。
- 示例:前端代码使用
ws://emqx-server:8083/mqtt
或wss://emqx-server:8084/mqtt
。
3. 其他端口说明
- 4369(EPMD 端口):EMQX 基于 Erlang/OTP 构建,此端口用于分布式集群节点间的通信(如节点自动发现)。
- MQTT-SN 端口:适用于传感器网络(低功耗、低带宽场景),需客户端明确支持 MQTT-SN 协议。
4. 安全建议
- 最小化开放端口:公网部署时,仅开放必要的端口(如 8883、18083),关闭未使用的端口(如 6370)。
- 强制 SSL/TLS:公网环境下,禁用 1883、8083 等非加密端口,强制使用 SSL(8883、8084)。
- 防火墙规则:限制 IP 访问(如仅允许管理终端访问 18083)。
- 更新默认凭证:修改 18083 端口的默认管理员账号密码。
5. 端口修改方法
若需修改默认端口,可在 EMQX 配置文件 emqx.conf
中调整,例如:
# 修改 MQTT 默认端口为 11883
listeners.tcp.default {bind = "0.0.0.0:11883"
}# 修改 Dashboard 端口为 28083
dashboard {listeners.http {bind = 28083}
}
修改后需重启 EMQX 生效:emqx restart
。
总结
- 1883/8883:核心 MQTT 通信端口(非加密/加密)。
- 18083:管理界面和 API 入口,需重点保护。
- 8083/8084:WebSocket 连接端口,适用于浏览器客户端。
- 根据场景选择端口,并遵循最小化暴露原则。