Ansys License Manager 停止与连接失败排查指南
2026/9/20 7:39:42 网站建设 项目流程

1. 从一次真实的授权中断说起

如果你正在用 Ansys 做仿真,某天早上打开 Workbench 或者 Electronics Desktop,突然弹出一句Ansys License Manager is stopped,或者更让人抓狂的connection timed out while reading data,那你大概率已经踩进了授权服务这个坑里。这个问题的典型表现是:软件本身装得好好的,昨天还能算,今天就不行了;或者刚装完就报错,连界面都进不去。它跟你的模型、网格、求解设置一点关系都没有,纯粹是授权服务这一层出了问题。

我这些年帮同事、朋友处理过不下几十次这类故障,从学生版到商用版,从单机授权到网络浮动授权,几乎各种组合都遇到过。可以很负责任地说,Ansys 的授权问题里,超过七成不是授权文件本身坏了,而是服务没起来、端口被占、主机名对不上、或者残留进程在捣乱。很多人一看到报错就急着重装软件,结果重装三遍还是同样的错误,因为根因根本不在软件安装包上。

这篇内容面向的是所有被 Ansys 授权问题卡住的人——不管你是刚装完软件的新手,还是维护实验室授权服务器的老手。我会把License Manager is stopped连接失败这两类问题拆开讲清楚,从底层机制到逐步排查,再到彻底清理重装的完整流程,尽量让你看完之后能自己定位问题,而不是靠反复重装碰运气。关键词就三个:Ansys、License Manager、连接失败,全文围绕它们展开。

2. 先搞懂 Ansys 授权到底是怎么跑起来的

2.1 授权服务的三层结构

很多人排查授权问题效率低,根本原因是没搞清楚这套东西的运作方式。Ansys 的授权体系大致分三层,理解这三层,排查时就能快速缩小范围。

第一层是授权文件(license file),通常是一个.lic文件,里面写明了你买了哪些模块、有效期到什么时候、绑定在哪台机器上。这个文件是静态的,一般不会自己变坏,除非你手动改过或者被误删。

第二层是授权服务进程(License Manager / lmgrd),它负责读取.lic文件,然后在网络上"广播"这些授权,等待客户端来申请。Ansys 用的是 FlexNet 授权机制,核心进程叫lmgrd,还有一个厂商守护进程ansyslmd。这两个进程必须同时活着,授权才能正常发放。

第三层是客户端请求,也就是你打开的 Workbench、Fluent、Maxwell 这些软件,它们通过网络向授权服务发起请求,拿到授权后才能启动。

Ansys License Manager is stopped这个报错,说的就是第二层——服务进程没在跑。而connection timed out则是第三层的问题——客户端连不上服务,可能是服务没起,也可能是网络、端口、防火墙挡在了中间。

2.2 为什么服务会"自己停掉"

服务不会无缘无故停。根据我的经验,常见原因有这么几类:

  • 系统重启后服务没有自动启动。这是最常见的一种。Windows 服务默认可能是"手动"启动类型,重启后不会自己起来。
  • 授权文件路径变了或者文件被移动。服务启动时找不到.lic文件,启动失败后自动退出。
  • 端口被占用。FlexNet 默认用 1055 和 2325 两个端口,如果被别的程序占了,服务起不来。
  • 主机名或 MAC 地址变了。授权文件里绑定了主机名和网卡物理地址,换了网络环境或者改了主机名,授权校验就失败。
  • 残留的 lmgrd 进程。有时候服务显示"已停止",但后台还有个僵死的 lmgrd 进程占着端口,导致新服务起不来。
  • 杀毒软件或安全策略拦截。某些安全软件会把 lmgrd 当成可疑进程干掉。

理解这些原因之后,你会发现排查思路其实很清晰:先确认服务状态,再确认授权文件,然后查端口和进程,最后看网络和防火墙。

2.3 单机授权和网络授权的区别

