Ubuntu安装 mosquitto 替代 emqx 作为mqtt服务

#1、 安装
sudo apt install mosquitto mosquitto-clients

#2、 查看状态
sudo systemctl status mosquitto

#3、 查看已安装的配置文件信息
cat /etc/mosquitto/mosquitto.conf
# 内容如下
# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example

pid_file /var/run/mosquitto.pid

persistence true
persistence_location /var/lib/mosquitto/

log_dest file /var/log/mosquitto/mosquitto.log

include_dir /etc/mosquitto/conf.d

#4、 新增自己的配置只需要在 /etc/mosquitto/conf.d 目录下添加配置文件即可
vim /etc/mosquitto/conf.d/my_mqtt.conf
# 填写以下内容
# 监听 TCP 端口
listener 1883
protocol mqtt
# 监听 WebSocket 端口
listener 8083
protocol websockets
# 设置最大连接数
max_connections 1000
# 允许匿名连接(测试时可开启,生产环境建议关闭)
allow_anonymous false
# 密码文件位置
password_file /etc/mosquitto/passwd
# ACL 文件位置
acl_file /etc/mosquitto/acl

# 配置acl控制文件
vim /etc/mosquitto/acl
# 输入以下内容
# 用户 your_username 对所有主题有读写权限
user your_username
topic readwrite #

# 用户 another_user 只能订阅特定主题
#user another_user
#topic read sensor/#
#topic write control/#


#5、 首次创建密码文件(使用 -c 参数)  your_username 改为自己需要创建的用户名称,然后输入回车输入密码
sudo mosquitto_passwd -c /etc/mosquitto/passwd your_username
# 后续添加用户(不使用 -c 参数)
sudo mosquitto_passwd /etc/mosquitto/passwd another_user

#6、 调整系统并发连接数
vim /etc/security/limits.conf
# 增加以下内容  根据 设定的 max_connections 设置调整
* soft nofile 1000
* hard nofile 1000
mosquitto soft nofile 1000
mosquitto hard nofile 1000

#7、设置文件权限
sudo chown mosquitto:mosquitto /etc/mosquitto/passwd /etc/mosquitto/acl
sudo chmod 600 /etc/mosquitto/passwd /etc/mosquitto/acl

#8、启动 并设置为开机自启动
systemctl start mosquitto
systemctl enable mosquitto
# 证书配置  ssl.conf
vim /etc/mosquitto/conf.d/ssl.conf
# 输入以下内容
listener 8883  # MQTTS 端口
protocol mqtt
certfile /etc/letsencrypt/live/yourdomain.com/cert.pem
keyfile /etc/letsencrypt/live/yourdomain.com/privkey.pem
cafile /etc/letsencrypt/live/yourdomain.com/chain.pem

# 强制客户端使用 TLS
require_certificate true
# Nginx代理  端口记得配置正确了  切记TCP代理不允许代理server已经代理的端口,比如80,443,http请求会经过tcp直接拦截   端口都是唯一的即可
# tcp
stream {
        upstream your_mqtt_server {
                server 192.168.0.100:1883;
        }
        server {
                listen 9999;
                proxy_pass your_mqtt_server;
        }
}
# websocket
server {
    listen       9091;
    server_name  localhost 你的IP;

    location /mqtt {
        # 启用 WebSocket 代理
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $host;

        # 设置代理目标地址
        proxy_pass http://192.168.0.100:8083/mqtt;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

<think>嗯,用户问的是MQTT服务器程序是不是叫Mosquitto。首先,我需要确认Mosquitto确实是MQTT的一个实现。MQTT是一种轻量级的消息传输协议,常用于物联网。Mosquitto是一个开源的消息代理,实现了MQTT协议,所以用户的问题应该是对的。 不过,用户可能想了解更详细的信息,比如Mosquitto的功能、特点,或者与其他实现的区别。也有可能他们混淆了其他类似的服务器程序,比如EMQ X或者HiveMQ。所以需要明确回答Mosquitto的正确性,同时补充相关信息。 接下来,我需要检查是否有其他MQTT服务器也叫类似的名字,避免误导用户。确认后,可以介绍Mosquitto的基本信息,比如由Eclipse基金会维护,支持多个版本协议,跨平台等。此外,提到命令行工具mosquitto_pub和mosquitto_sub,以及它的配置灵活性,这样用户能全面了解。 还要注意用户可能的实际需求,比如他们可能正在选择MQTT服务器,需要知道Mosquitto是否适合。这时候需要客观说明优缺点,比如轻量级适合资源有限的环境,但集群功能较弱。这样用户可以根据情况做决定。 最后,确保回答结构清晰,分点说明,符合用户可见层的要求。使用中文,避免专业术语过多,保持口语化,但信息准确。可能还需要提示用户如果需要进一步帮助,比如安装或配置,可以继续提问。</think>是的,MQTT服务器程序确实有一个广泛使用的开源实现叫**Mosquitto**。以下是分步说明和补充信息: --- ### 1. **Mosquitto的基本定义** Mosquitto是由**Eclipse基金会**维护的开源MQTT消息代理(broker),实现了MQTT协议(当前支持MQTT v5.0、v3.1.1和v3.1)。它的命名来源于MQTT协议发明者与"mosquito"(蚊子)的谐音。 --- ### 2. **核心功能** - **轻量级**: 适合物联网(IoT)设备和低带宽环境。 - **跨平台**: 支持Linux、Windows、macOS等操作系统。 - **协议支持**: 完整实现MQTT标准,支持TLS加密、WebSocket通信。 - **扩展性**: 可通过插件扩展认证、日志等功能。 --- ### 3. **配套工具** Mosquitto项目还提供两个命令行工具: - **`mosquitto_pub`**: 用于发布消息到MQTT主题。 - **`mosquitto_sub`**: 用于订阅主题并接收消息。 例如: ```bash mosquitto_sub -t "sensor/temperature" # 订阅温度传感器主题 ``` --- ### 4. **与其他MQTT服务器的区别** - **EMQ X**: 更适合企业级高并发场景,支持集群化部署。 - **HiveMQ**: 提供商业版高级功能(如数据桥接)。 - **Mosquitto**: 更轻量,适合开发测试或小型部署。 --- ### 5. **部署与配置** - **安装**:通过包管理器可直接安装(如Ubuntu的`apt install mosquitto`)。 - **配置文件**:默认位于`/etc/mosquitto/mosquitto.conf`,可自定义端口、权限等。 - **安全性**:支持用户名/密码认证、SSL/TLS加密。 --- ### 6. **适用场景** - 物联网设备间的消息传递 - 移动应用与后端服务的实时通信 - 低功耗嵌入式系统的数据上报 --- ### 总结 MosquittoMQTT协议的一个可靠开源实现,适合轻量级应用场景。如果需更高性能或企业级功能,可考虑EMQ X等替代方案。需要帮助安装或配置时,可进一步提问!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值