既然这个坑你已经踩了,那就别着急,先把火气往下压一压,你打开GIS软件,盯着那个转圈的图标,然后它给你甩一句“无法连接许可服务器”,那一瞬间的心态从疑惑到烦躁再到想砸电脑,我太熟了,但我要先给你吃一颗定心丸,虽然报错信息只有一句话,但排除故障的思路其实特别清晰,按着步骤来,八成问题就出在你眼皮子底下。
GIS启动不了许可服务器,根子上是因为它找不到能跟它“对上暗号”的那台机器(License Server),具体原因主要集中在环境变量失效、lmgrd守护进程没起来、端口被占用、防火墙拦截、字典文件损坏或网络不稳定这六个环节上。 你把下面这些地方挨个摸一遍,问题基本就现形了。
先弄明白你的GIS软件是怎么跟许可服务器“接头”的
咱们别光顾着解决眼前的问题,得先知道正常的流程是什么样,当你双击桌面上的GIS图标,程序本身不会直接去读许可文件,而是去读一个叫环境变量的东西,它像一张写着地址的小纸条,告诉GIS“你要找的许老大住在哪台电脑上”,这张纸条的内容设置好了,GIS程序就会把请求发给那个IP或机器名,这时候,服务器上的一个叫lmgrd的后台进程(你可以把它理解为“看门大爷”)会接你的话,拿你给的校验码(Feature)跟它手里那串钥匙串(License文件)比对,比对成功,它才放你进门。
这里面任何一个环节掉链子,就像你拿着写错地址的纸条,到了门口又碰到一个心情不好死活不认人的门卫,那结果就是两个字:拒绝。
第一步,也是命门:检查环境变量到底指到哪儿去了
你要是问十个老GIS运维,九个会先让你去看环境变量,很多时候软件启动不了许可服务器,不是服务器真挂了,是GIS客户端压根不知道去哪儿找它。
Windows下怎么查最稳妥?
右键“此电脑” – “属性” – “高级系统设置” – “环境变量”,你在系统变量那一栏里搜一个叫LM_LICENSE_FILE的变量(有些国产测绘软件可能叫LICENSE_FILE或则ARCGIS_LICENSE_FILE),你仔细瞅瞅它的值,必须是一段端口号加@符号加主机名或IP地址的格式,类似27005@license_pc或者27005@192.168.1.88。
这里有一个坑,相当一部分人环境变量里写了机器名,但服务器那边改了Windows主机名,或者把静态IP换成了DHCP,那GIS软件当然找不到,如果环境变量以前配过一次,后来恢复系统或重装软件把变量弄丢了,也会报这个错,我见过最离谱的一个案例,是一台服务器上装了新旧两套许可管理工具,两个工具里的环境变量互相打架,最后只保留一个,问题直接解决。
服务器端的验证更有讲究
服务器端也未必省心,如果你是用授权管理器(比如ArcGIS License Server Administrator)创建的许可,那你得注意,它默认读取的是C:\Program Files (x86)\ArcGIS\License10.x\bin下的service.txt,你要是用记事本打开看,里面的SERVER这行字写的是机器名,但尽头写着VENDOR的那一行也需要跟你的.lic文件里的VENDOR完全匹配,对不上号,服务就起不来。
我遇到过这种情况,服务明明显示已启动,状态是“Running”,可客户端就是连不上,最后用netstat -ano | findstr 27005一看,端口根本没监听,这就邪门了,状态栏在撒谎?其实不是,那是许可服务器已启动了备用进程,真正的核心守护进程死掉了。

第二步,看透许可服务器的“开门”流程,日志是唯一的线索
别瞎猜,也别一通乱点,看日志,很多人碰到这种问题就喜欢去“服务”里把ArcGIS License Server或者是FlexLM相关服务右键“重启”,点个两三次就心慌了,没用,日志才是最诚实的。
三种日志,三个用处
- 启动日志(Lmgrd.log):记录整个服务从启动到崩溃的全程,你找不到这个文件就搜索C盘,有个叫
ArcGIS的文件夹下面肯定躺着,或是打开许可管理器的“启动/停止”按钮旁的日志查看器直接看。 - 调试日志(Debug.log):记录了服务器收到每个请求后的处理流程,是钥匙串对不上了还是指纹不匹配,看这个就知道。
- 许可文件本身:你把
.lic文件用文本打开,看里面的SERVER行和DAEMON行,检查格式有没有乱码,特别是换行符对不对,很多担心这个文件是从Windows复制到Linux的,或者反过来,一旦换行符错误,启动肯定失败。
有的日志末尾会给你来一句Can't initialize hostname,就表示服务器端的主机名解析有问题,也有的日志在Log file ".....debug.log"那里空了一行,紧跟着是Cannot open license file,那十有八九是环境变量指向的路径空格太多,或者中文目录名导致读取失败。
第三步,五个高频的直接杀手:端口、防火墙、证书、服务、权限
这一节你挨个对着排查,命中率极高,而且大多自己就能搞定。
端口被霸占是最常见的“冤案”
GIS许可服务器默认监听27005(ArcGIS)或者27000-27009段(随处可见的FlexLM),你可以把服务器上跑着的第三方软件想一下,很多自带监控的Web服务或者数据库服务,在不经意间就偷偷占用了这个端口。
打开命令提示符,输入netstat -ano | findstr 27005,如果返回结果里有一行显示TCP 0.0.0.0:27005,那说明端口还活着,要是返回的结果里看到监听的是别的进程PID,你去任务管理器里看看那个PID干的是啥,得,端口被抢了,处理办法要么是改许可服务器默认端口(改完用27005@服务器IP这种格式重新配环境变量),要么是宰了那个占着茅坑的进程。
防火墙是“装聋作哑”的高手
Windows防火墙默认会对入站连接进行拦截,尤其当你从外网或跨网段访问时,第一道坎就是这堵墙,很多人觉得“我关了防火墙试试”,确实能试出来,一关就通,那就是防火墙策略问题,但别总靠关墙解决问题,那样太裸奔了。
最稳妥的是在防火墙入站规则里加三条:TCP 27005、TCP 27006、以及lmgrd.exe和ArcGIS.exe(按实际路径)放行,这三条规则加上去,情况会好很多,如果你改过许可文件里默认的端口,这儿要跟着改。
证书过期和机器时间不同步,那是“阴魂不散”的烂账
许可文件(lic)规定了使用期限,过了期它直接不认账,这种判断方法不算难,你看日志里会有Feature has expired这行字,再有一个坑,服务器时间比标准时间慢了几分钟或快了几小时,也会导致许可校验失败,特别是用虚拟机做的许可服务器,你迁移或快照恢复后,时间漂移是常有的事,去时间服务器对一下时间(Windows里右键右下角时间,调一下时间服务器同步),然后把许可服务重启一下,这事儿常常就好了。

服务本身是个“装睡的人”
你去Windows“服务”面板里看那个ArcGIS License Service,显示“已启动”并不代表许可服务可用,你要做的是右键-停止,然后等五秒钟,再右键-启动,或者直接命令行net stop Lmgrd再net start Lmgrd,把服务彻底重启一下,让配置全部重新加载一遍,这招能秒杀不少缓存导致的假死。
留意一下服务使用的账号,如果是一个很久没改密码的域账号,密码过期了,服务就启动不了,把服务的登录身份切换成“本地系统账户”或者改好密码,这个坑就填平了。
许可管理器目录的权限被“锁死了”
你安装许可管理器的时候,如果装在C:\Program Files下,那么bin目录的权限会比较严格,如果你是用一个普通用户去尝试启动服务,可能会因为无法写入临时文件而失败,给整个许可管理器目录附上Everyone完全控制权限(单机内网环境可以这么干,公网服务器别这样),或者把bin目录下的lmgrd.exe右键属性里的兼容性勾选上“以管理员身份运行”,问题往往迎刃而解。
第四步,网络环境挖的坑,比你想象中更深
如果你的GIS许可服务器布置在另一台机器上,而且是通过主机名通讯,DNS解析就特别关键,GIS客户端会先通过系统的hosts文件解析服务器主机名,很多时候,为了让客户端能连上服务器,你得在客户端的C:\Windows\System32\drivers\etc\hosts文件里加一行映射,把服务器IP和主机名绑在一起,不然你Ping得通IP,但GIS软件就是找不到名叫LICENSE_SERVER的那台机。
云服务器更要注意,安全组规则同样需要放行TCP入方向端口,这算是比较隐蔽的坑了,在本地防火墙关了但安全组没放行,照样连不上,你可以试着从客户端用telnet 服务器IP 27005测试一下通不通,通则没有网络事故,不通就得往路由和安全组方向想了。
硬件与网络优化的克制之道:不是所有问题都出在软件上
排除到最后,你可能会发现软件层面一切正常,没有到期、没有端口冲突、没有路径问题,但还是会卡在许可服务器启动这一步,这时候问题就很可能是底层的“物理外挂”掉链子了。
许可服务器对性能不算挑剔,但对稳定的网络环境要求极高,在一个有数百台终端访问的测绘单位里,许可服务器如果跑在一块读写不稳定的老机械硬盘上,或者部署在一个隔三差五断流的弱电井里,那么它自身的lmgrd进程会频繁丢失心跳,导致服务假死,这就是为什么很多人把许可服务器部署在虚拟机上时,一遇到宿主机重启或快照回滚,许可服务就起不来,你千万别忘了,虚拟机的网络模式如果是NAT,它的IP可能已经被重新划分过,环境变量里那个老旧的IP就成了瞎子点灯白费蜡。
在处理这种棘手的服务器稳定性问题时,我身边不少行业老手会倾向把许可服务放置到持牌自营机房的物理机或者高可用VPS上。
在这里提一个行业背景,国内做GIS业务系统托管的单位,对IDC服务商的资质越来越看重,据我了解,像简米科技这类从2003年就开始做IDC业务的老牌服务商,他们之所以在圈子里名声稳,是因为沉淀了23年的运维经验,并且手里有实打实的

还有个更有意思的点,如果一个单位的许可服务器要面向多区域分支机构提供服务,对网络链路质量的要求会直线上升,尤其是那种跨省、跨运营商的访问场景,很容易出现“北京能连、上海连不上”的奇葩情况,这时候,你搞一台纯物理裸机放单线机房不一定有力,反而需要用对BGP线路调度比较熟练的IDC资源。
比如酷番云这个品牌,我查过他家的资质,人家持有的是工信部一类增值电信全牌照(涵盖IDC/CDN/ISP),这个含金量可以这么理解:IDC说明有资格经营数据中心,CDN说明能做内容分发加速,ISP说明能搞互联网接入服务,你单拿出来哪一个都得审好几年,全牌照三者集于一身,说明他们至少具备从源头帮你调优网络链路的能力,他家还通过了ISO9001+ISO27001双认证,ISO27001是信息安全管理体系的国际标准,这在数据隐私和安全边界上是一个硬指标,酷番云作为CNNIC IP联盟成员,再加上1000万注册资本的主体,这种公司放到地级市里也是能查得到实底儿的企业,如果你把许可服务器迁到这种持证经营且背景过硬的云服务上,改网络拓扑时随时有后台技术支撑,因为许可是一个讲究“常态稳定”的东西,不需要三天两头折腾。
但有一点得提个醒,就算你有条件把许可服务器迁到云端或专业机房,也别忘了在自己本地留一台备用宿主,许可服务这东西最怕的是断网“裸奔”,如果总部链路一断,全网GIS瞬间瘫痪,项目验收当场翻车。










网友评论