物联网之MQTT

一,MQTT 及其在物联网中的应用

MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,设计用于低带宽、延迟高、不稳定的网络环境,特别适合物联网(IoT)应用。它采用了发布/订阅(Pub/Sub)模型,以简化设备之间的消息交换,是物联网领域广泛采用的通信协议之一。

MQTT 的核心概念:

  1. Broker(消息代理):MQTT Broker 是 MQTT 通信的核心,负责接收、存储并分发消息。所有客户端通过 Broker 进行通信,客户端之间不会直接相互通信。
  2. Publisher(发布者):客户端可以作为发布者,向某个主题(Topic)发布消息。
  3. Subscriber(订阅者):客户端可以订阅一个或多个主题,Broker 会将对应主题的消息推送给订阅者。
  4. Topic(主题):消息通过主题组织,Publisher 发布消息时会指定主题,Subscriber 订阅相应主题来接收消息。
  5. QoS(服务质量):MQTT 提供三种消息传递服务质量:
    QoS 0:消息最多传递一次,不保证消息会被成功接收。
    QoS 1:消息至少传递一次,保证消息至少会被接收到一次。
    QoS 2:消息传递一次且仅一次,保证消息不会重复或丢失。

MQTT 专为物联网(IoT)设备和低带宽、高延迟或不可靠的网络设计。它的主要特点包括:

  • 轻量级: 协议简单,消息开销小,适合资源受限的设备。
  • 发布/订阅模式: 允许一对多的消息分发和应用程序解耦。
  • 可靠性: 提供三种服务质量级别(QoS),确保消息传递。
  • 安全性: 支持TLS加密和用户名/密码认证。
  • 保留消息: 可以存储最后一条消息,新订阅者可立即获得最新状态。

由于其轻量级的特性,MQTT 广泛应用于物联网中,适用于以下场景:

  • 远程监控与管理:通过 MQTT 协议,物联网设备(如传感器、智能家居设备等)可以定期向服务器上传数据,实现远程监控。服务器也可以通过 MQTT 向设备发送控制命令,进行远程管理。
  • 实时数据传输:MQTT 支持低延迟的消息传输,适合需要实时数据更新的场景,如工业自动化、智能电网、车联网等。
  • 低功耗设备通信:由于 MQTT 协议的低带宽和低开销,适合电池供电的物联网设备,通过节省功耗延长设备的使用寿命。
  • 智能家居:MQTT 协议广泛应用于智能家居系统中,例如控制灯光、恒温器、安防设备等,用户可以通过手机或其他终端远程控制家中的设备。
  • 车联网(V2X):在车联网中,MQTT 可以用于车辆与后台服务器之间的数据传输,如状态监控、远程控制、紧急事件处理等。

在典型的物联网架构中,MQTT 作为一种协议桥接了物联网设备与云平台之间的数据传输,架构通常包括以下主要部分:

  • 物联网设备(IoT Devices):如传感器、智能家居设备等,设备通过 MQTT 协议将数据发布到 MQTT Broker,也可以订阅主题接收命令。
  • MQTT Broker:位于物联网系统的核心位置,负责管理客户端的连接和消息的传输。所有设备和服务器的通信都通过 Broker 进行,Broker 根据主题分发消息。
  • 云平台(Cloud Platform):云平台通常订阅设备的数据主题,接收到设备上传的数据进行存储和处理。云平台也可以通过 Broker 向设备发布控制命令。
  • 用户终端(User Interface):通过手机应用、网页等形式,用户可以远程查看设备状态和数据,并发送控制命令,控制物联网设备的运行。
         +--------------------+         +--------------------+|                    |         |                    ||  User Interface    |         |    Cloud Platform  ||      (Mobile)      |         |(Web App, Analytics)|+--------------------+         +--------------------+^                                ^|                                ||        Subscribe/Publish       ||                                |v                                v+----------------------------------------------+|               MQTT Broker                    ||    (Mosquitto, EMQX, HiveMQ, etc.)           |+----------------------------------------------+^                                ^|                                |Publish|                                |Subscribe|                                |v                                v+--------------------+              +--------------------+|  IoT Device 1       |              |  IoT Device 2       || (Sensors, Actuators)|              | (Sensors, Actuators)|+--------------------+              +--------------------+
  1. 物联网设备(如 IoT Device 1 和 IoT Device 2)通过 MQTT 协议连接到 Broker,并且分别发布数据或订阅控制命令的主题。
  2. MQTT Broker 是中心节点,负责接收物联网设备发布的消息,并将消息推送给订阅者(如云平台或用户终端)。
  3. 云平台 订阅设备的数据,并通过处理这些数据实现监控、分析或控制操作。云平台也可以通过发布控制命令,控制物联网设备的行为。
  4. 用户终端(如移动应用或 Web 界面)允许用户查看设备的状态和数据,并发送控制命令到云平台,云平台再通过 MQTT Broker 传递给相应的物联网设备。

