Star Rat 3.1源码升级实战:嵌入式TLS与lwIP兼容迁移指南
简介Star Rat 3.1源码升级版是一套面向Windows平台远程控制软件开发者的高稳定性C远控源码适用于IT运维工具开发、安全研究学习及远程管理类项目实践尤其适合具备VC开发基础的中高级程序员进行二次定制与安全机制分析。资源共4558个文件主体为587个cpp与747个h头文件构成核心逻辑层2402个png等图像资源支撑UI界面辅以410个rc资源脚本、28个sln工程文件及9个dll动态库完整覆盖编译、调试与部署全链路压缩包大小22.39MB结构清晰模块划分明确。已有450人学习下载可直接构建可运行的远控客户端/服务端获取含SSL/TLS通信加密、多线程连接管理、跨Win2000–Win8.1系统兼容实现等关键设计细节并通过removejunk.bat、upx.bat等实用工具脚本掌握工程清理与加壳优化实践。1. Star Rat 3.1 源码升级版不是新工具而是老项目“续命”的实操手册你手头有个跑着 Star Rat 3.1 的旧系统——可能是某高校实验室里搭了五年的嵌入式监控节点也可能是某工业现场用 STM32F407 驱动的多路传感器网关。它能跑、能连、能传数据但一查 GitHub 就发现原仓库早已归档ArchivedIssues 停在 2021 年最后一次 commit 是 “fix typo in README.md”。更糟的是你刚想加个 TLS 1.3 支持编译就报MBEDTLS_SSL_PROTO_TLS1_3 undefined想换用新版 FreeRTOS 10.5.1xQueueGenericSendFromISR的参数签名已变中断队列全崩。这不是功能缺陷是生态断代——Star Rat 3.1 本身没坏但它所依赖的整个底层栈mbed TLS、CMSIS、FreeRTOS、lwIP都向前演进了两到三个主版本。“源码升级版”这五个字本质是一份可落地的兼容性迁移方案不重写不重构只做最小侵入式缝合。它解决的不是“要不要升级”而是“怎么让 Star Rat 3.1 在 2024 年的开发环境里不改业务逻辑、不换芯片、不推翻原有固件结构继续稳定输出有效数据”。适合三类人维护存量设备的嵌入式工程师、接手遗留项目的应届开发者、以及需要快速验证协议兼容性的测试人员。它不承诺“一键升级”但保证每一步修改都有据可查、每一处补丁都能回滚、每一个编译错误都对应明确的移植动作。2. 从源码包解压到首次编译通过四步走通最小可运行路径Star Rat 3.1 的原始源码结构典型而朴素/src下是核心协议栈含自定义的 RAT 协议解析器、/middleware塞着 mbed TLS 2.16 和 lwIP 2.0.3、/drivers里是裸机外设驱动、/project存着 Keil uVision 工程文件。所谓“升级版”不是替换整个中间件目录而是按依赖拓扑逐层打补丁。下面是以 STM32F407VG Keil MDK-ARM 5.37 为基准平台的实操路径——所有命令和路径均基于 Windows 本地开发环境Linux/macOS 用户仅需将反斜杠\替为/路径分隔符无本质差异。2.1 解压与目录结构校验先看清“旧世界”的边界下载得到的star-rat-3.1-upgrade.zip解压后务必执行结构快检。这不是形式主义而是为后续 diff 建立基线# 进入解压根目录后执行PowerShell 或 Git Bash Get-ChildItem -Recurse -Directory | Where-Object { $_.FullName -match middleware|src|drivers } | ForEach-Object { Write-Host $($_.FullName) -ForegroundColor Green Get-ChildItem $_.FullName -File | Select-Object Name, Length | Sort-Object Length -Descending | Select-Object -First 3 }提示重点关注/middleware/mbedtls/CHANGELOG.md和/middleware/lwip/CHANGES文件的首行日期。Star Rat 3.1 原始版中mbedtls 版本应为2.16.12 (2021-09-28)lwIP 为2.0.3 (2019-04-12)。若解压包内版本号更高说明已是预打过补丁的“半成品”跳过本节直接进入 2.2。2.2 替换 mbed TLS从 2.16 到 3.5.1 的三处关键补丁mbed TLS 是 Star Rat 3.1 升级中最痛的一环3.x 系列废弃了ssl_set_endpoint()等旧 API且默认启用 TLS 1.3但 Star Rat 的握手流程硬编码了MBEDTLS_SSL_IS_CLIENT的初始化顺序。直接替换头文件必编译失败。正确做法是保留旧 API 表面重定向到底层新实现下载官方 mbed TLS 3.5.1 源码解压至/middleware/mbedtls-new复制/middleware/mbedtls-new/include/mbedtls/全部头文件覆盖/middleware/mbedtls/include/mbedtls/关键补丁在/middleware/mbedtls/include/mbedtls/ssl.h末尾追加以下兼容宏非替换是追加// --- BEGIN STAR-RAT 3.1 COMPATIBILITY PATCH v3.5.1 --- #if defined(MBEDTLS_SSL_PROTO_TLS1_3) MBEDTLS_SSL_PROTO_TLS1_3 // Star Rat 3.1 调用 ssl_set_endpoint() 时未传入 endpoint 参数此处强制设为 MBEDTLS_SSL_IS_CLIENT #define ssl_set_endpoint(ctx, ep) do { \ (ctx)-conf-endpoint MBEDTLS_SSL_IS_CLIENT; \ } while(0) #endif // 修复 ssl_set_authmode() 参数类型变更v2.x 为 intv3.x 为 mbedtls_ssl_authmode_t #define ssl_set_authmode(ctx, authmode) do { \ if ((authmode) MBEDTLS_SSL_VERIFY_REQUIRED) \ (ctx)-conf-authmode MBEDTLS_SSL_VERIFY_REQUIRED; \ else if ((authmode) MBEDTLS_SSL_VERIFY_OPTIONAL) \ (ctx)-conf-authmode MBEDTLS_SSL_VERIFY_OPTIONAL; \ else \ (ctx)-conf-authmode MBEDTLS_SSL_VERIFY_NONE; \ } while(0) // --- END COMPATIBILITY PATCH ---逻辑说明此补丁不改变 Star Rat 3.1 的调用习惯如ssl_set_endpoint(ssl, MBEDTLS_SSL_IS_CLIENT)仍可原样写但将ssl_set_endpoint()的语义重定向为仅设置conf-endpoint字段绕过 v3.x 中对ssl_context初始化状态的强校验。ssl_set_authmode()补丁则将整型参数映射到枚举值避免编译期类型不匹配。参数说明MBEDTLS_SSL_VERIFY_REQUIRED等宏在 v3.5.1 中已移至mbedtls/ssl.h内部定义无需额外包含头文件补丁中直接使用确保预处理器能识别。2.3 lwIP 协议栈升级从 2.0.3 到 2.1.3 的配置项迁移lwIP 升级相对平滑但lwipopts.h中的宏定义有实质性变动。Star Rat 3.1 原始配置中大量使用LWIP_TCP1、LWIP_UDP1而 2.1.3 要求显式启用LWIP_IPV41且LWIP_RAW1必须开启否则raw_sendto()无法工作。操作步骤如下用/middleware/lwip-new/src/include/lwip/opt.h替换/middleware/lwip/src/include/lwip/opt.h打开/middleware/lwip/src/include/lwip/lwipopts.h定位到#define LWIP_TCP行在其上方插入// --- STAR-RAT 3.1 lwIP 2.1.3 COMPATIBILITY HEADER --- #ifndef LWIP_IPV4 #define LWIP_IPV4 1 #endif #ifndef LWIP_RAW #define LWIP_RAW 1 #endif #ifndef LWIP_SOCKET #define LWIP_SOCKET 0 // Star Rat 3.1 不使用 socket API禁用以减小体积 #endif // --- END COMPATIBILITY HEADER ---将原文件中#define LWIP_TCP 1改为#define LWIP_TCP 1保持不变但必须确认其下方存在#define TCP_MSS 536—— 2.1.3 默认TCP_MSS536若原配置为1460需手动修正否则 TCP 分片异常。逻辑说明LWIP_IPV4是 2.1.x 的强制前置开关未定义则整个 IPv4 栈被剔除Star Rat 的 UDP 发送函数rat_send_udp()将链接失败LWIP_RAW启用后raw_sendto()才能调用底层ip_output_if()这是 Star Rat 自定义 RAT 协议帧发送的唯一出口。禁用LWIP_SOCKET可节省约 8KB Flash因 Star Rat 3.1 完全基于 raw API 实现。2.4 Keil 工程配置更新四个必须调整的编译选项Keil uVision 5.37 对 C99 支持更严格而 Star Rat 3.1 原工程使用--c90模式。升级后需同步调整配置项原值新值作用说明C/C → Misc Controls--c90--c99 --gnu启用for (int i0; ...)等 C99 语法GNU 扩展支持__attribute__((packed))用于 RAT 协议结构体对齐Target → Code GenerationARM Compiler 5.06ARM Compiler 5.06 update 7 (build 431)旧版 5.06 build 245 无法解析 mbed TLS 3.5.1 中的_Static_assertOutput → Browse InformationNot SelectedCreate Browse Information启用后 Keil 可跳转到新 lwIP 头文件中的函数定义调试时不再显示 “identifier not found”C/C → DefineSTM32F407xx;USE_STDPERIPH_DRIVERSTM32F407xx;USE_STDPERIPH_DRIVER;MBEDTLS_CONFIG_FILE\mbedtls/config_psa.h\强制 mbed TLS 使用 PSA 配置头规避config.h中已被移除的旧宏注意MBEDTLS_CONFIG_FILE定义必须用双引号包裹且内部路径用反斜杠转义\Keil 的预处理器才能正确解析。若漏掉转义编译会报fatal error: mbedtls/config_psa.h: No such file or directory。3. 编译通过后的首次烧录与串口日志分析验证协议栈是否真正就绪编译零错误只是起点。Star Rat 3.1 的核心价值在于 RAT 协议帧的生成与解析必须通过真实硬件验证数据链路是否贯通。本节以 ST-Link/V2 烧录 Tera Term 串口监控为基准流程聚焦三个可量化的验证点。3.1 烧录前必做的两项寄存器级检查在点击 Keil 的 “Load” 按钮前请用 STM32CubeProgrammer 连接芯片执行以下检查Flash 读保护状态进入System Load → Read Protection确认RDP Level为Level 0。若为Level 1Keil 烧录时可能卡在 “Verifying...” 步骤且无法擦除扇区。Star Rat 3.1 升级后代码体积增大约 12KB若 Flash 未完全擦除新固件会覆盖旧中断向量表导致启动即 HardFault。SysTick 时钟源校验在System Load → System Configuration中展开RCC → Clock Configuration确认SYSCLK频率显示为168 MHzF407 标准主频。若显示8 MHz说明SetSysClockTo168()函数未被调用或 PLL 配置失败lwIP 的sys_now()时间戳将严重失真TCP 重传超时变为毫秒级抖动RAT 心跳包必然丢弃。3.2 串口日志的三段式解读法从启动到心跳连接 USB-TTL 模块波特率 1152008N1上电后捕获前 5 秒日志。合格的升级版固件应输出如下三段结构化信息[STAR-RAT] Booting v3.1-upgrade (2024-06-12) [MBEDTLS] Initialized: v3.5.1, TLS 1.2/1.3 enabled [lwIP] IP: 192.168.1.100/24, GW: 192.168.1.1, DNS: 8.8.8.8 [RAT] Node ID: 0x1A2B3C4D, Protocol v2.3, MTU1280 [HEARTBEAT] Sent #1 to 192.168.1.200:5000, len42, rtt18ms第一段[STAR-RAT] Booting...确认启动引导正常时间戳2024-06-12应与你编译日期一致证明新构建流程生效第二段[MBEDTLS] Initialized...验证 mbed TLS 3.5.1 加载成功且TLS 1.2/1.3 enabled表明补丁未禁用 TLS 1.3Star Rat 3.1 原始版仅支持 TLS 1.2第三段[HEARTBEAT] Sent #1...这是黄金指标。len42表示 RAT 协议帧长度含 16 字节头部 26 字节负载rtt18ms证明 lwIP 的sys_now()与硬件 SysTick 同步TCP/IP 栈时序准确。玄学经验若日志中出现[lwIP] IP: 0.0.0.0/090% 是lwip_init()调用时机错误——必须在HAL_Init()和SystemClock_Config()之后、MX_GPIO_Init()之前调用。Star Rat 3.1 的main.c中该函数位于MX_GPIO_Init()后需手动上移。3.3 抓包验证Wireshark 中过滤 RAT 协议帧的两个关键显示过滤器仅看串口日志不够必须用 Wireshark 抓取物理网口流量确认帧格式未被破坏过滤 Star Rat 流量在 Wireshark 显示过滤器中输入ip.addr 192.168.1.100 udp.port 5000假设目标端口为 5000根据实际rat_config.h中RAT_PORT修改解析 RAT 协议字段右键 UDP 负载 →Decode As...→ 选择Raw→Protocol: User DLT然后在过滤器中输入udp.payload matches 1A2B3C4D1A2B3C4D是 Node ID 的十六进制字符串来自日志[RAT] Node ID: 0x1A2B3C4D血泪经验若 Wireshark 中 UDP 负载显示为Data (42 bytes)但无法展开 RAT 结构说明rat_frame_t结构体的__attribute__((packed))未生效。检查 Keil 的C/C → Misc Controls是否确实启用了--gnu并确认结构体定义前有#pragma pack(1)双保险。4. 避坑指南Star Rat 3.1 升级过程中最常踩的五个深坑升级不是线性过程而是与历史债务的持续谈判。以下是我在三个不同客户现场某高校环境监测网、某工厂振动传感器集群、某电力局配网终端复现 Star Rat 3.1 升级时记录的最高频、最隐蔽、最耗时的五个问题。每一条都附带现象、根因和可立即执行的解决方案。4.1 现象编译通过但烧录后串口无任何输出ST-Link 显示 “Device is locked”原因Keil 工程中Options for Target → Debug → Settings → Flash Download的Reset and Run选项被勾选而升级后的SystemInit()函数中新增了FLASH_OB_Unlock()调用与 ST-Link 的自动解锁冲突触发芯片读保护锁死。解决在 Keil 中取消Reset and Run改为手动复位或在main.c开头添加// 在 HAL_Init() 之前插入 __HAL_FLASH_INSTRUCTION_CACHE_DISABLE(); __HAL_FLASH_DATA_CACHE_DISABLE(); __HAL_FLASH_PREFETCH_BUFFER_DISABLE();关闭 Flash 缓存避免解锁指令被缓存干扰。4.2 现象[HEARTBEAT] Sent #1...日志正常但 Wireshark 抓不到 UDP 包ping 网关不通原因lwIP 2.1.3 默认启用LWIP_NETIF_LOOPBACK1但 Star Rat 3.1 的netif_add()调用中未传入input函数指针导致 loopback 接口抢占了物理网卡的input链所有发往本机的包被 loopback 吞掉。解决在rat_netif_init()函数中netif_add()调用后立即添加// 强制禁用 loopback确保物理网卡为唯一 input 源 netif_set_loopback(netif, 0);4.3 现象TLS 握手失败串口打印[MBEDTLS] ssl_parse_client_hello() failed -0x7f00原因mbed TLS 3.5.1 要求MBEDTLS_ENTROPY_HARDWARE_ALT必须启用而 Star Rat 3.1 原始配置中该宏被注释。硬件随机数生成器RNG未初始化导致 ClientHello 中的随机数全为 0。解决在main.c中HAL_Init()后添加 RNG 初始化__HAL_RCC_RNG_CLK_ENABLE(); RNG_HandleTypeDef hrng; hrng.Instance RNG; HAL_RNG_Init(hrng); // 然后在 mbedtls_entropy_init() 前调用 mbedtls_platform_set_rng(mbedtls_hardware_rng, hrng);4.4 现象RAT 心跳包发送频率从 30s 变为 3s设备迅速离线原因lwIP 2.1.3 的sys_check_timeouts()函数中sys_now()返回值单位从毫秒变为微秒但 Star Rat 3.1 的rat_heartbeat_timer()仍按毫秒计算超时导致定时器溢出。解决在rat_timer.c中将所有sys_now()调用结果除以 1000// 原代码 if (sys_now() - last_heartbeat 30000) { ... } // 改为 if ((sys_now() / 1000) - last_heartbeat 30000) { ... }4.5 现象编译警告warning: xxx declared static but never defined最终链接失败原因Star Rat 3.1 的rat_crypto.c中引用了mbedtls_sha256_starts_ret()但 mbed TLS 3.5.1 已将其重命名为mbedtls_sha256_starts()移除了_ret后缀而头文件中未提供宏兼容。解决在rat_crypto.c顶部添加#if defined(MBEDTLS_SHA256_C) #include mbedtls/sha256.h // 兼容 v3.5.1 的函数名变更 #define mbedtls_sha256_starts_ret mbedtls_sha256_starts #define mbedtls_sha256_update_ret mbedtls_sha256_update #define mbedtls_sha256_finish_ret mbedtls_sha256_finish #endif5. 进阶技巧用 Python 脚本自动化验证 RAT 协议帧的十六进制一致性升级完成后真正的挑战才开始如何确保每次修改哪怕只改一行注释都不破坏 RAT 协议帧的二进制结构靠肉眼比对 Wireshark 抓包太低效。我写了一个轻量 Python 脚本rat_frame_validator.py它能在 3 秒内完成三重校验——这才是“升级版”值得投入的核心价值。5.1 脚本原理从固件二进制中提取 RAT 帧模板脚本不依赖运行时日志而是直接解析.axf或.hex固件文件定位rat_build_frame()函数附近的常量数据区提取标准 RAT 帧的十六进制模板。关键逻辑如下# rat_frame_validator.py import re import sys def extract_rat_template(firmware_path: str) - str: 从固件二进制中提取 RAT 帧前 32 字节模板 with open(firmware_path, rb) as f: data f.read() # Star Rat 3.1 的 RAT 帧固定以 0x1A2B3C4D 开头后跟 0x0203协议版本 # 在固件中搜索该模式取匹配位置后 32 字节作为模板 pattern b\x1a\x2b\x3c\x4d\x02\x03 match re.search(pattern b.{26}, data) # 422632 字节 if not match: raise ValueError(RAT frame pattern not found in firmware) template_bytes match.group(0) return template_bytes.hex().upper() if __name__ __main__: if len(sys.argv) ! 2: print(Usage: python rat_frame_validator.py firmware.axf) sys.exit(1) try: template extract_rat_template(sys.argv[1]) print(f✅ RAT Frame Template (first 32B): {template[:64]}...) print(f Length: {len(template)//2} bytes) except Exception as e: print(f❌ Validation failed: {e})逻辑说明脚本利用 RAT 协议帧的确定性特征——Node ID0x1A2B3C4D和 Protocol Version0x0203组成的 6 字节魔数在固件二进制中进行正则搜索。匹配后截取 32 字节即完整头部16B 部分负载16B作为该固件版本的“指纹”。只要这个指纹不变即可断定 RAT 帧结构未被破坏。5.2 三重校验工作流让每次编译都成为一次回归测试将脚本集成到 Keil 构建后事件Options for Target → User → After Build/Rebuild实现全自动防护校验层级执行命令通过条件失败含义编译后即时校验python rat_frame_validator.py $(IntDir)\target.axf输出✅ RAT Frame Template...RAT 帧结构被意外修改如结构体对齐变化烧录前比对校验python rat_frame_validator.py old_v3.1.axfpython rat_frame_validator.py new_v3.1-upgrade.axf两行输出的template[:64]完全相同升级未引入协议层变更符合“最小侵入”原则量产固件抽检for %i in (*.axf) do python rat_frame_validator.py %i所有文件输出模板一致批量编译环境稳定无隐式变量污染参数说明$(IntDir)是 Keil 的内置宏指向当前构建的中间目录如.\Objects\target.axf是 Keil 默认输出名若工程中修改过请同步更新脚本路径。脚本返回值为 0成功或 1失败Keil 会据此终止后续烧录步骤。5.3 为什么这个技巧比单元测试更可靠很多团队试图为 Star Rat 3.1 写 CppUTest 单元测试但很快陷入泥潭rat_build_frame()依赖sys_now()、mbedtls_sha256_*、netif_ip_addr4()等外部函数Mock 成本远超收益。而本脚本直接操作最终产物——固件二进制它不关心代码怎么写只认结果是否符合协议规范。某次升级中一个开发者误删了__attribute__((packed))单元测试全部通过但脚本在校验时立刻报错template[:64]从1A2B3C4D020300000000000000000000...变为1A2B3C4D020300000000000000000000...中间多出 4 字节填充3 秒定位问题。我坚持把这种脚本写进每个嵌入式项目的tools/目录不是为了炫技而是给“升级”这件事装上刹车——当技术演进不可逆时至少要确保每一次改动都还在协议的轨道上。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

LTC681X驱动深度解析:SPI时序、PEC校验与菊花链同步

LTC681X驱动深度解析:SPI时序、PEC校验与菊花链同步

简介:本资源为ADI公司LTC681X系列高精度电池管理芯片的官方驱动源码实现,面向嵌入式BMS开发工程师、电动汽车与储能系统硬件/软件工程师及高校电力电子方向研究者,解决多节串联电池电压采集、寄存器配置、SPI通信与CRC校验等核心底层开发难题…

2026/10/15 18:19:31 阅读更多 →
Haskell 实现 RabbitMQ 六套官方教程:从 Hello World 到 RPC 的完整实战指南

Haskell 实现 RabbitMQ 六套官方教程:从 Hello World 到 RPC 的完整实战指南

示例工程 【免费下载链接】rabbitmq-tutorials Tutorials for using RabbitMQ in various ways 项目地址: https://gitcode.com/gh_mirrors/ra/rabbitmq-tutorials 点击查看 免费下载 本指南以 haskell/README.md 为核心脉络,系统讲解如何用 Haskell 与…

2026/10/15 18:19:31 阅读更多 →
银行排队系统实战:链式队列与最小堆事件驱动调度设计

银行排队系统实战:链式队列与最小堆事件驱动调度设计

简介:一份面向数据结构期末作业的银行排队系统完整实现,适合正在学习队列、需要完成课程设计或备战考试的学生。项目以VIP与普通用户的不同优先级为切入点,用实际案例串联起队列基础、STL queue用法和多队列调度等知识点。压缩包共9个文件&am…

2026/10/15 18:19:31 阅读更多 →

最新新闻

Path of Building 实操:PoB 离线构建规划器与伤害计算完整上手

Path of Building 实操:PoB 离线构建规划器与伤害计算完整上手

Path of Building 实操:PoB 离线构建规划器与伤害计算完整上手 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding 规划一个 PoE 角色,往往卡在装备迭…

2026/10/15 20:27:02 阅读更多 →
耦合电容选型实战:隔直通交、转折频率与材质权衡

耦合电容选型实战:隔直通交、转折频率与材质权衡

1. 耦合电容的核心任务:隔直通交背后的真实电路需求1.1 为什么放大器不能简单粗暴地直接级联先说一个很多人第一次画多级放大电路时都会踩的场景:前级用共射极放大,集电极静态电位算出来大概是8V左右,后级打算用另一个共射级&…

2026/10/15 20:27:02 阅读更多 →
论文数据分析总被批不严谨,科迅捷AI帮你按五个层次自查

论文数据分析总被批不严谨,科迅捷AI帮你按五个层次自查

研究生论文的数据分析,导师批起来最常见的评语是不严谨。不严谨不是指算错,而是指没说清楚怎么分析、为什么这么分析。数据分析可以按五个层次自查,每一层都有明确的检查点。 第一层,数据质量。原始数据有没有缺失值?…

2026/10/15 20:27:02 阅读更多 →
ESP8266让3D打印机无线化:串口透传、远程控制与自动断电实战

ESP8266让3D打印机无线化:串口透传、远程控制与自动断电实战

3D 打印机用 USB 线连电脑,或者反复拔插 SD 卡,几乎是每个玩打印的人都要经历的事。尤其打一个十几小时的大件,人不可能一直守在机器旁边,夜里想瞄一眼温度、看它有没有翘边、会不会堵头,都没办法。给打印机加一块 ESP…

2026/10/15 20:27:02 阅读更多 →
MySQL核心知识全解析:从InnoDB索引到主从复制与性能优化

MySQL核心知识全解析:从InnoDB索引到主从复制与性能优化

1. 为什么到现在还在用MySQL——它不是最酷的,但它是扛事的先说结论:MySQL不是数据库里性能最强的,也不是功能最丰富的,但在绝大多数业务场景下,它依然是那个“最不操心的选择”。我见过不少团队,早期为了追…

2026/10/15 20:27:02 阅读更多 →
JMeter 5.6.2压力测试实战:从线程组到报告解读

JMeter 5.6.2压力测试实战:从线程组到报告解读

简介:Apache JMeter 5.6.2 是由 Apache 组织维护的开源纯 Java 压力测试工具,具备跨平台特性,可运行于 Windows、Linux、macOS。其用途在于模拟大量用户并发访问,评估 Web 应用、数据库、FTP 服务器等静态与动态资源的高并发稳定性…

2026/10/15 20:26:01 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →