MQTT 使用场景详解 什么是 MQTT MQTT(Message Queuing Telemetry Transport)是一种轻量级、基于发布/订阅模式的消息传输协议,由 IBM 的 Andy Stanford-Clark 和 Arcom 的 Arlen Nipper 于 1999 年设计。该协议专为低带宽、高延迟或不可靠的网络环境优化,特别适合物联网(IoT)设备通信。
MQTT 以其简洁的设计和极低的开销著称,最小报文只有 2 字节,广泛应用于智能家居、工业物联网、车联网等领域。
MQTT 核心特性 1. 发布/订阅模式 与传统的请求/响应模式不同,MQTT 采用发布/订阅模式:
发布者(Publisher):将消息发送到主题(Topic) 订阅者(Subscriber):订阅感兴趣的主题 Broker(代理):负责接收消息并转发给订阅者 这种松耦合的架构使得发布者和订阅者可以独立运行,无需直接连接。
2. QoS(服务质量) MQTT 提供三种服务质量级别:
QoS 0:最多分发一次(At most once)
发送一次,不确认 适用于对可靠性要求不高的场景 QoS 1:至少分发一次(At least once)
确认后重发,确保到达 适用于需要确保到达的场景 QoS 2:仅分发一次(Exactly once)
四次握手,确保唯一 适用于关键任务场景 3. 主题(Topic) 主题是 MQTT 的核心概念,采用分层结构:
1 2 3 home/livingroom/temperature home/bedroom/humidity industrial/factory1/sensor/pressure 支持通配符:
#:匹配多层路径 +:匹配单层路径 4. 遗嘱消息(Last Will) 当客户端异常断开时,Broker 可以发送预设的遗嘱消息,用于通知其他客户端设备离线。
IPsec VPN 详解 什么是 IPsec IPsec(Internet Protocol Security)是 IETF 制定的安全协议标准,用于在 IP 层提供安全的数据传输。它是企业网络中最广泛使用的 VPN 技术,也是网络层安全的基石。
IPsec 不是一个单一的协议,而是一个协议套件,包含多个子协议来实现不同安全功能。
IPsec 组件 1. 安全协议 AH(Authentication Header):提供数据完整性、源认证和防重放攻击 ESP(Encapsulating Security Payload):提供加密、完整性认证(常用) 2. 密钥交换协议 IKE(Internet Key Exchange):自动密钥协商和管理 3. 安全关联(SA) 定义通信双方如何保护数据 包括加密算法、密钥、生命周期等 工作模式 1. 传输模式(Transport Mode) 只加密数据部分(payload) 原始 IP 头保留 适用于主机到主机的通信 1 2 原始 IP 包: [IP Header][TCP][Data] IPsec 传输: [IP Header][ESP][TCP][Data][ESP Trailer] 2. 隧道模式(Tunnel Mode) 加密整个原始 IP 包 加上新的 IP 头 适用于网关到网关或网关到主机 1 2 原始 IP 包: [原始 IP][TCP][Data] IPsec 隧道: [新 IP Header][ESP][原始 IP][TCP][Data][ESP Trailer] IKE 阶段 Phase 1(建立 ISAKMP SA) 协商安全参数 认证对等体 建立第一阶段 SA 两种模式:
Tailscale 使用详解 什么是 Tailscale Tailscale 是一款基于 WireGuard 协议的零信任网络访问工具,由 Google 前员工创立。它简化了 VPN 的配置和管理,让用户可以轻松地在任意设备之间建立安全的点对点连接。
Tailscale 不需要复杂的服务器配置,它使用 Tailscale 提供的免费中继服务器(称为「DERP」)来帮助设备建立连接,在某些场景下也可以直接端到端连接。
核心特性 1. 零信任网络 基于设备身份认证 不再依赖传统 VPN 的网络边界 每个设备都需要独立认证 2. WireGuard 底层 继承 WireGuard 的高性能 端到端加密 快速连接 3. 简单易用 支持多平台(Windows、macOS、Linux、iOS、Android) 一键安装,自动配置 不需要专业知识 4. 内网穿透 可以在任意网络环境下访问设备 突破 NAT 和防火墙 支持 UDP 打洞 5. ACL 访问控制 基于用户和设备的细粒度控制 可以限制哪些设备可以互相访问 支持分组管理 应用场景 1. 远程办公 安全的远程访问公司电脑 访问公司内网资源 无需配置复杂 VPN 服务器 2. 家庭网络 远程访问家中设备(NAS、路由器、智能家居) 不需要公网 IP 安全的远程管理 3. 开发测试 访问测试环境服务器 团队成员间安全互联 快速搭建开发网络 4.
WireGuard VPN 使用详解 什么是 WireGuard WireGuard 是一款现代、快速、安全的 VPN 隧道协议,由 Jason A. Donenfeld 于 2015 年开发。它设计简洁、代码量极小(约 4000 行),同时提供了卓越的安全性和性能。
WireGuard 被认为是传统 VPN 协议(如 OpenVPN、IPsec)的理想替代品,已被纳入 Linux 内核主线,并在多个操作系统中得到支持。
WireGuard 的特点 1. 简洁高效 代码量极小,仅约 4000 行 配置简单,易于理解和维护 运行时资源占用低 2. 高速性能 采用最新的加密原语 内核级实现,数据处理效率高 比传统 VPN 协议快 3-4 倍 3. 安全可靠 使用 Curve25519 进行密钥交换 ChaCha20-Poly1305 用于数据加密 现代化加密设计,避免传统协议的已知问题 4. 跨平台支持 Linux(内核原生支持) macOS、Windows、iOS、Android 路由器(OpenWrt 等) 工作原理 WireGuard 基于以下核心技术:
密钥交换:使用 Curve25519 DH 算法 加密:使用 ChaCha20-Poly1305 AEAD 认证:基于公钥密码学 隧道:基于 UDP 协议 数据流过程 1 客户端 → 公钥加密 → WireGuard 隧道 → UDP 传输 → 公钥解密 → 服务器 安装配置 Linux 安装 1 2 3 4 5 6 7 8 # Ubuntu/Debian sudo apt install wireguard # CentOS/RHEL sudo yum install wireguard-tools # Arch Linux sudo pacman -S wireguard-tools 生成密钥对 1 2 3 4 5 6 7 8 9 # 生成私钥 wg genkey > privatekey # 生成公钥 wg pubkey < privatekey > publickey # 查看密钥 cat privatekey cat publickey 服务端配置 创建配置文件 /etc/wireguard/wg0.
OpenSpec 工程化规范总结 什么是 OpenSpec OpenSpec 是一个面向 AI 编码助手的规范驱动开发框架(Spec-Driven Development,SDD)。它的核心理念是在编写任何代码之前,先创建可审查的规范(Spec),让人类开发者和 AI 编码助手能够就项目意图达成共识。
该项目在 GitHub 上已获得 37,000+ 颗星,是 AI 开发工具领域最受欢迎的项目之一。
核心价值 1. 解决 AI 编程的沟通问题 传统编程中,开发者通过代码表达意图。但 AI 编程助理解读代码时可能会产生偏差,导致:
实现与预期不符 重复修改 项目失控 OpenSpec 通过在编码前明确定义规范来解决这个问题。
2. 版本控制意图 OpenSpec 充当「意图的版本控制」:
规范文件可以被审查 可以版本化管理 可以追踪意图的演变 便于人类和 AI 协同理解 3. 防止「氛围编程」 「Vibe Coding」(氛围编程)是指盲目跟随 AI 生成代码,缺乏深思熟虑的设计。OpenSpec 强制要求在编码前思考和规划。
OpenSpec 规范结构 1. Project Spec(项目规范) 定义项目的整体结构和目标:
1 2 3 4 5 6 7 name: my-project description: A web application for task management version: 1.
Superpowers 自动化使用指南 什么是 Superpowers Superpowers 是 OpenCode 平台推出的一套 AI 技能框架,旨在为 AI Agent 提供专家级能力。通过 Superpowers,用户可以将特定领域的知识和工作流封装为可重用的技能(Skills),让 AI 在执行任务时能够自动调用这些技能。
Superpowers 的核心理念是「让 AI 具备专业领域知识」,就像为 AI 配备了一个随身携带的专家团队。
Superpowers 架构 技能类型 Superpowers 将技能分为两类:
Rigid Skills(刚性技能):严格遵循预设流程,如 TDD(测试驱动开发)、Debugging
使用时必须完全按照规范执行 不允许随意调整流程 Flexible Skills(柔性技能):可以灵活适应上下文,如 Patterns
可以根据实际情况调整实现方式 需要理解技能背后的原理 技能层级 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 Superpowers ├── 基础技能(Built-in) │ ├── playwright │ ├── frontend-ui-ux │ ├── git-master │ ├── dev-browser │ ├── review-work │ └── ai-slop-remover │ ├── 用户技能(User-installed) │ ├── doc-coauthoring │ ├── blog-do-publish │ ├── pdf │ ├── docx │ ├── xlsx │ ├── pptx │ ├── mcp-builder │ └── article-writer │ └── 超级技能(Superpowers) ├── using-superpowers ├── brainstorming ├── test-driven-development ├── systematic-debugging ├── verification-before-completion ├── requesting-code-review ├── receiving-code-review ├── finishing-a-development-branch ├── writing-plans ├── executing-plans ├── subagent-driven-development ├── writing-skills ├── skill-creator ├── using-git-worktrees └── dispatching-parallel-agents 如何使用 Superpowers 1.