title: mosquitto配置文件
date: 2017-06-5 14:18:06
tags: mqtt,mosquitto,conf
mosquitto配置文件
故事背景
最近,闲来无事,搞起了mqtt。使用“brew install mosquitto” 安装完了mosquitto 后开始研究配置文件,信息量有点大,还是英文的。下面是用google翻译机械翻译的。
google翻译后的结果
#配置文件为mosquitto
#参见mosquitto.conf(5)了解更多信息。
#显示默认值,取消注释以更改。
#使用#字符来表示注释,但只有当它是
#第一个字符就行了。
#=============================================== ================
#一般配置
#================================================= ================
#重新发送出站QoS = 1或QoS = 2消息之前等待的时间(秒)。
#retry_interval 20
#$ SYS树更新之间的时间(秒)。
#设置为0以禁用$ SYS树的发布。
#sys_interval 10
#清除未引用消息的内部消息存储之间的时间(秒)。较低的值将导致更低的内存使用,但更多的处理器时间,较高的值将产生相反的效果。
#设置值为0表示未被引用的消息将被尽快处理。
#store_clean_interval 10
#将进程标识写入文件。默认是一个空白字符串,这意味着不应该写一个pid文件。
#如果在启动时使用init脚本和start-stop-daemon或类似程序启动mosquitto,则应将其设置为/var/run/mosquitto.pid。
#pid_file
#以root身份运行时,将此权限删除给该用户及其主组。
#留空以保持为root,但不建议这样做。
#如果以非root用户身份运行,此设置不起作用。
#注意,在Windows上这没有任何效果,所以蚊子应该由您希望运行的用户启动。
#user mosquitto
#当前每个客户端的QoS 1和2消息的最大数量。
#这包括通过握手和正在重试的消息。默认为20.设置为0,无最大值。设置为1将保证QoS 1和2消息的按顺序传送。
#max_inflight_messages 20
#队列中保持的QoS 1和2消息的最大数量超过当前正在运行的。默认为100.设置为0,无最大值(不推荐)。
#另请参见queue_qos0_messages。
#max_queued_messages 100
#当持久性客户端被断开连接时,设置为true以排队具有QoS 0的消息。这些消息包含在由max_queued_messages强加的限制之内。
#默认为false。
#这是MQTT v3.1规范的非标准选项,但允许使用
#v3.1.1。
#queue_qos0_messages false
#此选项设置代理将允许的最大发布有效载荷大小。
#经纪人不会接收超过此大小的收到的邮件。
#默认值为0,表示接受所有有效的MQTT消息。 MQTT的最大有效载荷大小为268435455个字节。
#message_size_limit 0
#此选项控制是否允许客户端与零长度客户机ID连接。此选项仅影响使用MQTT v3.1.1及更高版本的客户端。如果设置为false,则与客户端id的零长度连接的客户端将被断开连接。如果设置为true,则客户端将被代理分配一个客户机ID。这意味着只有清洁会话设置为true的客户端才有用。
#allow_zero_length_clientid true
#如果allow_zero_length_clientid为true,则此选项允许您将前缀设置为自动生成的客户端ID以帮助日志中的可见性。
#auto_id_prefix
#此选项允许永久性客户端(干净会话设置为false)被删除,如果它们在一定时间段内未重新连接。
#
#这是MQTT V3.1中的非标准选项,但在MQTT v3.1.1中允许。
#
#使用随机生成的客户端ID时,设计糟糕的客户端可能将清洁会话设置为false。这导致永远不会重新连接的持久客户端。此选项允许删除这些客户端。
#
#过期期间应该是一个整数,然后分别是小时,日,周,月和年的h d w m y之一。例如
#
#persistent_client_expiration 2m
#persistent_client_expiration 14d
#persistent_client_expiration 1y
#
#如果没有设置,默认为永久不会过期。
#persistent_client_expiration
#如果客户端订阅了重叠的多个订阅,例如foo /#和foo / + / baz,那么MQTT期望当代理人收到一个与两个订阅(如foo / bar / baz)匹配的主题的消息时,客户端应该只接收一次消息。
#Mosquitto跟踪哪些客户端已经发送了一个消息,以满足这一要求。 allow_duplicate_messages选项允许禁用此行为,如果您有大量客户端订阅相同的主题集并且非常关心最小化内存使用情况,这可能会很有用。
#如果您事先知道您的客户端将永远不会有重叠的订阅,则可以将其设置为true,否则即使有QoS = 2,您的客户端也必须能够正确地处理重复的消息。
#allow_duplicate_messages为false
#=============================================== ================
#默认监听器
#=============================================== ================
#将IP地址/主机名绑定到默认侦听器。如果没有给出,默认监听器将不会被绑定到特定的地址,所以所有网络接口都可以访问。 bind_address ip-address /主机名
#bind_address
#用于默认侦听器的端口。
#port 1883
#允许的最大客户端连接数。这是一个每个监听器设置。默认值为-1,表示无限制连接。请注意,其他进程限制意味着无限连接不是真的可能。通常,可能的默认最大连接数约为1024。
#max_connections -1
#选择听时要使用的协议。这可以是mqtt或websockets。默认情况下,Websockets支持在编译时被禁用。基于证书的TLS可以与websockets一起使用,但只支持cafile,certfile,keyfile和ciphers选项。
#protocol mqtt
#当侦听器使用websockets协议时,也可以提供http数据。将http_dir设置为包含要提供的文件的目录。如果未指定此选项,则无法正常的http连接。
#http_dir
#将use_username_as_clientid设置为true以替换与其用户名连接的客户端的clientid。这允许认证绑定到clientid,这意味着可以通过使用相同的clientid来防止一个客户端断开另一个客户端。如果客户端连接没有用户名,则将不会断开连接
#将此选项设置为true时授权。不要与clientid_prefixes一起使用。另请参见use_identity_as_username。
#use_username_as_clientid
#------------------------------------------------- ----------------
#基于证书的SSL / TLS支持
#------------------------------------------------- ----------------
#以下选项可用于为此侦听器启用SSL / TLS支持。请注意,MQTT over TLS的推荐端口为8883,但必须手动设置。
#另见mosquitto-tls手册页。
#必须至少定义一个cafile或capath。它们都定义了访问已签署服务器证书并且希望信任的PEM编码的证书颁发机构证书的方法。 cafile定义包含CA证书的文件的路径。 capath定义将搜索包含CA证书的文件的目录。为了使capath正常工作,证书文件必须具有“.crt”作为文件结束,您必须在每次添加/删除证书时运行“c_rehash <path to capath>”。
#cafile
#capath
#PEM编码服务器证书的路径。
#certfile
#PEM编码密钥文件的路径。
#keyfile
#此选项定义要用于此侦听器的TLS协议的版本。默认值允许v1.2,v1.1和v1.0,如果它们都是经过编译的openssl版本都支持的。对于openssl> = 1.0.1,有效值为tlsv1.2 tlsv1.1和tlsv1。对于openssl <1.0.1,有效值为tlsv1。
#tls_version
#默认情况下,启用TLS的侦听器将以与启用https的Web服务器类似的方式运行,因为服务器具有由CA签名的证书,客户端将验证它是否为可信证书。总体目标是加密网络流量。通过将require_certificate设置为true,客户端必须提供有效的证书才能继续进行网络连接。这允许在MQTT提供的机制之外对代理进行访问。
#require_certificate为false
#如果require_certificate为true,则可以将use_identity_as_username设置为true,以使用客户端证书中的CN值作为用户名。如果是这样,密码文件选项将不会用于此侦听器。
#use_identity_as_username false
#如果将require_certificate设置为true,则可以创建证书吊销列表文件以撤消对特定客户端证书的访问。如果您这样做,请使用crlfile指向PEM编码的撤销文件。
#crlfile
#如果要控制使用哪种加密密码,请使用ciphers选项。可以使用“openssl ciphers”命令来选择可用密码列表,并且应该以与该命令的输出相同的格式提供。如果未设置默认为DEFAULT:!aNULL:!eNULL:!LOW:!EXPORT:!SSLv2:@STRENGTH
#ciphers DEFAULT:!aNULL:!eNULL:!LOW:!EXPORT:!SSLv2:@STRENGTH
#------------------------------------------------- ----------------
#基于预共享密钥的SSL / TLS支持
#------------------------------------------------- ----------------
#以下选项可用于为此侦听器启用基于PSK的SSL / TLS支持。请注意,MQTT over TLS的推荐端口为8883,但必须手动设置。
#
#另请参阅mosquitto-tls手册页和“基于证书的SSL / TLS支持”部分。只有一个证书或PSK加密支持可以
#为任何侦听器启用。
#psk_hint选项启用此侦听器的预共享密钥支持,并且还作为此侦听器的标识符。提示发送给客户端,可以在本地使用以帮助身份验证。提示是一个自由的字符串,本身没有太多的意义,所以随意做创意。如果提供此选项,请参阅psk_file来定义要使用的预共享密钥或创建安全插件来处理它们。
#psk_hint
#将use_identity_as_username设置为将客户端发送的psk标识用作其用户名。验证将使用PSK而不是MQTT用户名/密码进行,因此password_file将不会用于此侦听器。
#use_identity_as_username false
#使用PSK时,使用的加密密码将从可用的PSK密码列表中选择。如果要控制哪些密码可用,请使用“密码”选项。可以使用“openssl ciphers”命令来选择可用密码列表,并且应该以与该命令的输出相同的格式提供。
#ciphers
#=============================================== ================
#多听众
#=============================================== ================
#监听端口/ ip地址组合。通过多次使用这个变量,蚊子可以在多个端口上收听。如果使用此变量,并且既没有bind_address也没有给出端口,则默认监听器将不会被启动。必须给出要监听的端口号。可选地,可以提供IP地址或主机名作为第二参数。在这种情况下,mosquitto将尝试将侦听器绑定到该地址,从而限制对相关网络和接口的访问。默认情况下,mosquitto会侦听所有接口。请注意,对于Websockets侦听器,不可能绑定到主机名。 listener port-number [ip address / host name]
#listener
#允许的最大客户端连接数。这是一个每个监听器设置。默认值为-1,表示无限制连接。请注意,其他进程限制意味着无限连接不是真的可能。通常,可能的默认最大连接数约为1024。
#max_connections -1
#监听器可以被限制为使用mount_point选项在主题层次结构中运行。对于连接到此侦听器的任何客户端,实现了将mount_point字符串前缀到所有主题的前缀。这种前缀只在内部在经纪人身上发生;客户端将看不到前缀。
#mount_point
#选择听时要使用的协议。这可以是mqtt或websockets。基于证书的TLS可以与websockets一起使用,但只支持cafile,certfile,keyfile和ciphers选项。
#protocol mqtt
#当侦听器使用websockets协议时,也可以提供http数据。将http_dir设置为包含要提供的文件的目录。如果未指定此选项,则无法正常的http连接。
#http_dir
#将use_username_as_clientid设置为true以替换与其用户名连接的客户端的clientid。这允许认证绑定到clientid,这意味着可以通过使用相同的clientid来防止一个客户端断开另一个客户端。如果客户端连接没有用户名,则当该选项设置为true时,它将被断开,因为未被授权。不要与clientid_prefixes一起使用。另请参见use_identity_as_username。
#use_username_as_clientid
#------------------------------------------------- ----------------
#基于证书的SSL / TLS支持
#------------------------------------------------- ----------------
#以下选项可用于为此侦听器启用基于证书的SSL / TLS支持。请注意,MQTT over TLS的推荐端口为8883,但必须手动设置。
#
#另请参见mosquitto-tls手册页和“基于预共享密钥的SSL / TLS支持”部分。只有一个证书或PSK加密支持可以为任何监听器启用。
#必须至少定义一个cafile或capath以启用基于证书的TLS加密。它们都定义了访问已签署服务器证书并且希望信任的PEM编码的证书颁发机构证书的方法。 cafile定义包含CA证书的文件的路径。 capath定义将搜索包含CA证书的文件的目录。为了使capath正常工作,证书文件必须具有“.crt”作为文件结束,您必须在每次添加/删除证书时运行“c_rehash <path to capath>”。
#cafile
#capath
#PEM编码服务器证书的路径。
#certfile
#PEM编码密钥文件的路径。
#keyfile
#默认情况下,启用TLS的侦听器将以与启用https的Web服务器类似的方式运行,因为服务器具有由CA签名的证书,客户端将验证它是否为可信证书。总体目标是加密网络流量。通过将require_certificate设置为true,客户端必须提供有效的证书才能继续进行网络连接。这允许在MQTT提供的机制之外对代理进行访问。
#require_certificate为false
#如果require_certificate为true,则可以将use_identity_as_username设置为true,以使用客户端证书中的CN值作为用户名。如果是这样,密码文件选项将不会用于此侦听器。
#use_identity_as_username false
#如果将require_certificate设置为true,则可以创建证书吊销列表文件以撤消对特定客户端证书的访问。如果您这样做,请使用crlfile指向PEM编码的撤销文件。
#crlfile
#如果要控制使用哪种加密密码,请使用ciphers选项。可以使用“openssl ciphers”命令来选择可用密码列表,并且应该以与该命令的输出相同的格式提供。
#ciphers
#------------------------------------------------- ----------------
#基于预共享密钥的SSL / TLS支持
#------------------------------------------------- ----------------
#以下选项可用于为此侦听器启用基于PSK的SSL / TLS支持。请注意,MQTT over TLS的推荐端口为8883,但必须手动设置。
#
#另请参阅mosquitto-tls手册页和“基于证书的SSL / TLS支持”部分。只有一个证书或PSK加密支持可以为任何监听器启用。
#psk_hint选项启用此侦听器的预共享密钥支持,并且还作为此侦听器的标识符。提示发送给客户端,可以在本地使用以帮助身份验证。提示是一个自由的字符串,本身没有太多的意义,所以随意做创意。如果提供此选项,请参阅psk_file来定义要使用的预共享密钥或创建安全插件来处理它们。
#psk_hint
#将use_identity_as_username设置为将客户端发送的psk标识用作其用户名。验证将使用PSK而不是MQTT用户名/密码进行,因此password_file将不会用于此侦听器。
#use_identity_as_username false
#使用PSK时,使用的加密密码将从可用的PSK密码列表中选择。如果要控制哪些密码可用,请使用“密码”选项。可以使用“openssl ciphers”命令来选择可用密码列表,并且应该以与该命令的输出相同的格式提供。
#ciphers
#=============================================== ================
持久性
#=============================================== ================
#如果启用持久性,请将内存数据库保存到每个autosave_interval秒。如果设置为0,则持久性数据库将仅在mosquitto退出时被写入。另请参见autosave_on_changes。请注意,持久性数据库的写入可以通过将蚊子发送到SIGUSR1信号来强制执行。
#autosave_interval 1800
#如果为真,mosquitto将计算订阅更改次数,保留收到的消息和排队消息,如果总数超过autosave_interval,则内存数据库将被保存到磁盘。如果为false,则mosquitto会将内存数据库保存到磁盘,方法是将autosave_interval视为一段时间。
#autosave_on_changes false
将永久消息数据保存到磁盘(true / false)。这将保存有关所有消息的信息,包括订阅,当前正在运行的消息和保留的消息。 retain_persistence是此选项的同义词。
#persistence false
#用于持久数据库的文件名,不包括路径。
#persistence_file mosquitto.db
#持久数据库的位置。必须包含尾/默认是一个空字符串(当前目录)。设置为例如/ var / lib / mosquitto /如果在Linux或类似的服务器上运行。
#persistence_location
#=============================================== ================
#记录
#=============================================== ================
#登录的地方。对多个日志记录目的地使用多个log_dest行。可能的目的地是:stdout stderr syslog主题文件
#
#stdout和stderr登录到命名输出的控制台。
#
#syslog使用通常结束于/ var / log / messages或类似的userspace syslog工具。
#
#主题记录到代理主题'$ SYS / broker / log / <severity>',其中severity是D,E,W,N,I,M之一,它们是调试,错误,警告,通知,信息和消息。消息类型严重性由subscribe / unsubscribe log_types使用,并将日志消息发布到$ SYS / broker / log / M / susbcribe或$ SYS / broker / log / M / unsubscribe。
#
#文件目的地需要一个附加参数,这是一个要记录的文件,例如。 “log_dest file /var/log/mosquitto.log”。当代理接收到HUP信号时,文件将被关闭并重新打开。只能配置一个文件目的地。
#
#注意,如果代理作为Windows服务运行,它将默认为“log_dest none”,stdout和stderr日志都不可用。如果要禁用日志记录,请使用“log_dest none”。
#log_dest stderr
#如果使用syslog日志记录(不在Windows上),默认情况下会将消息记录到“守护程序”工具。使用log_facility选项来选择local0 to local7来登录。期权值应为整数值,例如“log_facility 5”使用local5。
#log_facility
#要记录的消息的类型。使用多个log_type行来记录多种类型的消息。可能的类型是:调试,错误,警告,通知,信息,无,订阅,取消订阅,Websockets,所有。请注意,调试类型消息用于解码传入/传出网络数据包。他们没有登录“主题”。
#log_type错误
#log_type警告
#log_type通知
#log_type信息
#更改websockets日志记录级别。这是一个全局选项,不可能设置每个监听器。这是由libwebsockets解释为lws_log_levels枚举的位掩码的整数。有关更多详细信息,请参阅libwebsockets文档。还必须启用“log_type websockets”。
#websockets_log_level 0
#如果设置为true,客户端连接和断开连接消息将包含在日志中。
#connection_messages为true
#如果设置为true,请为每个日志消息添加时间戳值。
#log_timestamp true
#=============================================== ================
#安全
#=============================================== ================
#如果设置,只有在clientid上具有匹配前缀的客户端将被允许连接到代理。默认情况下,所有客户端都可以连接。例如,在这里设置“secure-”意味着客户端“安全客户端”可以连接,而另一个客户端“mqtt”则不能连接。
#clientid_prefixes
#布尔值,用于确定连接而不提供用户名的客户端是否允许连接。如果设置为false,则应创建一个密码文件(请参阅password_file选项)来控制经过身份验证的客户端访问。默认为true。
#allow_anonymous true
#除了clientid_prefixes,allow_anonymous和TLS身份验证选项之外,还可以进行基于用户名的身份验证。默认支持在下面的“默认身份验证和主题访问控制”中进行了说明。 auth_plugin允许使用其他身份验证方法。指定可加载插件的路径,并参阅下面的“验证和主题访问插件选项”部分。
#auth_plugin
#------------------------------------------------- ----------------
#默认认证和主题访问控制
#------------------------------------------------- ----------------
#使用密码文件控制对代理的访问。可以使用mosquitto_passwd实用程序生成此文件。如果TLS支持没有被编译到mosquitto(建议应该包含TLS支持),那么使用纯文本密码,在这种情况下文件应该是一个文本文件,行格式为:username:password密码(和冒号)如果需要可以省略,尽管这提供了很少的安全性。
#
#查看TLS客户端require_certificate和use_identity_as_username选项以进行备用认证选项。
#password_file
#访问也可以使用预共享密钥文件进行控制。这需要TLS-PSK支持和配置为使用它的侦听器。该文件应该是格式如下的文本行:identity:key该键应为十六进制格式,不带前导“0x”。
#psk_file
#使用访问控制列表文件控制代理上的主题访问。如果定义了此参数,则只列出列出的主题。如果ACL文件的一行的第一个字符是#,则将其视为注释。主题访问添加了以下格式的行:
#
#topic [read | write | readwrite] <topic>
#
#访问类型使用“读”,“写”或“读写”进行控制。此参数是可选的(除非<topic>包含一个空格字符) - 如果没有给出,则访问是读/写。 <topic>可以包含与订阅中的+或#通配符。
#
#假设allow_anonymous为true,第一组主题应用于匿名客户端。用户特定主题ACL在用户行之后添加如下:
#
#user <username>
#
#这里提到的用户名与password_file相同。这不是客户。
#
#
#如果还可以根据主题中的模式替换来定义ACL。可用于变电站的模式有:
#
#%c以匹配客户端%u的客户端ID以匹配客户端的用户名
#
#替代模式必须是层次结构级别的唯一文本。
#
#表单与主题关键字相同,但使用模式作为关键字。即使先前已经提供了“user”关键字,模式ACL也适用于所有用户。
#
#如果使用具有用户名和ACL的网桥,可以使用以下模式允许连接消息:pattern write $ SYS / broker / connection /%c / state
#
#pattern [read | write | readwrite] <topic>
#
#示例:
#
#模式写入传感器/%u /数据
#
#acl_file
#------------------------------------------------- ----------------
#验证和主题访问插件选项
#------------------------------------------------- ----------------
#如果使用上面的auth_plugin选项,请按照插件说明所述定义选项以传递给插件。使用格式auth_opt_ *命名的所有选项将被传递到插件,例如:
#
#auth_opt_db_host
#auth_opt_db_port
#auth_opt_db_username
#auth_opt_db_password
#=============================================== ================
#桥
#=============================================== ================
#桥是连接多个MQTT经纪人的一种方式。使用“连接”选项创建一个新桥,如下所述。使用剩余的参数设置桥梁的选项。您必须指定地址和至少一个要订阅的主题。每个连接必须有唯一的名称。地址线可以指定多个主机地址和端口。有关使用多个地址的桥接行为的更多详细信息,请参见round_robin描述。可以通过在默认值为out的地方指定out或者两者来选择主题将被共享的方向。可以使用下一个主题选项指定桥接通信的QoS级别。默认QoS级别为0,为了改变QoS,也必须给出主题方向。本地和远程前缀选项允许在桥接到/从远程代理程序时重新映射主题。这提供了将主题树放置在适当位置的能力。有关详细信息,请参阅mosquitto.conf手册页。可以为每个连接指定多个主题,但要小心不要创建任何循环。如果您使用将cleanession设置为false(默认值),那么如果更改了您要订阅的主题,则可能会从传入的主题中获取意外的行为。这是因为远程代理保留旧主题的订阅。如果您有这个问题,将您的网桥与cleanession设置为true,然后将cleanession设置为false正常连接。
#connection <name>
#address <host> [:<port>] [<host> [:<port>]]
#topic <topic> [[[out |在| both] qos-level] local-prefix remote-prefix]
#设置此桥接使用的MQTT协议版本。可以是mqttv31或mqttv311之一。默认为mqttv31。
#bridge_protocol_version mqttv31
#如果一个网桥具有“out”方向的主题,那么默认的行为就是发送一个取消订阅请求给该主题的远程代理。这意味着将主题方向从“in”更改为“out”将不会继续接收传入的消息。发送这些取消订阅请求并不总是可取的,将bridge_attempt_unsubscribe设置为false将禁止发送取消订阅请求。
#bridge_attempt_unsubscribe true
#如果桥接器在地址/地址配置中提供多个地址,那么round_robin选项可以定义桥接器故障时桥接器的行为。如果round_robin为false,则为默认值,则将第一个地址视为主桥连接。如果连接失败,将会依次尝试其他辅助地址。当连接到次级桥时,桥将定期尝试重新连接到主桥,直到成功。如果round_robin为true,则所有地址都被视为等于。如果连接失败,将尝试下一个地址,如果成功将保持连接,直到失败
#round_robin false
#设置该桥接连接远端使用的客户端ID。如果未定义,则默认为“name.hostname”,其中name是连接名称,hostname是此计算机的主机名。这替换了旧的“clientid”选项,以避免混淆。 “clientid”暂时有效。
#remote_clientid
#将clientid设置为在本地代理上使用。如果未定义,则默认为“local”。<clientid>“。如果您将代理桥接到自身,那么local_clientid和clientid不重要。
#local_clientid
#设置此桥接器的干净会话变量。当设置为true时,当桥由于任何原因断开连接时,所有消息和订阅将在远程代理上清除。请注意,将清理设置为true后,当桥接器在连接失败后重新连接时可能会发送大量保留的消息。当设置为false时,订阅和消息将保留在远程代理上,并在桥重新连接时发送。
#cleansession false
#如果设置为true,请向本地和远程代理发布通知消息,以提供有关桥接连接状态的信息。保留的消息被发布到主题$ SYS / broker / connection / <clientid> / state,除非使用notification_topic选项。如果消息为1,则连接处于活动状态,如果连接失败,则为0。
#notifications为真
#选择发布此网桥的通知消息的主题。如果未设置,消息将在主题$ SYS / broker / connection / <clientid> / state上发布
#notification_topic
#设置此桥接连接的keepalive间隔时间,单位为秒。
#keepalive_interval 60
#设置桥的起始类型。这控制了桥梁的启动方式,可以是三种类型之一:自动,懒惰和一次。请注意,RSMB提供了第四种起始类型“手动”,目前不被蚊子支持。
#
#“自动”是默认的开始类型,意味着当代理启动时,桥连接将自动启动,如果连接失败,则在短时延(30秒)后重新启动。
#
#排队消息数超过“threshold”参数设置的数字时,使用“懒惰”启动类型的桥将自动启动。它将在“idle_timeout”参数设置的时间后自动停止。如果希望连接只有在需要时才能处于活动状态,请使用此启动类型。
#
#当代理启动时,使用“一次”启动类型的桥将自动启动,但如果连接失败,将不会重新启动。
#start_type自动
#设置桥接器使用自动启动类型的时间等待,直到尝试重新连接。默认为30秒。
#restart_timeout 30
#设置使用延迟启动类型的网桥在停止之前必须空闲的时间。默认为60秒。
#idle_timeout 60
#设置要重新启动具有延迟启动类型的网桥需要排队的消息数。默认为10条消息。必须小于max_queued_messages。
#threshold 10
#如果try_private设置为true,桥将尝试向远程代理指示它不是普通客户端的桥。如果成功,这意味着循环检测将更有效,并且保留的消息将被正确传播。并非所有经纪人都支持此功能,因此如果您的网桥连接不正确,可能需要将try_private设置为false。
#try_private true
#设置连接到需要身份验证的代理时使用的用户名。这将替换旧的“用户名”选项,以避免混淆。 “username”暂时有效。
#remote_username
#设置连接到需要身份验证的代理时使用的密码。仅当还设置了remote_username时才使用此选项。这将替换旧的“密码”选项以避免混淆。 “密码”暂时有效。
#remote_password
#------------------------------------------------- ----------------
#基于证书的SSL / TLS支持
#------------------------------------------------- ----------------
#必须定义bridge_cafile或bridge_capath才能启用此桥接的TLS支持。 bridge_cafile定义包含已签署远程代理证书的证书颁发机构证书的文件的路径。 bridge_capath定义将搜索包含CA证书的文件的目录。为了使bridge_capath正常工作,证书文件必须以“.crt”作为文件结束,并且每次添加/删除证书时都必须运行“c_rehash <path to capath>”。
#bridge_cafile
#bridge_capath
#远程代理所需的PEM编码客户端证书的路径。
#bridge_certfile
#远程代理所需的PEM编码客户端私钥的路径。
#bridge_keyfile
#在使用基于证书的加密时,bridge_insecure禁用对服务器证书中服务器主机名的验证。这在测试初始服务器配置时可能很有用,但是通过DNS欺骗可以让恶意第三方冒充您的服务器。仅在测试中使用此选项。如果您需要在生产环境中使用此选项,则您的设置会出现故障,并且无需使用加密。
#bridge_insecure false
#------------------------------------------------- ----------------
#基于PSK的SSL / TLS支持
#------------------------------------------------- ----------------
#预共享密钥加密为基于证书的加密提供了替代方案。桥可以配置为使用具有bridge_identity和bridge_psk选项的PSK。这些是客户端PSK标识,并且以十六进制格式预共享密钥,没有“0x”。一次只能在一个桥上使用证书和基于PSK的加密之一。
#bridge_identity
#bridge_psk
#=============================================== ================
#外部配置文件
#=============================================== ================
#使用include_dir选项可以包括外部配置文件。这定义了一个将要搜索配置文件的目录。以“.conf”结尾的所有文件都将作为配置文件加载。最好将其作为主文件中的最后一个选项。此选项只能从主配置文件处理。指定的目录不能包含主配置文件。
#include_dir
#=============================================== ================
#rsmb选项 - 不太可能被支持
#=============================================== ================
#ffdc_output
#max_log_entries
#trace_level
#trace_output