快捷搜索:  汽车  科技

mosquitto的持久化功能(mosquitto经验总结)

mosquitto的持久化功能(mosquitto经验总结)指定配置文件,如果不指定,则使用mosquitto.conf 文件中配置的参数。--config-filemosquitto启动时的命令及参数mosquitto [-c config file] [ -d | --daemon ] [-p port number] [-v]-c

第一步:安装

yum install mosquitto

yum info mosquitto

第二步:配置

mosquitto启动时的命令及参数

mosquitto [-c config file] [ -d | --daemon ] [-p port number] [-v]

-c

--config-file

指定配置文件,如果不指定,则使用mosquitto.conf 文件中配置的参数。

-d

--daemon

运行为后台守护进程.

-p

--port

指定监听端口号代替默认的1883. 这是默认listener的端口号。会绑定所有的网络接口。也可以在配置文件中通过 port 参数指定 例如 port 1883。 如果同时在配置文件和命令行指定默认listener的端口号,会以命令行的port为准。

在配置文件中使用listener参数指定其他的listener,例如 listener 1884

-v

--verbose

输出所有log到log 文件,等同于在配置文件使用 log_type all. 命令行中的参数会覆盖配置文件的配置。

如果想让mosquitto后台自动运行

$ mosquitto -c /etc/mosquitto/mosquitto.conf -d

使用配置文件 /etc/mosquitto/mosquitto.conf, 作为守护进程启动。

第三步:用户配置 及权限管理

mosquitto中可以添加多个用户,只有使用用户名和密码登陆服务器才允许用户进行订阅与发布操作。可以说用户机制是mosquitto重要的安全机制,增强服务器的安全性。

用户与权限配置需要修改3处地方:

1、mosquitto中最最最重要的配置文件mosquitto.conf

2、pwfile.example (保存用户名与密码)

3、aclfile.example (保存权限配置)

首先我们配置mosquitto.conf

find -name mosquitto.conf

mosquitto的持久化功能(mosquitto经验总结)(1)

mosquitto的持久化功能(mosquitto经验总结)(2)

1、找到allow_anonymous节点,这个节点作用是,是否开启匿名用户登录,默认是true。打开此项配置(将前面的 # 号去掉)之后将其值改为false

  修改前:#allow_anonymous true

  修改后:allow_anonymous false

2、找到password_file节点,这个节点是告诉服务器你要配置的用户将存放在哪里。打开此配置并指定pwfile.example文件路劲(注意是绝对路劲)

    修改前:#password_file

    修改后:password_file /etc/mosquitto/pwfile(这里的地址根据自己文件实际位置填写)

mosquitto的持久化功能(mosquitto经验总结)(3)

3: 创建用户名和密码、打开命令窗口 键入如下命令:

mosquitto_passwd -c /etc/mosquitto/pwfile admin

提示连续两次输入密码、创建成功。命令解释: -c 创建一个用户、/etc/mosquitto/pwfile 是将用户创建到 pwfile 文件中、admin 是用户名。

mosquitto的持久化功能(mosquitto经验总结)(4)

会生成一个

mosquitto的持久化功能(mosquitto经验总结)(5)

同样连续会提示连续输入两次密码。注意第二次创建用户时不用加 -c 如果加 -c 会把第一次创建的用户覆盖。

mosquitto的持久化功能(mosquitto经验总结)(6)

注意 mosquitto_passwd -c命令每次都只会生成只包含一个用户的文件 如果你想在passwd.conf中存放多个用户, 可以使用mosquitto_passwd -b 命令

mosquitto_passwd -b [最终生成的password_file文件] [用户名] [密码]

mosquitto_passwd -b命令必须在控制台输入明文的密码,且每次只是在passwd.conf中新增一个用户,不会覆盖之前已生成的用户

同时也可以使用mosquitto_passwd -D命令删除一个用户

mosquitto_passwd的具体应用可以参考 http://mosquitto.org/man/mosquitto_passwd-1.html

权限设置

修改 Mosquitto.conf 配置选项

打开mosquitto.conf文件,找到acl_file节点。打开配置做如下修改:

修改前:#acl_file

修改后:acl_file /etc/mosquitto/aclfile 根据自己文件实际位置填写

设置
admin 设置为订阅权限,并且只能访问的主题为"root/topic/#"

mosquitto 设置为发布权限,并且只能访问的主题为"root/topic/#"

如果用 admin 进行发布是不会成功的、反过来用 mosquitto 进行订阅同样不会接受到任何信息。因为他们的权限不同。

代码如下

user admin

topic read root/topic/#

user mosquitto

topic write root/topic#

read 订阅权限 、write 发布权限、# 通配符表示所有的、保存退出。

第四:其他操作

mosquitto重启
ps -aux | grep mosquitto

mosquitto的持久化功能(mosquitto经验总结)(7)

kill -9 1761

mosquitto -c /etc/mosquitto/mosquitto.conf -d

测试

mosquitto的持久化功能(mosquitto经验总结)(8)

mosquitto的持久化功能(mosquitto经验总结)(9)

猜您喜欢: