刚才在老同行群里,3个不同行业的运维都在吐槽许可不够用的破事,刚好我上周刚搞定同款问题。老张他们那边做CAD设计的,说采购明明买了50个节点的许可,结果设计部那帮人死活登不上去,排查半天发现是行政部几台吃灰的电脑占着许可不放,人家电脑压根没卸载干净,后台服务还挂着,许可就一直被锁着。做测绘的小刘更离谱,他们那个RTK软件的许可绑了硬件指纹,结果机房一次断电,服务器BIOS重置,硬件指纹变了,许可直接废了,厂商那边补发流程走了仨礼拜,项目差点违约。还有搞仿真的小陈,他们公司2023版和2025版两个许可服务器同时跑,端口撞了谁也不知道,天天有人来工单说"许可服务器连不上",他查了一礼拜才反应过来是端口冲突。
说实话我看完就乐了,因为这些问题我上周全踩过一遍。我们公司也是2023版、2025版混着装,许可乱成一锅粥,我花了差不多四天时间一把给捋顺了。第一步我干的事特别笨但特别管用,我把所有装着许可相关软件的机器全扫了一遍,不是用那种高大上的资产管理工具,就是写了个bat,netstat加tasklist,挨个看哪个进程在占许可端口、哪台机器上许可服务还活着。你们猜怎么着,光我们研发楼就扫出来11台"僵尸占位"的机器,全是去年换电脑没走卸载流程的。这里有个群里估计没人提过的小细节:很多许可服务它不是跟着主程序卸载一起没的,你得单独去注册表里看HKEY_LOCAL_MACHINE下面那个LicenseService的键值,有些版本卸载完主程序,这个键还留着,服务还注册着,下次开机照样占一个许可位。我后来直接写了个脚本批量清这个注册表项,十分钟搞完。
捋完僵尸节点我就开始收拾2023和2025两个版本共存的问题。核心思路其实就一句话:别让两个版本的许可服务抢同一个端口和同一个环境变量。我把2023版的许可服务端口从默认的27000改到了27500,2025版保持默认,然后在系统环境变量里把两个版本的LM_LICENSE_FILE分开指,2023版指老服务器地址,2025版指新服务器地址。这步做完大概八成的"连不上""许可超时"的问题就没了。这里再补一个实操小细节,很多人改完端口忘了去防火墙里放行,尤其内网环境,Windows防火墙默认是拦的,你本地telnet端口通了不代表客户端机器通,我那天就是栽在这上面,改完端口自己测没问题,结果客户端全报错,后来才想起来防火墙规则没跟着改,加了一条入站规则立马好了。
最后一步是把许可的借出和回收机制定死。我们之前最大的问题就是有人出差把许可借走了,一借就是俩月不还,后来我在许可服务器上设了强制回收策略,借出超过14天自动回收,同时给每个部门设了许可池上限,设计部最多同时用30个,仿真组最多15个,谁超了谁排队。这招看着不近人情,但推行下去之后投诉工单直接少了七成。还有一个细节,就是许可日志一定要开,而且别只开默认的,要把borrow和return的事件级别调到verbose,这样哪天许可数对不上,你翻日志五分钟就能定位是谁借了没还、什么时候借的,不用挨个部门打电话问。

最后再说两个同行特别容易忽略的隐藏设置。第一个是许可心跳间隔,默认是30秒检测一次在线状态,如果你网络环境不太稳,比如无线办公区,建议把这个心跳调到15秒甚至10秒,不然网络抖一下许可就判定你离线然后回收了,用户那边正画着图呢突然弹许可丢失,体验极差。第二个是许可服务器的时区同步,这个真没几个人注意,我们2025版许可服务器有一阵子莫名其妙每天凌晨丢两三个许可,查了半天发现是那台服务器时区没跟NTP同步,跟客户端差了几分钟,许可到期时间判定就出了偏差,把ntpdate加上定时同步之后这个问题再没出现过。
行了就唠这么多,都是血泪换来的经验,群里兄弟们有同款问题的直接抄作业就行,少走点弯路比啥都强。