二,在 Windows 10 中安装与测试 MQTT broker

  1. 下载 Mosquitto:
    - 访问 https://mosquitto.org/download/
    - 下载最新版本的 Windows 安装程序 (64-bit)

  2. 安装 Mosquitto:
    - 运行下载的安装程序
    - 按照安装向导的提示进行操作

  3. 添加 添加 Mosquitto 安装路径到系统路径。

  4. 配置 Mosquitto:
    - 打开记事本,以管理员身份运行
    - 打开安装路径的文件: mosquitto.conf
    - 添加或修改以下行:

     listener 1883 # MQTT默认端口allow_anonymous true # 允许匿名连接(仅用于测试)persistence true # 开启持久化,重启后保留消息persistence_location G:\mosquitto\data # 持久化文件存储路径
    
  5. 启动 Mosquitto 服务:

    • 打开命令提示符(以管理员身份运行)
    • 输入以下命令:
       net start mosquitto
      
  6. 设置 Mosquitto 为自动启动:
    - 打开 “Services” (服务)
    - 找到 “Mosquitto Broker” 服务
    - 右击并选择 “Properties”
    - 将 “Startup type” 设置为 “Automatic”
    - 点击 “Apply” 然后 “OK”

  7. 测试 Mosquitto:
    - 打开两个命令提示符窗口
    - 在第一个窗口中,输入订阅命令: mosquitto_sub -t test/topic
    - 在第二个窗口中,输入发布命令: mosquitto_pub -t test/topic -m “Hello MQTT”
    - 如果在第一个窗口中看到 “Hello MQTT”,则说明 Mosquitto 运行正常

  8. 安全配置(生产环境)——启用用户认证:
    - 添加用户: mosquitto_passwd -c G:\mosquitto\passwd username
    - 在配置文件中启用认证: password_file G:\mosquitto\password.txt

  9. 监控和日志
    - 查看Mosquitto日志文件: G:\mosquitto\log\mosquitto.log
    - 使用工具如Prometheus+Grafana对Mosquitto进行监控

三,物联网设备通过 MQTT 发布与订阅数据

(一)模拟

由于手边暂时没有设备,这里就用python写一个程序来模拟。

1,首先开一个命令行窗口启动 MQTT:

G:\mosquitto>mosquitto -v
1725282189: mosquitto version 2.0.18 starting
1725282189: Using default config.
1725282189: Starting in local only mode. Connections will only be possible from clients running on this machine.
1725282189: Create a configuration file which defines a listener to allow remote access.
1725282189: For more details see https://mosquitto.org/documentation/authentication-methods/
1725282189: Opening ipv4 listen socket on port 1883.
1725282189: Opening ipv6 listen socket on port 1883.
1725282189: mosquitto version 2.0.18 running
  • 此命令会启动 Mosquitto 并以详细模式输出日志。

2,编写模拟物联网设备的 Python 客户端。
用 paho-mqtt Python 库,它是一个流行的 MQTT 客户端库,可以方便地发布和订阅消息。

import json
import random
import timeimport paho.mqtt.client as mqtt# MQTT Broker 的地址和端口
broker_address = "localhost"  # 本地服务器
broker_port = 1883# 设备 ID
device_id = "device_001"
data_topic = f"devices/{device_id}/data"
control_topic = f"devices/{device_id}/control"# MQTT 客户端
client = mqtt.Client(mqtt.CallbackAPIVersion.VERSION1, device_id)# 连接回调函数
def on_connect(client, userdata, flags, rc):print(f"Connected with result code {rc}")# 连接成功后,订阅控制命令主题client.subscribe(control_topic)# 消息回调函数
def on_message(client, userdata, msg):print(f"Message received from {msg.topic}: {msg.payload.decode()}")# 连接 MQTT 服务器
client.on_connect = on_connect
client.on_message = on_message
client.connect(broker_address, broker_port, 60)# 启动 MQTT 客户端的网络循环
client.loop_start()# 模拟设备定期发送数据
try:while True:# 模拟传感器数据sensor_data = {"temperature": round(random.uniform(20.0, 30.0), 2),"humidity": round(random.uniform(30.0, 70.0), 2),"timestamp": time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())}# 将数据发布到 data_topicclient.publish(data_topic, json.dumps(sensor_data))print(f"Published data: {sensor_data}")# 每隔 5 秒发送一次数据time.sleep(5)except KeyboardInterrupt:print("Simulation stopped.")# 停止 MQTT 客户端
client.loop_stop()
client.disconnect()
  • 运行 Python 脚本,模拟设备会定期向 devices/device_001/data 主题发布传感器数据

3,测试设备与 MQTT Broker 的通信。
开一个命令行窗口监听设备数据:

mosquitto_sub -h localhost -t "devices/device_001/data"

在这里插入图片描述
开一个命令行窗口发送控制命令:

mosquitto_pub -h localhost -t "devices/device_001/control" -m '{"command": "turn_on", "target": "fan"}'

在这里插入图片描述

(二)使用 ESP8266 + DHT11 + MicroPython

使用ESP8266外接一个DHT11温湿度传感器,用MicroPython编程,让ESP8266采集温湿度数据,并通过MQTT发送到部署在电脑上的MQTTbroker。

1,硬件:
- ESP8266 板子(如 NodeMCU 或 Wemos D1 Mini)
- DHT11 温湿度传感器

2,接线:
- DHT11 VCC → ESP8266 3.3V
- DHT11 GND → ESP8266 GND
- DHT11 数据引脚 → ESP8266 GPIO 引脚(如 GPIO 2/D4)

3,下载并将 MicroPython 固件刷入 ESP8266 板子上:

  • 安装 esptool.py:pip install esptool
  • 刷入固件:
    esptool.py --port /dev/ttyUSB0 erase_flash
    esptool.py --port /dev/ttyUSB0 --baud 460800 write_flash --flash_size=detect 0 esp8266-<version>.bin
    

4,连接到 ESP8266:
通过串口工具(如 PuTTY 或 Thonny),连接到 ESP8266,使用 REPL 进行调试和执行 MicroPython 代码。

5,安装 MQTT 和 DHT11 驱动:
MicroPython 中已经有内置的 umqtt 和 dht 模块,用于 MQTT 通信和 DHT11 传感器数据采集。

6,编写 MicroPython 代码:

import network
import time
import dht
import machine
from umqtt.simple import MQTTClient# Wi-Fi 配置
SSID = 'your_ssid'
PASSWORD = 'your_password'# MQTT Broker 配置
MQTT_BROKER = '192.168.1.100'  # 电脑上的 MQTT Broker IP
MQTT_TOPIC = 'home/temperature'
CLIENT_ID = 'esp8266_dht11'# 连接 Wi-Fi
def connect_wifi(ssid, password):wlan = network.WLAN(network.STA_IF)wlan.active(True)if not wlan.isconnected():print('Connecting to network...')wlan.connect(ssid, password)while not wlan.isconnected():passprint('Network connected:', wlan.ifconfig())# 初始化 DHT11 传感器
dht_pin = machine.Pin(2)  # DHT11 数据引脚接到 GPIO2/D4
sensor = dht.DHT11(dht_pin)# 连接 Wi-Fi
connect_wifi(SSID, PASSWORD)# 连接 MQTT
client = MQTTClient(CLIENT_ID, MQTT_BROKER)
client.connect()try:while True:# 采集数据sensor.measure()temperature = sensor.temperature()humidity = sensor.humidity()# 创建消息msg = f'{{"temperature": {temperature}, "humidity": {humidity}}}'print('Publishing:', msg)# 发布到 MQTT 服务器:消息会发布到 home/temperature 主题上。client.publish(MQTT_TOPIC, msg)# 每隔10秒发送一次数据time.sleep(10)except KeyboardInterrupt:print("Stopping...")client.disconnect()
  • 连接到 Wi-Fi。
  • 使用 DHT11 传感器采集温湿度数据。
  • 将数据通过 MQTT 协议发送到本地的 MQTT Broker。