这里要特别区分两种部署方式,因为排查方法完全不同。

单机授权是把授权服务装在本机,客户端也连本机(通常是localhost1055@本机主机名)。这种模式下,问题基本都出在本机的服务、端口、主机名上。

网络授权是授权服务装在服务器上,多台客户端通过网络连接。这种模式下,除了服务器本身的问题,还要排查客户端到服务器的网络连通性、防火墙规则、DNS 解析等。

我见过太多人把网络授权的问题当成单机问题来查,在本机反复折腾服务,其实根因是服务器那边根本没开机或者防火墙挡了端口。所以第一步永远是搞清楚你的授权是哪种模式。

3. License Manager is stopped 的逐步排查链路

3.1 第一步:确认服务真实状态

不要只看报错弹窗,要亲自去系统里确认服务状态。Windows 下按Win + R,输入services.msc,找到名字里带AnsysFlexNet的服务,看它的状态是"正在运行"还是"已停止"。

如果显示"已停止",先别急着点启动,因为直接启动大概率会失败。正确的做法是右键查看属性,确认"可执行文件的路径"指向的是不是正确的 lmgrd 位置,以及启动参数里的授权文件路径对不对。

在 Linux 下,用这条命令看服务状态:

# 查看 lmgrd 进程是否在跑 ps -ef | grep lmgrd ps -ef | grep ansyslmd # 查看服务状态(如果是 systemd 管理) systemctl status ansyslmd

如果进程列表里什么都没有,说明服务确实没起来。如果有 lmgrd 但客户端还是连不上,那问题可能在端口或授权文件上。

3.2 第二步:手动启动服务看真实报错

图形界面点"启动"往往只给你一句"启动失败",不给原因。这时候要手动启动,才能看到真正的错误信息。

Windows 下打开命令提示符(建议用管理员权限),cd 到 lmgrd 所在目录,通常是:

cd "C:\Program Files\ANSYS Inc\Shared Files\Licensing\winx64" lmgrd.exe -c "C:\Program Files\ANSYS Inc\Shared Files\Licensing\license_files\ansyslmd.lic" -l "C:\temp\lmgrd.log"

Linux 下类似:

cd /ansys_inc/shared_files/licensing/linx64 ./lmgrd -c /ansys_inc/shared_files/licensing/license_files/ansyslmd.lic -l /tmp/lmgrd.log

关键是那个-l参数,它把日志写到指定文件。启动失败后,打开这个日志文件,里面会明确告诉你失败原因,比如"cannot find license file"、"port already in use"、"invalid hostid"等等。这一步是整个排查过程中信息量最大的环节,强烈建议每次都做。

3.3 第三步:读懂日志里的关键行

日志文件里信息很多,但真正有用的就那么几行。我总结了几种典型报错和对应含义:

日志报错关键词含义处理方向
Cannot find license file找不到授权文件检查-c后面的路径是否正确
Failed to open the TCP port端口被占用换端口或杀掉占用进程
Invalid hostid on SERVER line主机名/MAC 不匹配核对授权文件里的绑定信息
License server does not support this feature授权文件里没有该模块确认购买的模块和版本
lmgrd is already running已有进程在跑先杀掉旧进程再启动

看到Invalid hostid这类报错,基本可以确定是授权文件和当前机器对不上了。这时候要么改授权文件里的主机名,要么联系供应商重新生成授权。

3.4 第四步:端口占用的排查与处理

FlexNet 默认用两个端口:lmgrd用 1055,ansyslmd用 2325。如果这两个端口被别的程序占了,服务就起不来。

Windows 下查端口占用:

netstat -ano | findstr :1055 netstat -ano | findstr :2325

Linux 下:

netstat -tlnp | grep 1055 netstat -tlnp | grep 2325 # 或者用 ss ss -tlnp | grep 1055

如果发现端口被占,记下那个 PID,去任务管理器或ps里看看是什么程序。如果是残留的 lmgrd,直接杀掉;如果是别的软件,可以考虑给 Ansys 换端口。

换端口的方法是在授权文件里改 SERVER 行,比如把1055改成1056,同时客户端连接字符串也要跟着改。改完之后记得重启服务。

提示:改端口之后,所有客户端的连接配置都要同步更新,否则会出现"服务器在跑但客户端连不上"的情况。网络授权环境下尤其要注意这一点。

4. 连接失败类问题的网络层排查

4.1 先分清是"连不上"还是"连上了但被拒"

connection timed outconnection refused是两个不同的错误,含义完全不同。

timed out意思是客户端发出的连接请求石沉大海,没有任何回应。这通常是网络不通、防火墙丢包、或者服务器根本没开机。

refused意思是服务器收到了请求,但明确拒绝了。这通常是服务没在监听那个端口,或者端口号写错了。

还有一种The license server may be experiencing a high demand,这个报错说的是服务器在跑,但授权数量不够了,或者请求太频繁被限流。这种情况不是连接问题,而是授权容量问题。

分清楚这三种,排查方向就完全不同。timed out查网络,refused查服务和端口,high demand查授权数量和并发。

4.2 用 telnet 和 ping 快速定位网络问题

排查网络授权,最直接的工具就是pingtelnet

先 ping 服务器,确认基本连通性:

ping 192.168.1.100

如果 ping 不通,那问题在网络层,跟 Ansys 无关,先解决网络。

如果 ping 通了,再用 telnet 测端口:

telnet 192.168.1.100 1055

如果 telnet 能连上(屏幕变黑或者显示连接成功),说明端口是通的,问题在授权服务本身。如果 telnet 卡住或者报"连接失败",说明端口不通,可能是防火墙挡了。

Windows 下如果没装 telnet 客户端,可以用 PowerShell 的Test-NetConnection

Test-NetConnection -ComputerName 192.168.1.100 -Port 1055

这个命令会明确告诉你TcpTestSucceeded是 True 还是 False,比 telnet 更直观。

4.3 防火墙和主机名解析这两个隐形杀手

防火墙是网络授权里最常见的坑。服务器上的防火墙可能挡了 1055 和 2325 端口,客户端根本连不进来。Windows 防火墙、Linux 的 iptables/firewalld、甚至某些企业级安全软件,都可能拦截。

处理方法是把这两个端口加入白名单。Windows 下可以在"高级安全 Windows Defender 防火墙"里新建入站规则,放行 TCP 1055 和 2325。Linux 下用 firewalld:

firewall-cmd --permanent --add-port=1055/tcp firewall-cmd --permanent --add-port=2325/tcp firewall-cmd --reload

另一个隐形杀手是主机名解析。授权文件里 SERVER 行写的是主机名,比如SERVER mylicserver 001122334455 1055。客户端连接时如果用的是1055@mylicserver,就需要能把这个主机名解析成 IP。如果 DNS 解析不了,或者 hosts 文件里没配,就会连接失败。

解决办法是在客户端的 hosts 文件里加一条静态映射:

# Windows: C:\Windows\System32\drivers\etc\hosts # Linux: /etc/hosts 192.168.1.100 mylicserver

这样即使 DNS 有问题,也能通过 hosts 解析到正确 IP。这个技巧在网络授权环境里非常实用,能省掉大量排查时间。

4.4 客户端连接字符串的写法陷阱

客户端配置授权服务器时,连接字符串的写法有讲究。常见格式是端口@主机名,比如1055@mylicserver

这里有几个容易踩的坑:

  • 端口和主机名顺序写反。必须是端口@主机名,不是主机名@端口
  • 用了 IP 但授权文件绑定的是主机名。有些情况下用 IP 连不上,必须用主机名。
  • 主机名大小写不一致。虽然理论上主机名不区分大小写,但某些环境下会出问题,建议完全按授权文件里的写法来。
  • 多网卡机器连错网段。服务器有多张网卡时,客户端可能连到了错误的网段。

我遇到过一次特别隐蔽的问题:服务器有两张网卡,授权文件绑定的是网卡 A 的 MAC,但客户端通过网卡 B 的 IP 去连,结果一直超时。后来在客户端指定了网卡 A 的 IP 才解决。所以多网卡环境下,一定要确认客户端连的是授权绑定的那个网段。

5. 彻底清理与重装的正确姿势

5.1 为什么直接重装往往没用

很多人一遇到授权问题就重装 Ansys,结果发现重装之后问题依旧。原因很简单:重装软件不会清理授权服务的残留,也不会修复端口占用和主机名问题。如果根因是残留进程或者端口冲突,重装一百遍也没用。

正确的做法是:先彻底清理旧的授权服务,再重新安装配置。清理不干净,新装的服务照样起不来。

5.2 清理残留服务和进程的完整步骤

Windows 下的清理流程:

  1. 停止所有 Ansys 相关服务。在services.msc里找到Ansys License ManagerFlexNet Licensing Service等,全部停止。
  2. 杀掉残留进程。打开任务管理器,结束所有lmgrd.exeansyslmd.exeFNPLicensingService.exe进程。
  3. 删除服务注册。用管理员权限打开命令提示符:
sc delete "Ansys License Manager" sc delete "FlexNet Licensing Service"
  1. 清理安装目录。删除C:\Program Files\ANSYS Inc\Shared Files\Licensing下的内容(保留授权文件备份)。
  2. 清理注册表。这一步要谨慎,用regedit搜索AnsysFlexNet,删除相关项。操作注册表前务必备份。

Linux 下的清理:

# 停止服务 systemctl stop ansyslmd systemctl stop lmgrd # 杀掉残留进程 pkill -9 lmgrd pkill -9 ansyslmd # 删除服务文件 rm /etc/systemd/system/ansyslmd.service systemctl daemon-reload

清理完之后,重启一次机器,确保所有残留都释放干净,再开始重装。

5.3 重装时的关键配置项

重装授权服务时,有几个配置项必须注意:

  • 安装路径不要有中文和空格。这是老生常谈,但确实有人栽在这上面。
  • 授权文件路径要固定。建议放在一个专门的目录,比如C:\AnsysLic\,不要放在桌面或临时目录。
  • 服务启动类型设为"自动"。这样重启后服务能自己起来,避免"重启后授权失效"的问题。
  • 记录主机名和 MAC 地址。安装前先确认,安装后核对授权文件里的绑定信息是否一致。

安装完成后,先手动启动一次服务,确认能起来,再用客户端测试连接。不要装完就直接开软件,那样出错了不好定位。

5.4 验证授权是否真正可用

服务起来不等于授权可用。要真正验证,得用 Ansys 自带的授权查询工具。

Windows 下在授权目录里有lmutil.exe,可以这样查:

lmutil lmstat -c 1055@localhost -a

这个命令会列出所有可用的授权模块和当前使用情况。如果能看到你需要的模块(比如ansysfluentmaxwell),说明授权正常。如果报错或者列表为空,说明授权还有问题。

Linux 下同理:

./lmutil lmstat -c 1055@localhost -a

这一步是判断授权是否真正可用的金标准,比打开软件试要靠谱得多,因为它直接查询授权服务,不依赖客户端软件的状态。

6. 几个高频疑难场景的实战处理

6.1 重启后授权失效的根治方法

"每次重启电脑都要手动启动授权服务"是很多人遇到的烦人问题。根因是服务启动类型不是"自动",或者服务依赖项没配好。

根治方法:在服务属性里把启动类型改成"自动",并且设置"恢复"选项——第一次失败、第二次失败、后续失败都设为"重新启动服务"。这样即使服务偶尔崩溃,也能自动恢复。

如果改了自动还是不行,检查服务的"登录"选项卡,确认用的是有足够权限的账户。有些环境下服务以 Local System 运行会失败,需要改成管理员账户。

6.2 多版本 Ansys 共存的授权冲突

装了多个版本的 Ansys(比如同时有 2022 和 2024),授权服务可能互相冲突。常见表现是某个版本的模块找不到授权,或者服务反复重启。

处理原则是:多个版本尽量共用同一个授权服务。在安装新版本时,选择"使用现有的授权服务",而不是重新装一个。如果已经装了多个服务,保留一个,卸载其余的,然后让所有版本都指向这一个服务。

如果授权文件里同时包含多个版本的模块,确认版本号匹配。有时候授权文件是给旧版本生成的,新版本软件识别不了,需要重新生成授权。

6.3 学生版和商用版的授权差异

学生版(Ansys Student)的授权机制和商用版不同。学生版通常是本机授权,不需要单独装 License Manager,授权文件内置在安装包里。所以学生版一般不会出现License Manager is stopped的问题,如果报错,多半是安装不完整或者授权文件损坏。

商用版才需要独立的授权服务。如果你用的是学生版却看到 License Manager 相关报错,先确认是不是装错了版本,或者系统里残留了商用版的授权服务在干扰。

6.4 授权服务器高负载导致的间歇性失败

The license server may be experiencing a high demand这个报错,说明服务器在跑,但授权不够用了。这在多人共用的实验室或企业环境里很常见。

短期解决办法是错峰使用,或者等一会儿重试。长期解决办法是增加授权数量,或者优化授权分配策略。

还有一个容易被忽略的点:僵尸授权。有时候用户异常退出,授权没有正常释放,导致授权被占用但实际没人用。这时候可以用lmutil lmstat查看哪些授权被占用,必要时用lmutil lmremove强制释放。

# 查看某模块的详细占用情况 lmutil lmstat -c 1055@localhost -f ansys # 强制移除某个占用(谨慎使用) lmutil lmremove -c 1055@localhost -h 主机名 用户名 显示名 模块名

强制释放要谨慎,因为可能影响正在正常使用的用户。建议先确认那个授权确实是僵尸占用再操作。

7. 我踩过的坑和总结出的经验

说几个我实际踩过的坑,都是文档里不会写的。

第一个坑是授权文件里的主机名和实际主机名不一致。有次帮人排查,服务怎么都起不来,日志报Invalid hostid。查了半天发现授权文件里写的是SERVER oldname ...,但机器主机名早就改成了newname。改回主机名或者重新生成授权才解决。所以改主机名之前一定要考虑授权的影响

第二个坑是Windows 防火墙的"专用网络"和"公用网络"配置不同。有次服务器防火墙在专用网络下放行了端口,但客户端连过来时被识别为公用网络,规则没生效,一直超时。后来把两个网络配置都放行才解决。这个坑很隐蔽,因为你在服务器上测端口是通的,但客户端就是连不上。

第三个坑是杀毒软件静默拦截 lmgrd。某次装完授权服务,服务启动几秒后就自动停止,日志里没有任何错误。查了半天发现是杀毒软件把 lmgrd 当可疑进程隔离了。把授权目录加入杀毒软件白名单后正常。所以装完授权服务后,建议把授权目录和 lmgrd 进程加入安全软件白名单

第四个坑是授权文件路径里有空格导致服务启动失败。Windows 服务启动参数里如果路径带空格,需要用引号包起来,但某些安装程序生成的参数没加引号,导致服务起不来。手动改服务参数加引号后解决。

这些坑的共同点是:报错信息往往不直接指向根因,需要结合日志、端口、进程、网络多个维度交叉排查。所以排查授权问题,耐心和系统性比什么都重要。别一上来就重装,先看日志,先查端口,先确认主机名,大部分问题都能在这几步里定位到。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询