MQTT服务器(Broker)-mosquitto配置文件详解

更新时间:2023-06-30 09:19:49 阅读: 评论:0

MQTT服务器(Broker)-mosquitto配置⽂件详解
常规配置
#使⽤每个侦听器的安全设置。
#
#建议先设置此选项。
#
#如果此选项设置为true,则所有⾝份验证和访问控制
#选项是根据每个侦听器控制的。以下选项是
#受影响的有:
#
# password_file acl_file psk_file auth_plugin auth_opt_* allow_anonymous
# auto_id_prefix allow_zero_length_clientid
#
# 请注意,如果设置为true,则断开连接的持久客户端(即,⼲净会话设置为fal)将使⽤为其最近连接的侦听器定义的ACL设置.
# 默认⾏为是将其设置为fal,这将保持以前版本的mosquitto的设置⾏为。
#per_listener_ttings fal
# 如果客户端订阅了多个重叠的订阅,例如foo /#和foo / + / baz,然后MQTT期望,
# 当代理收到与两个订阅都匹配的主题消息,例如foo / bar / baz时,客户端应该只接收⼀次消息。
# Mosquitto跟踪邮件已发送到哪些客户,以满⾜此要求。 allow_duplicate_messages选项允许禁⽤此⾏为,
# 如果您有⼤量的客户端订阅了同⼀主题集并且⾮常关注,则此选项可能很有⽤。
# 最⼩化内存使⽤。如果您事先知道客户端永远不会有重叠的订阅,则可以将其安全地设置为true,
# 否则即使QoS = 2,客户端也必须能够正确处理重复的消息。
#allow_duplicate_messages fal
# 此选项控制是否允许客户端使⽤长度为零的客户端ID连接。此选项仅影响使⽤MQTT v3.1.1和更⾼版本的客户端。
# 如果设置为fal,将断开连接长度为零的客户端ID的客户端。
# 如果设置为true,则代理将为客户端分配客户端ID。
# 这意味着它仅对将⼲净会话设置为true的客户端有⽤。
#allow_zero_length_clientid true
# 如果allow_zero_length_clientid为true,则此选项允许您为⾃动⽣成的客户端ID设置前缀,以帮助查看⽇志。
# 默认 'auto-'
#auto_id_prefix auto-
# 当客户端订阅已保留邮件的主题时,此选项会影响⽅案。思维导图培训
jean# 向主题发布保留消息的客户端在发布时可能具有访问权限,但是该访问权限随后已被删除。
# 如果将check_retain_source设置为true(默认值),则将在重新发布保留消息的源之前检查其访问权限。
# 设置为fal时,将不进⾏检查,并且保留的消息将始终被发布。这会影响所有听众。
#check_retain_source true
# 在超过此限制之前,将允许每个客户端 inflight QoS 1和2消息。默认为0。(⽆最⼤值)
# 另请参见max_inflight_messages
#max_inflight_bytes 0
# 每个客户端当前正在运⾏的QoS 1和2消息的最⼤数量。
# 这包括握⼿过程中和正在重试的消息。默认值为20。设置为0(⽆最⼤值)。设置为1将保证按顺序传送QoS 1和2消息。
#max_inflight_messages 20
# 对于MQTT v5客户端,可以让服务器发送“服务器keepalive”值,该值将覆盖客户端设置的keepalive值。
# 旨在⽤作⼀种机制,表⽰服务器将⽐预期的更早断开客户端的连接,并且客户端应使⽤新的keepalive值。
# max_keepalive选项允许您指定客户端只能使⽤⼩于或等于此值的keepalive进⾏连接,
# 否则,将向它们发送服务器keepalive通知它们使⽤max_keepalive。
# 这仅适⽤于MQTT v5客户端。允许的最⼤值为65535。请勿设置为10以下。
#max_keepalive 65535
# 对于MQTT v5客户端,可以让服务器发送“最⼤数据包⼤⼩”值,该值将指⽰客户端它将不接受⼤⼩⼤于max_packet_size字节的MQTT数据包。# 这适⽤于完整的MQTT数据包,⽽不仅仅是有效负载。将此选项设置为正值会将最⼤数据包⼤⼩设置为该字节数。
# 如果客户端发送的数据包⼤于此值,它将被断开连接。这适⽤于所有客户端,⽆论它们使⽤的协议版本如何,
# 但是v3.1.1和更早版本的客户端当然不会收到最⼤数据包⼤⼩信息。默认为⽆限制。
# 禁⽌将其设置为低于20个字节,因为即使有效负载很⼩,它也可能会⼲扰普通的客户端操作。
#max_packet_size 0
# 超过当前运⾏中的QoS 1和2消息将在每个客户端排队,直到超过此限制。默认为0。(⽆最⼤值)
# 另请参见max_queued_messages。
# 如果同时指定了max_queued_messages和max_queued_bytes,则数据包将排队直到达到第⼀个限制。
#max_queued_bytes 0
# 每个客户端要在队列中保留的QoS 1和2消息的最⼤数量⾼于当前正在运⾏的QoS 1和2消息的数量。
# 默认值为100。设置为0表⽰没有最⼤值(不建议)。
# 另请参阅queue_qos0_messages。
# 另请参见max_queued_bytes。
#max_queued_messages 100
# 此选项设置代理将分配的最⼤堆内存字节数,因此对代理使⽤的内存设置硬限制。
# 超过此值的内存请求将被拒绝。效果会因被拒绝的内容⽽异。如果正在处理传⼊消息,则该消息将被丢弃,
# 并且发布客户端将断开连接。如果正在发送外发消息,则单个消息将被丢弃,接收⽅客户端将被断开连接。
# 默认为⽆限制
#memory_limit 0
# 此选项设置代理允许的最⼤发布有效负载⼤⼩。
# 接收到的超出此⼤⼩的消息将不会被代理接受。
# 缺省值为0,表⽰接受所有有效的MQTT消息。 MQTT施加的最⼤有效负载⼤⼩为268435455字节(256M)。
#message_size_limit 0
# 如果持久客户端(未将⼲净会话设置为fal的持久客户端)在特定时间内未重新连接,则此选项允许将其删除。
# 这是MQTT V3.1中的⾮标准选项,但在MQTT v3.1.1中允许。
# 设计不当的客户端可能会在使⽤随机⽣成的客户端ID时将clean ssion设置为fal。
# 这导致持久的客户端永远不会重新连接。此选项允许删除这些客户端。
# 有效期应为整数,然后分别为⼩时,⽇,周,⽉和年的 h d w m y 之⼀。例如
# persistent_client_expiration 2m
# persistent_client_expiration 14d
# persistent_client_expiration 1y
# 如果未设置,则默认为永不使持久客户端失效。
#persistent_client_expiration
# 将进程ID写⼊⽂件。默认值为空字符串,这意味着不应写⼊pid⽂件。
# 如果mosquitto在启动时使⽤初始化脚本和start-stop-daemon或类似程序⾃动运⾏,
# 则应将其设置为/var/run/mosquitto.pid。
# 配置说明中出现的地址例如:“/var/run/mosquitto”,“/var/log/messages”,都是相对路径,相对于系统盘根⽬录
# 例如“/var/run/mosquitto”表⽰的是“c:\var\run\mosquitto”
#pid_file
# 设置为true后可以在持久客户端断开连接时将QoS 0的消息排队。
# 这些消息包含在max_queued_messages和max_queued_bytes施加的限制中
# 默认为fal。
# 这是MQTT v3.1规范的⾮标准选项,但在v3.1.1中允许。
#queue_qos0_messages fal
# Set to fal to disable retained message support. If a client publishes a
# message with the retain bit t, it will be disconnected if this is t to
# fal.
# 是否禁⽤保留的消息⽀持。设置为falsk可以禁⽤.
# 将其设置为fal后, 如果客户端发布消息时设置保留消息, 则会被断开连接
#retain_available true
# 在客户端套接字上禁⽤Nagle的算法。这具有减少单个消息的等待时间的效果,但潜在的代价是增加了发送数据包的数量。#t_tcp_nodelay fal
# $SYS树更新之间的时间(以秒为单位)。
# 设置为0禁⽤$SYS树的发布。
#sys_interval 10
# The MQTT specification requires that the QoS of a message delivered to a
# subscriber is never upgraded to match the QoS of the subscription. Enabling
# this option changes this behaviour. If upgrade_outgoing_qos is t true,
# messages nt to a subscriber will always match the QoS of its subscription.
# 这是规范明确禁⽌的⾮标准选项。
#upgrade_outgoing_qos fal
# 以root⽤户⾝份运⾏时,请对该⽤户及其主要组授予特权。
# 设置为root以保持root⾝份,但是不建议这样做。
# 如果以⾮root⽤户⾝份运⾏,则此设置⽆效。
# 请注意,在Windows上这没有任何作⽤,因此mosquitto应该由希望以其⾝份运⾏的⽤户启动。
#ur mosquitto
=================================================================
默认监听器
# 绑定默认侦听器的IP地址/主机名。
# 如果未指定,则默认侦听器将不会绑定到特定地址,因此所有⽹络接⼝都可以访问它。
# 案例: bind_address ip-address/host name
#bind_address
# 端⼝号 port
#port 1883
# 将侦听器绑定到特定接⼝。这类似于上⾯的bind_address,但是在接⼝具有多个地址或地址可能更改时很有⽤。
# 将此属性与bind_address选项⼀起使⽤是有效的,但请注意,要绑定的接⼝包含要绑定的地址,否则将⽆法连接。
# 例如: bind_interface eth0
如何察言观色#bind_interface
# 当侦听器使⽤websockets协议时,也可以提供http数据。
# 将http_dir设置为包含您要提供的⽂件的⽬录。如果未指定此选项,则将⽆法进⾏正常的http连接。
#http_dir
ann kathrin# 允许的最⼤客户端连接数。这是每个侦听器的设置。
# 默认为-1,表⽰⽆限制的连接。
# 请注意,其他进程限制意味着⽆限的连接实际上是不可能的。
# 通常,默认的最⼤连接数有可能约为1024。
#max_connections -1
# 选择监听时要使⽤的协议。
# 可以是mqtt或websockets。
# Websockets⽀持当前默认在编译时被禁⽤。基于证书的TLS可以与websocket⼀起使⽤,
# 但仅⽀持cafile,certfile,keyfile和ciphers选项。
#protocol mqtt
# 将u_urname_as_clientid设置为true可以将客户端连接的客户端ID替换为其⽤户名。
# 这允许将⾝份验证绑定到clientid,这意味着可以防⽌⼀个客户端通过使⽤相同的 clientid 断开另⼀个客户端的连接。# 如果客户端不使⽤⽤户名连接,则此选项设置为true时,它将被断开,因为未授权。
# 请勿与clientid_prefixes结合使⽤。
# 另请参见u_identity_as_urname。
#u_urname_as_clientid
基于证书的SSL / TLS⽀持
# 以下选项可⽤于为该侦听器启⽤SSL / TLS⽀持。请注意,通过TLS的MQTT的推荐端⼝为8883,但这必须⼿动设置。# 另请参见mosquitto-tls⼿册页。
# 必须定义cafile或capath中的⾄少⼀个。它们都定义了访问PEM编码证书的⽅法
# 授权证书已签名您的服务器证书,并且您希望信任。
# cafile定义包含CA证书的⽂件的路径。
# capath定义⼀个⽬录
# 将在该⽬录中搜索包含CA证书的⽂件。
# 为了使Capath正常⼯作,证书⽂件的⽂件结尾必须带有“ .crt”,并且每次添加/删除证书时,
# 都必须运⾏“ openssl rehash <path to capath>”。
#cafile
#capath
# PEM编码的服务器证书的路径。
#certfile
# PEM编码的密钥⽂件的路径。
#keyfile
# 如果将require_certificate设置为true,则可以创建证书吊销列表⽂件以撤消对特定客户端证书的访问。
# 如果执⾏了此操作,请使⽤crlfile指向PEM编码的吊销⽂件。
#crlfile
# 如果您希望控制使⽤哪种加密密码,请使⽤ciphers选项。
在线英汉翻译器
# 可⽤密码的列表可以使⽤“ openssl ciphers”命令获得,并且填写与该命令的输出相同的格式内容。
# 默认值: DEFAULT:!aNULL:!eNULL:!LOW:!EXPORT:!SSLv2:@STRENGTH
#ciphers DEFAULT:!aNULL:!eNULL:!LOW:!EXPORT:!SSLv2:@STRENGTH
# 为了允许使⽤短暂的DH密钥交换来提供前向安全性,侦听器必须加载DH参数。
# 可以使⽤dhparamfile选项指定。 dhparamfile可以使⽤以下命令⽣成
# e.g. "openssl dhparam -out dhparam.pem 2048"
#dhparamfile
# 默认情况下,启⽤TLS的侦听器将以类似于启⽤https的Web服务器的⽅式运⾏,因为该服务器具有由CA签名的证书,
# 并且客户端将验证它是受信任的证书。总体⽬标是对⽹络流量进⾏加密。
# 如果将require_certificate设置为true,客户端必须提供有效的证书才能继续进⾏⽹络连接。
# 这允许在MQTT提供的机制之外控制对代理的访问。
#require_certificate fal
# 此选项定义⽤于此侦听器的TLS协议的版本。
# 默认值允许所有v1.3,v1.2和v1.1。有效值为tlsv1.3 tlsv1.2和tlsv1.1。
#tls_version
# 如果require_certificate为true,则可以将u_identity_as_urname设置为true,以使⽤客户端证书中的CN值作为⽤户名。
# 如果为true,则password_file选项将不会⽤于此侦听器。
# 这优先于u_subject_as_urname。
# 另请参见u_subject_as_urname。
#u_identity_as_urname fal
# 如果require_certificate为true,则可以将u_subject_as_urname设置为true,以使⽤客户端证书中的完整主题值作为⽤户名。# 如果为true,则password_file选项将不会⽤于此侦听器。
# 另请参见u_identity_as_urname
#u_subject_as_urname fal
Pre-shared-key bad SSL/TLS support
基于预共享密钥的SSL / TLS⽀持
# The following options can be ud to enable PSK bad SSL/TLS support for
# this listener. Note that the recommended port for MQTT over TLS is 8883, but
# this must be t manually.
#
# See also the mosquitto-tls man page and the "Certificate bad SSL/TLS
# support" ction. Only one of certificate or PSK encryption support can be
# enabled for any listener.
# The psk_hint option enables pre-shared-key support for this listener and also
# acts as an identifier for this listener. The hint is nt to clients and may
仁和会计网# be ud locally to aid authentication. The hint is a free form string that
# doesn't have much meaning in itlf, so feel free to be creative.
# If this option is provided, e psk_file to define the pre-shared keys to be
# ud or create a curity plugin to handle them.
#psk_hint
# When using PSK, the encryption ciphers ud will be chon from the list of客气英文
# available PSK ciphers. If you want to control which ciphers are available,
# u the "ciphers" option.  The list of available ciphers can be obtained
# using the "openssl ciphers" command and should be provided in the same format
# as the output of that command.
#ciphers
# Set u_identity_as_urname to have the psk identity nt by the client ud
# as its urname. Authentication will be carried out using the PSK rather than
# the MQTT urname/password and so password_file will not be ud for this
# listener.
#u_identity_as_urname fal
=================================================================
Extra listeners 额外的监听器
# Listen on a port/ip address combination. By using this variable
# multiple times, mosquitto can listen on more than one port. If
# this variable is ud and neither bind_address nor port given,
# then the default listener will not be started.
# The port number to listen on must be given. Optionally, an ip高二英语必修五单词
# address or host name may be supplied as a cond argument. In
# this ca, mosquitto will attempt to bind the listener to that
# address and so restrict access to the associated network and
# interface. By default, mosquitto will listen on all interfaces.
burst# Note that for a websockets listener it is not possible to bind to a host
# name.
# listener port-number [ip address/host name]
#listener
# Bind the listener to a specific interface. This is similar to
# the [ip address/host name] part of the listener definition, but is uful
# when an interface has multiple address or the address may change. It is
# valid to u this with the [ip address/host name] part of the listener
# definition, but take care that the interface you are binding to contains the
# address you are binding to, otherwi you will not be able to connect.
# Only available on Linux and requires elevated privileges.
#
# Example: bind_interface eth0
#bind_interface
# When a listener is using the websockets protocol, it is possible to rve
# http data as well. Set http_dir to a directory which contains the files you
# wish to rve. If this option is not specified, then no normal http
# connections will be possible.
#http_dir
# The maximum number of client connections to allow. This is
# a per listener tting.
# Default is -1, which means unlimited connections.
# Note that other process limits mean that unlimited connections
# are not really possible. Typically the default maximum number of
# connections possible is around 1024.
#max_connections -1
# The listener can be restricted to operating within a topic hierarchy using
# the mount_point option. This is achieved be prefixing the mount_point string # to all topics for any clients connected to this listener. This prefixing only
# happens internally to the broker; the client will not e the prefix.
#mount_point
# Choo the protocol to u when listening.
# This can be either mqtt or websockets.
# Certificate bad TLS may be ud with websockets, except that only the
# cafile, certfile, keyfile and ciphers options are supported.
#protocol mqtt
# Set u_urname_as_clientid to true to replace the clientid that a client
# connected with with its urname. This allows authentication to be tied to
# the clientid, which means that it is possible to prevent one client
# disconnecting another by using the same clientid.
# If a client connects with no urname it will be disconnected as not
# authorid when this option is t to true.
# Do not u in conjunction with clientid_prefixes.
# See also u_identity_as_urname.
#u_urname_as_clientid
# Change the websockets headers size. This is a global option, it is not
# possible to t per listener. This option ts the size of the buffer ud in
我向往的地方# the libwebsockets library when reading HTTP headers. If you are passing large # header data such as cookies then you may need to increa this value. If left # unt, or t to 0, then the default of 1024 bytes will be ud.
#websockets_headers_size
基于证书的SSL / TLS⽀持
# The following options can be ud to enable certificate bad SSL/TLS support # for this listener.
Note that the recommended port for MQTT over TLS is 8883, # but this must be t manually.
#
# See also the mosquitto-tls man page and the "Pre-shared-key bad SSL/TLS # support" ction. Only one of certificate or PSK encryption support can be
# enabled for any listener.
# At least one of cafile or capath must be defined to enable certificate bad
# TLS encryption. They both define methods of accessing the PEM encoded
# Certificate Authority certificates that have signed your rver certificate
# and that you wish to trust.
# cafile defines the path to a file containing the CA certificates.
# capath defines a directory that will be arched for files
# containing the CA certificates. For capath to work correctly, the
# certificate files must have ".crt" as the file ending and you must run
# "openssl rehash <path to capath>" each time you add/remove a certificate.
#cafile
#capath
# Path to the PEM encoded rver certificate.
#certfile
# Path to the PEM encoded keyfile.
#keyfile
# If you wish to control which encryption ciphers are ud, u the ciphers
# option. The list of available ciphers can be optained using the "openssl
# ciphers" command and should be provided in the same format as the output of # that command.
#ciphers

本文发布于:2023-06-30 09:19:49,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/162437.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:客户端   消息   设置   选项   证书   允许
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图