四,云平台通过 MQTT 订阅数据与发布命令

云平台要做的就是:

  • 接收 MQTT 消息:Django 应用需要订阅 MQTT Broker 的温度数据。
  • 分析数据并作出决策:当接收到的温度数据超过 50°C 时,发送命令打开风扇,否则关闭风扇。
  • 通过 MQTT 发送控制命令:使用 Django 应用中的 MQTT 客户端发送控制命令(如 fan/on 或 fan/off)到 MQTT Broker,控制风扇。

1,接收温度数据并分析。
创建一个管理命令(management command)来启动 MQTT 客户端并订阅主题。

# myapp/
#  management/
#    commands/
#      mqtt_subscriber.pyimport json
import paho.mqtt.client as mqtt
from django.core.management.base import BaseCommandMQTT_BROKER = 'localhost'  # MQTT Broker 地址
TEMPERATURE_TOPIC = 'home/temperature'  # 订阅的温度主题
FAN_CONTROL_TOPIC = 'home/fan/control'  # 风扇控制命令主题
CLIENT_ID = 'django_subscriber'# 温度阈值
TEMP_THRESHOLD = 50  # 摄氏度# 定义 MQTT 客户端回调函数
def on_connect(client, userdata, flags, rc):print(f"Connected with result code {rc}")client.subscribe(TEMPERATURE_TOPIC)def on_message(client, userdata, msg):print(f"Message received from {msg.topic}: {msg.payload.decode()}")try:# 解析消息并提取温度数据data = json.loads(msg.payload.decode())temperature = data.get('temperature')# 检查温度是否超过阈值,并发送控制命令if temperature is not None:if temperature > TEMP_THRESHOLD:print("Temperature is above 50°C. Turning on the fan.")client.publish(FAN_CONTROL_TOPIC, 'on')else:print("Temperature is below 50°C. Turning off the fan.")client.publish(FAN_CONTROL_TOPIC, 'off')else:print("No temperature data found.")except Exception as e:print(f"Error processing message: {e}")class Command(BaseCommand):help = 'Start MQTT subscriber and control fan based on temperature'def handle(self, *args, **kwargs):# 创建 MQTT 客户端并设置回调client = mqtt.Client(CLIENT_ID)client.on_connect = on_connectclient.on_message = on_message# 连接 MQTT Brokerclient.connect(MQTT_BROKER, 1883, 60)# 开始 MQTT 客户端的循环try:client.loop_forever()except KeyboardInterrupt:client.disconnect()print("MQTT client disconnected.")

在项目根目录下运行以下命令启动 MQTT 订阅服务:

python manage.py mqtt_subscriber

2,ESP8266 接收风扇控制命令并控制风扇。
在 ESP8266 上编写代码,订阅 home/fan/control 主题,并根据接收到的消息来控制电机(模拟风扇)。

import machine
import network
import time
from umqtt.simple import MQTTClient# Wi-Fi 配置
SSID = 'your_ssid'
PASSWORD = 'your_password'# MQTT 配置
MQTT_BROKER = '192.168.1.100'  # 电脑上的 MQTT Broker IP
FAN_CONTROL_TOPIC = 'home/fan/control'
CLIENT_ID = 'esp8266_fan_controller'# 定义 GPIO 引脚来控制电机(风扇)
fan_pin = machine.Pin(5, machine.Pin.OUT)  # GPIO5/D1# 连接 Wi-Fi
def connect_wifi(ssid, password):wlan = network.WLAN(network.STA_IF)wlan.active(True)if not wlan.isconnected():print('Connecting to network...')wlan.connect(ssid, password)while not wlan.isconnected():passprint('Network connected:', wlan.ifconfig())# MQTT 回调函数
def on_message(topic, msg):print(f"Message received on topic {topic}: {msg}")if msg == b'on':fan_pin.on()  # 打开风扇print("Fan turned on")elif msg == b'off':fan_pin.off()  # 关闭风扇print("Fan turned off")# 连接 Wi-Fi
connect_wifi(SSID, PASSWORD)# 连接 MQTT Broker 并订阅主题
client = MQTTClient(CLIENT_ID, MQTT_BROKER)
client.set_callback(on_message)
client.connect()
client.subscribe(FAN_CONTROL_TOPIC)try:while True:client.check_msg()  # 检查是否有新消息time.sleep(1)except KeyboardInterrupt:print("Disconnecting from broker.")client.disconnect()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/415043.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pet薄膜高速度视觉软件丝印应用

卷对卷生产的PET薄膜&#xff0c;以其优异的物理、化学性能及尺寸稳定性&#xff0c;在塑料薄膜行业中占据重要地位。它透明度高、光泽度好&#xff0c;强韧性出色&#xff0c;抗张强度和抗冲击强度远高于一般薄膜&#xff0c;且具有良好的耐热、耐寒、耐油和耐酸性。这些特性使…

(二)、软硬件全开源智能手表,可全面高精度采集生命体征数据,进行健康检测。(HealthyPi Move)

HealthyPi Move是一款开放式硬件设备&#xff0c;可让您高精度地跟踪所有生命体征。它不仅仅是另一款带有心率监测器的智能手表&#xff0c;它还是手腕上的完整生命体征监测和记录设备&#xff0c;可以测量心电图(ECG)、光电容积脉搏波 (PPG)、SpO₂、血压(基于手指)、EDA/GSR、…

scikit-learn:一个强大的机器学习Python库

我是东哥&#xff0c;一个热衷于用Python解决实际问题的技术爱好者。今天&#xff0c;我要和大家分享一个强大的机器学习库——scikit-learn。你是否曾经对机器学习充满好奇&#xff0c;却觉得它高深莫测&#xff1f;scikit-learn库将帮你轻松入门&#xff0c;让你在机器学习的…

《TSMaster开发从入门到精通》——创作者背后的故事...

背后的故事 由汽车行业畅销书作者杨金升老师牵头&#xff0c;同星智能研发团队和应用支持团队全力参与的《TSMaster开发从入门到精通》书籍已由清华大学出版社印付。此书一经上架&#xff0c;就获得汽车行业人士的一致认可和好评&#xff08;京东自营100%好评率&#xff0c;并…

基于DPU与SmartNIC的K8s Service解决方案

1. 方案背景 1.1. Kubernetes Service介绍 Kubernetes Service是Kubernetes中的一个核心概念&#xff0c;它定义了一种抽象&#xff0c;用于表示一组提供相同功能的Pods&#xff08;容器组&#xff09;的逻辑集合&#xff0c;并提供了一种方式让这些Pods能够被系统内的其他组…

python-uinput虚拟输入

文章目录 python-uinput虚拟输入背景库简介&#xff1a;什么是python-uinput&#xff1f;安装指南&#xff1a;如何获取这个强大的工具&#xff1f;快速上手&#xff1a;五个核心函数的介绍与使用1. 创建虚拟设备2. 模拟键盘输入3. 模拟鼠标移动4. 模拟鼠标点击5. 模拟触摸屏操…

嵌入式全栈开发学习笔记---Linux系统编程(进程间通信)

目录 进程间通信概述 进程通信目的 进程间通信的发展 进程间通信分类 管道通信 无名管道 有名管道mkfifo() 信号 发送信号kill & raise 忽略信号signal() 发送信号alarm() 消息队列 消息队列使用的步骤 创建消息队列msgget() 读写消息队列msgrcv()/msgsnd()…

【C语言】十六进制、二进制、字节、位、指针、数组

【C语言】十六进制、二进制、字节、位 文章目录 [TOC](文章目录) 前言一、十六进制、二进制、字节、位二、变量、指针、指针变量三、数组与指针四、指针自加运算五、二维数组与指针六、指向指针的指针七、指针变量作为函数形参八、函数指针九、函数指针数组十、参考文献总结 前…

高经费打造的史诗级视觉盛宴,惊叹于每一帧的奢华

8月29日&#xff0c;备受期待的《指环王&#xff1a;力量之戒》第二季终于上线了。这一季一上架就放出了三集&#xff0c;立刻引发了影迷们的热烈讨论。 自从2022年首季首播以来&#xff0c;《指环王&#xff1a;力量之戒》就一直备受瞩目。尽管首季受到了不少争议&#xff0c;…

【C++ Primer Plus习题】9.4

问题: 解答: main.cpp #include <iostream> #include "sales.h" using namespace std; using namespace SALES;int main() {Sales s1, s2;double de[QUARTERS] { 12.1,32.1,42.1,51.1 };setSales(s1, de, QUARTERS);showSales(s1);cout << endl;setSal…

springsecurity快速入门

Spring Security 是一个功能强大且高度可定制的安全框架&#xff0c;主要用于保护基于 Spring 的应用程序。它提供了一整套用于身份验证、授权、加密、会话管理等功能的工具和 API&#xff0c;从而帮助开发者快速、有效地保护应用程序。 Configuration EnableWebSecurity pu…

Hive 安装

目录 Hive 安装 Hive 安装地址 Hive 安装部署 安装 Hive 启动并使用 Hive Hive 安装 Hive 安装地址 1&#xff09;Hive 官网地址 Apache Hivehttp://hive.apache.org/ 2&#xff09;文档查看地址 GettingStarted - Apache Hive - Apache Software Foundationhttps://cwik…

“转移阻抗”?求你们不要再玩新梗了!

高速先生成员--黄刚 在SI这个行业待久了&#xff0c;Chris发现其实也蛮卷的&#xff0c;就好像前几周写的电容滤板半径这篇文章&#xff0c;最近一些和Chris很熟的网友也评论说&#xff1a;现在好好做设计&#xff0c;好好做仿真都不行啦&#xff1f;一定要发明一些听起来很高…

科研绘图系列:R语言多组极坐标图(grouped polar plot)

介绍 Polar plot(极坐标图)是一种二维图表,它使用极坐标系统来表示数据,而不是像笛卡尔坐标系(直角坐标系)那样使用x和y坐标。在极坐标图中,每个数据点由一个角度(极角)和一个半径(极径)来确定。角度通常从水平线(或图表的某个固定参考方向)开始测量,而半径则是…

VMS-WS-485使用简明教程(485通信类型变送器)

VMS-WS-485使用简明教程 该文章仅供参考&#xff0c;编写人不对任何实验设备、人员及测量结果负责&#xff01;&#xff01;&#xff01; 文章主要介绍485通信类型变送器的硬件连接、软件配置、数据读写以温湿度计算 1 硬件连接 2 软件配置 将变送器硬件部分正确连接后&…

物联网之云平台架构

一&#xff0c;一个典型的物联网云平台 一个典型的物联网&#xff08;IoT&#xff09;云平台需要实现多个功能&#xff0c;以支持物联网设备的接入、数据处理、设备管理、实时控制等需求。 &#xff08;一&#xff09;核心功能 1&#xff0c;设备接入与管理&#xff1a; - 设…

PE文件结构详解(非常详细)

最近在参考OpenShell为任务栏设置图片背景时&#xff0c;发现里面使用了IAT Hook&#xff0c;这一块没有接触过&#xff0c;去查资料的时候发现IAT Hook需要对PE文件结构有一定的了解&#xff0c;索性将PE文件结构的资料找出来&#xff0c;系统学习一下。 PE文件结构 Portable…

Java中类的成员介绍

我的后端学习大纲 我的Java学习大纲 4.类的成员&#xff1a; 3.1.类的成员 -> 属性介绍&#xff08;成员变量&#xff09;&#xff1a; a.语法格式&#xff1a; 1.修饰符 数据类型 属性名 初始化值 ;2.说明1: 修饰符 常用的权限修饰符有&#xff1a;private、缺省、prot…

【论文】A Collaborative Transfer Learning Framework for Cross-domain Recommendation

Intro 业界常见的跨域建模方案主要分为两种范式[22][32][5][36][17][14][20]&#xff1a;1) 将源样本和目标样本进行联合和混合&#xff0c;然后执行多任务学习技术&#xff0c;以提高在所有域中的性能&#xff1b;2) 使用混合或数据丰富的源域数据预先训练模型&#xff0c;然…

等保 2.0 Linux主机测评

以下结果以CentOS 7 为例&#xff0c;按照等保2.0标准&#xff0c;2021报告模板&#xff0c;三级系统要求进行测评。 一、身份鉴别 a)应对登录的用户进行身份标识和鉴别&#xff0c;身份标识具有唯一性&#xff0c;身份鉴别信息具有复杂度要求并定期更换。 输入 more /etc/s…