RLM服务器安装完成后,客户端无法checkout许可证,这是RLM部署中最常见的一类问题。绝大部分情况下,问题出在以下几个地方。
在排查客户端之前,先在服务器本地确认RLM服务本身是否正常:
如果服务器本地都访问不到,先排查RLM服务是否启动成功,检查rlm.log日志文件中的错误信息。
如果服务器本地能访问但客户端连不上,往下看。
这是客户端无法连接RLM服务器的第一原因。
RLM使用两个端口:
客户端需要能同时访问这两个端口。动态端口是防火墙配置的难点——你没法提前知道它下次启动会变成多少。
在许可证文件中找到ISV行,添加port=参数:
text
ISV <vendor_name> port=5055比如某个软件厂商的ISV名称是bricsys,则改为:
text
ISV bricsys port=5055修改后重启RLM服务。然后在防火墙中开放5053和5055两个TCP端口。
如果固定端口后仍然不行,将rlm.exe(Windows)或rlm(Linux/Mac)程序本身添加到防火墙例外列表中。
如果部署在AWS、阿里云等云平台,除了操作系统防火墙,安全组(Security Group)的入站规则也必须放行这两个端口。

防病毒软件有时会将RLM服务进程识别为潜在威胁并阻止其运行。
检查服务器上运行的杀毒软件是否隔离或阻止了rlm.exe或rlm进程。如果被阻止,将其加入白名单/排除列表,然后重启RLM服务。
客户端软件需要通过环境变量或配置文件来找到许可证服务器。
常见的配置方式:
方式一:环境变量
设置<VENDOR>_LICENSE或LM_LICENSE_FILE变量,指向许可证服务器:
text
set <VENDOR>_LICENSE=5053@<server_hostname>或
text
set LM_LICENSE_FILE=5053@<server_hostname>其中<server_hostname>替换为RLM服务器的主机名或IP地址。
常见错误:
验证方法:在客户端机器上执行ping <server_hostname>,确认能解析到正确的IP。
在MacOS或Linux上编辑过许可证文件后,换行符格式可能被破坏。
症状:
解决方法:用支持切换换行符的编辑器(如Notepad++、VS Code)打开许可证文件,将换行符设置为Unix/Linux(LF)或Windows(CRLF),保存后重启RLM服务。
在Linux上可以用cat -A license.lic检查,如果行尾出现^M$说明是Windows格式;在Mac上可以用vi打开,如果看到^M字符说明格式不对。

客户端报错时通常会带一个错误代码。以下是最常遇到的几个:
| 错误代码 | 含义 | 最可能的原因 |
|---|---|---|
| -1 | RLM_EL_NOPRODUCT | 产品无授权,许可证文件中没有客户端请求的feature |
| -3 | RLM_EL_EXPIRED | 许可证已过期,检查系统日期是否正确 |
| -4 | RLM_EL_NOTTHISHOST | Hostid不匹配,许可证绑定的MAC/主机名与当前服务器不一致 |
| -5 | RLM_EL_BADKEY | 许可证签名无效,文件可能被篡改或拷贝不完整 |
| -6 | RLM_EL_BADVER | 请求的版本不支持,客户端版本高于许可证支持的版本 |
| -17 | RLM_EL_COMM_ERROR | 与服务器通信错误,通常是防火墙/网络问题 |
| -22 | RLM_EL_ALLINUSE | 所有许可证都在使用中,无空闲许可 |
| -40 | RLM_EL_SERVER_CLOCK | 系统时钟被回拨,检查服务器时间 |
| -111 | RLM_EH_CONN_REFUSED | 连接被拒绝,可能是服务器端口未开放或IP地址错误 |
| -112 | RLM_EH_NOSERVER | 没有可连接的服务器,客户端配置的服务器地址有误 |
注意:错误码-17是最常见的,它覆盖了防火墙、网络、端口不通等多种底层通信问题。遇到-17时,优先检查防火墙和端口。
text
客户端无法checkout
↓
服务器本地能访问 http://localhost:5054 吗?
↓ 否 ↓ 是
检查RLM服务是否启动 检查客户端配置
查看rlm.log日志 ↓
↓ 环境变量是否正确?
修复服务启动问题 ↓ 否 ↓ 是
↓ 修正环境变量 检查网络连通性
↓ ↓ ↓
回到起点 telnet 服务器IP 5053 通吗?
↓ 否 ↓ 是
检查防火墙 检查ISV端口
和安全组 是否固定并开放
↓ ↓
开放端口 telnet 服务器IP ISV端口 通吗?
↓ ↓ 否 ↓ 是
重新测试 固定ISV端口 检查许可证文件
并开放 是否包含对应feature
↓
检查错误代码
对照上表处理1. 系统时间问题
如果服务器系统时间被修改过(比如回拨),RLM会拒绝签出许可证,报错-40。检查服务器时间是否准确,与NTP服务器同步。
2. 多网卡/MAC地址随机化
如果服务器有多个网卡,RLM可能绑定到了错误的网卡上。检查许可证文件中的HOSTID是否与当前活跃网卡的MAC地址一致。虚拟机环境尤其要注意关闭MAC地址随机化功能。
3. 同一台机器重复检出
RLM的机制可能导致同一台机器检出多个许可证,如果许可证数量紧张,这会加剧“不够用”的问题。检查客户端是否启动了多个实例。
4. 管理员密码问题
某些版本的RLM(如15.1)如果管理员密码留空或设置为"admin",可能导致许可证无法使用。建议设置一个非空的管理员密码。
总结:80%的RLM客户端连接问题,归结起来就三件事——防火墙端口没开对、环境变量没配好、许可证文件格式有问题。按上面的流程图逐一排查,大多数问题能在半小时内定位。