Skip to content
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
品牌标识

AIRIOT智慧系统搭建平台经验交流

S

szj

@szj
关于
帖子
主题
群组
粉丝
关注

帖子

最新 最佳 有争议的

  • 授权丢了,机器码一直变
    S szj

    换服务器不显示。服务器没有问题,为什么要换?!
    换服务器,费用谁出? 差旅费?调试费?

    我们写了java代码,进行2轮测试:300次,1000次,做了分析报告。
    你们仔细研究一下。已经上传。
    结论已经非常明显了。

    c69b435a-64ad-4c9e-b8d7-170ab5a967a2-image.png
    这是最关键的发现:

    不同取数通道,对同一个 WMI 字段返回的字符串末尾控制符数量不一样。
    WMIC 多一个 \r,PowerShell 少一个 \r。

    二、300 轮统计
    所有字段 300 轮全部稳定:控制符变体 = 0,内容变化 = 0
    原始串 MD5 = 1 种,归一化串 MD5 = 1 种
    通道错误 86 次 / 总读取 2314 次,约 3.7%
    也就是说:在当前这个独立 JVM、Administrator 身份、前台 cmd 的环境下,机器码是稳定的。

    300 轮报告证明了跳变的物质基础已经存在:

    控制符污染是真实的:所有字段值末尾都带 \r,WMIC 还多一个;
    不同通道控制符数量不同:平台代码如果有多个取数路径(WMIC / PowerShell / OSHI / JNI),或者在错误重试时切换路径,就会得到不同的原始输入;
    通道错误率 3.7%:失败后的兜底逻辑如果使用不同通道或不同解析方式,就会产生不同的机器码。


  • 授权丢了,机器码一直变
    S szj

    采集1000次,每30秒采集一次。采集了一个晚上。结果没有丝毫变化。
    好几个项目,安装的Windows系统版本 、以及服务器 配置,都是经常用的,都是Windows Server 2022 Standard。


  • 授权丢了,机器码一直变
    S szj

    powershell脚本 采集1000次,无变化


  • 授权丢了,机器码一直变
    S szj

    我再给你采集1000次看看。到时候 把采集的powershell脚本、采集结果都发给你。


  • 授权丢了,机器码一直变
    S szj

    实际的值,没有变化。
    我采集了20次,都没有变化。我不是发给你看过了吗?
    平台采集的值有变化,恰恰究竟是平台的bug所在。


  • 授权丢了,机器码一直变
    S szj

    我们做了几年了,好几个项目/服务器了。没遇到过这样的情况。服务器是用的 工控机;不是联想、戴尔这样的服务器。
    之前从未出现这样的情况。仅此一次。


  • 授权丢了,机器码一直变
    S szj

    请尽快看下这个问题呢。现在平台一直不能用了。重启好一会会。然后又不行了。


  • 授权丢了,机器码一直变
    S szj

    机器没什么特别的。之前几台机器,也是这样的。

    一、字段「有时显示 Default string、有时显示为空」的原因

    核心结论

    硬件的真实值始终是 Default string,显示为空不是值真的变成了空字符串,而是不可见的回车 / 换行控制符导致的前端渲染异常,属于 “肉眼看起来空、实际字符串有内容” 的假象。

    原理与证据

    1. 不可见控制符随机混入
      Web 环境通过 COM 组件读取 WMI 时,会随机在字符串尾部残留回车符 \r(ASCII 0x0D)或换行符 \n(ASCII 0x0A):
      • 纯文本 Default string(14 字节)→ 单元格正常显示文字
      • 带回车 Default string\r(15 字节)→ \r 会让光标回到行首,文字被自身覆盖,单行单元格看起来就是空白
      • 带回车换行 Default string\r\n(16 字节)→ 文字折行到第二行,超出单元格显示范围,看起来也是空白
    2. 直接佐证
      表格中同样显示 Default string 的行,机器码却完全不同—— 说明肉眼看到的字符串一致,但实际参与计算的字节内容不同(多了看不见的控制符),这是最核心的证据。
      反过来,部分行字段显示为空,但机器码和正常显示的行完全一致,也说明值本身没有变,只是渲染出来看不见。

    彻底修复方案
    在生成机器码的代码中,对所有硬件字段做标准化清洗后再参与哈希:

    • 强制修剪首尾所有空白 / 控制符:Trim()(去除空格、\r、\n、制表符)
    • 占位值统一替换:把 Default string、空值统一替换为固定常量(如 "EMPTY_SN"),彻底放弃原始 WMI 返回值
    • BIOS 版本统一序列化:固定只取数组第二个元素(版本日期字符串),不要直接序列化整个数组

  • 授权丢了,机器码一直变
    S szj

    好的,发给你~~


  • 授权丢了,机器码一直变
    S szj

    重启服务器,可以登录系统。
    历史授权中,没有看到机器信息。

    image.png


  • 授权丢了,机器码一直变
    S szj

    1、机器码正常的:7811a18baa24dee80831cd8c5376ff9ca9b963
    有时候变化的:466fdb12c1bfd6a04da78cea5945dde4a9b963
    有时候变化的:7dc8556e7b7581aeec26410197ae22f8a9b963
    有时候变化的(我贴在一开始截图的)cf07开头的**********************a9b963
    其他的我也没观察到,不知道会不会变成其他的了。

    2、core版本:v4.5.6
    3、负载很低,不超过100个点位。
    image.png

    4、没做什么操作,部署后没去管他,一直运行的。
    5、上传授权文件失败,第一次报错:

    image.png

    第二次报错:
    image.png


  • 授权丢了,机器码一直变
    S szj

    单机版部署的。Windows Server 2022 Standard。
    1台本地服务器(工控机)。不是云平台。
    Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz
    已经运行1年了,突然出现的问题。


  • 授权丢了,机器码一直变
    S szj

    我给你传输我记录的信息吧。你收一下。


  • 授权丢了,机器码一直变
    S szj

    不是你说的这样。
    是机器码一会就变一下,一会就变一下。刷新一下网页,机器码就变了。


  • 如何从第三方平台,单点登录本系统
    S szj

    用户“张三” 已经登录了第三方A平台,现在想要“无感地单点登录”进入airiot平台。
    不需要再次登录、不用输入用户名密码;
    不同于免登录(我知道免登录是 url?token= *token的办法,但是这个免登录后不是用户“张三”本人的账号,而是appip的账号。不符合我的要求。)

    希望: 张三不需要 在airiot输入账号密码、不是免登录,而是“单点登录”到airiot,登录后的账号和权限都是是“张三”的。


  • 授权丢了,机器码一直变
    S szj

    4.0 平台单机版,已经授权并运行一年了。
    今天发现平台无法打开,没有授权了。
    2fa09a8b-1c14-43e7-ad5b-787000b4185e-image.png

    重启全部服务也不行,重启服务器后好了一会会,又不行了。
    我给上传授权文件,提示授权文件不对了。

    主要原因是,这个机器码,一直变。
    刷新一下网页,机器码就变了。
    7afa6e14-0807-4061-8625-3e46dc253c67-image.png


  • 创建mqtt驱动不成功,导致平台崩溃
    S szj

    现在所有服务已经 up。


  • 创建mqtt驱动不成功,导致平台崩溃
    S szj

    已经发给你了,看看


  • 创建mqtt驱动不成功,导致平台崩溃
    S szj

    {"App":{"RunMode":"release","PrintConfig":false,"Swagger":true,"Platform":"Multiple","Pprof":{"Enable":true,"Prefix":"","Port":9000},"Gorm":{"Debug":false,"LogLevel":3,"DBType":"postgres","MaxLifetime":24,"MaxOpenConns":20,"MaxIdleConns":1,"TablePrefix":"","EnableAutoMigrate":true,"Postgres":{"Host":"postgres","Port":5432,"User":"root","Password":"ENC(S2E1S2V3dVdBWQ==)","DBName":"postgres","SSLMode":"disable"}},"TSDB":{"DBType":"influx","DBName":"tsdb","Timeout":5,"MaxConn":50,"Influx":{"Protocol":"HTTP","Addr":"http://influx:8086","Username":"admin","Password":"ENC(S2E1S2V3dVdBWQ==)","Sharding":true,"CreateDatabaseSql":"create database "%s""}},"Redis":{"Type":"","Addrs":["redis:6379"],"Password":"ENC(S2E1S2V3dVdBWQ==)","PoolSize":10},"MQ":{"MQType":"mqtt","TopicPrefix":"data/","MQTT":{"Host":"mqtt","Port":1883,"Username":"admin","Password":"ENC(S2E1S2V3dVdBWQ==)","Order":true}},"Flow":{"Host":"flow-engine","Port":2333,"WriteTimeout":60},"CORS":{"Enable":false,"AllowOrigins":["*"],"AllowMethods":["GET","POST","PUT","DELETE","PATCH"],"AllowHeaders":["Authorization","Origin","X-Requested-With","Content-Type","Accept"],"AllowCredentials":true,"MaxAge":7200},"JWTAuth":{"Enable":true,"SigningMethod":"HS512","SigningKey":"Cx0Lvc0Jsj3bSfLixX44","Expired":1209600,"Store":"file","FilePath":"data/jwt_auth.db","RedisDB":"10","RedisPrefix":"auth_"},"Captcha":{"Store":"memory","Length":4,"Width":400,"Height":160,"RedisDB":10,"RedisPrefix":"captcha_"},"GZIP":{"Enable":true,"ExcludedExtentions":[".png",".gif",".jpeg",".jpg"],"ExcludedPaths":[]},"RateLimiter":{"Enable":true,"Count":10000,"RedisDB":1},"Root":{"UserName":"admin","Password":"admin"},"API":{"Metadata":{"env":"local"},"Type":"tenant","AK":"0C5CE0BF-4FBD-42DD-B-C3-3E34-0FC0-9626","SK":"533316D1-8516-4962-8-26-C857-A935-D687","Timeout":60},"Log":{"Level":4,"Format":"text","Output":"stdout","OutputFile":"log/service.log"},"FileServer":{"FileServerType":"localhost","FileServer":"/app/fileServer","MediaLibraryPath":"mediaLibrary","SystemDefaultMediaLibrary":"systemDefaultMediaLibrary","SystemDefaultMediaLibraryMod":true,"UserFilesPath":"userFiles"},"LocaleDir":"/app/configs/locale","Operation":{"Address":"http://operation:10088","Timeout":60},"Endpoints":[]}}


  • 创建mqtt驱动不成功,导致平台崩溃
    S szj

    “看 etcd 里配置中心配置有吗“,哪里看?
    不是新安装的平台。

  • 登录

  • 没有帐号? 注册

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组