群晖套件中心打不开、套件源显示无效的位置?四个病根按顺序查,DSM6老机器卡在最后一个

表弟那台二手四盘位群晖又来事了。上个月他嫌Docker版qBittorrent每次升级都要抄一堆参数麻烦,寻思套件中心里装一个省事,结果套件中心首页转了半天圈打不开,好不容易进去了,把社群源的地址填进去,弹一行字「无效的位置」。他给我发语音的原话是「这机器套件中心坏了,是不是要重装系统」。不用重装。我远程陪他排了一个晚上,四个病根按顺序过,最后在根证书上逮到真凶。这四个坑几乎覆盖了套件中心所有的毛病,这篇按顺序写全。
先分清是哪种打不开,三码事别搅一起
动手之前先把症状分开,这步能省一半时间。套件中心的「不行」其实是三码事:第一种是整个套件中心首页空白、图标转圈、提示连不上服务器,这是NAS自己没出得了门,病在网络层;第二种是首页能打开、官方套件搜得到,点安装却失败,或者下载条走到一半断掉,这是套件和机器对不上号,病在版本和空间;第三种是官方的一切正常,就是添加的第三方源显示「无效的位置」,源里的套件一个都刷不出来,这种十有八九是证书的事。表弟三样占全了,所以我陪他从第一种查起,一路查到第三种。官方知识库里「为什么无法连接到套件中心」那篇,给的排查顺序也是从网络往里走,先确认机器连着互联网、再查网络接口配置,方向没毛病,就是写得比较客气,没告诉你哪一步最容易翻车。
第一查:NAS到底出没出门,先看DNS和那个代理勾
套件中心本质上是个网页商店,NAS要去群晖的服务器拉套件清单,连不上就是首页转圈。第一件事不是重启,是确认机器能不能出门。表弟家这台,内网访问一切正常,照片备份、文件拷贝都没问题,唯独套件中心转圈——内网好外网差,这个组合先怀疑DNS。去控制面板、网络、常规里看,他那台DNS是自动获取,拿到的是光猫下发的地址,而光猫那层抢答DNS的事我以前写过,套件服务器解析出来的地址不对,商店自然进不去。手动改成223.5.5.5,保存,套件中心当场就转出来了。原理层想搞明白的可以翻我那篇DNS解析,问路的人给你指错路,你永远到不了店门口。
同一个页面还有个更容易忽略的坑:代理服务器。控制面板、网络、常规里有个「代理服务器」的设置,正常人家这里都该是关的,表弟这台不知道哪次折腾勾上了,勾着代理等于所有出门的流量先绕去一个早就不存在的代理地址,全军覆没。改完DNS顺手看一眼这里,一分钟的事。路由器侧的DNS要不要跟着改,可以参考水星那篇的写法,NAS是自己的DNS自己管,和路由器那层各是各的。
第二查:系统时间漂了,证书验证直接拒绝你
DNS改完,表弟的套件中心能打开首页了,但点安装还是失败。第二个要查的是系统时间。HTTPS连接要验证书,证书带着有效期,系统时间不对,验证直接失败,表现就是下载一半断掉、安装报错,提示还特别含糊,不跟你说时间是问题。去控制面板、区域选项里看,他那台机器的时间漂到了去年,时区也不对。原因也好笑,群晖和路由器一个脾气,断电之后时间没人管,他前阵子挪机器拔过一次电,NTP又没配置,时间就停在了一个错误的地方。
修法很简单,同一个页面把时区选对,勾上「与NTP服务器同步」,服务器填ntp.aliyun.com或者time.google.com都行,点立即更新,时间跳回来之后套件下载立刻就正常了。时间这个东西为什么断电就乱、NTP又是怎么一层层对时的,我在NTP那篇里拆过,家里的路由器、NAS、监控,断电时间归零的账都是一笔。顺手提一句,给NAS配上告警的家庭,可以加一条时间偏移的检查,这种静悄悄的坑,等你发现的时候往往已经错过好几天的定时任务了。
第三查:套件和机器对不对得上号
网络通了、时间对了,还剩一种失败:套件本身装不上。这里头有三个小项,一个一个对。第一是DSM版本,表弟这台跑的是DSM6.2,早停更了,现在不少新套件最低要求DSM7,装的时候直接弹「此套件与您的DSM版本不兼容」,这个没得绕,要么找老版本套件,要么考虑升级系统——升不升的纠结我写过一篇NAS系统更新,停更的老机器和小版本更新是两码事。第二是CPU架构,群晖有ARM机型和x86机型,套件包是分架构编译的,ARM机器装x86套件也是报错,买二手群晖之前就该把这个查清楚,验机那篇闲鱼二手群晖里提过。第三是空间,套件装在系统分区,老机器系统分区本来就小,装了一堆套件的,先去套件中心把不用的卸了再说,存储池满的账我在4T盘整理那篇里算过,系统分区挤满的症状比数据盘还隐蔽。
第四查:DSM6老机器的真凶,根证书过期
前三关都过了,表弟的社群源还是「无效的位置」。这就是老DSM6机器的经典病,我直接说结论:2021年9月底,一批老根证书到期,DSM6没升到最新小版本的系统里,证书包是老的,验不过现在套件源网站用的HTTPS新证书。源地址没问题、网络没问题,就是门卫拿着一本过期的通讯录,来人明明是真的,他认不出来,一律按假的拦下。当年这个坑一出,社群源的帖子下面全是一样的提问,官方后来在新的小版本里把证书更了,但停在老版本又没升级的机器,比如表弟这台,就一直烂在那。
解法两条路。省事的路是换源:有些国内还在维护的套件源用的是兼容老证书的部署方式,DSM6的机器加这类源能直接刷出来,源地址去套件中心的设置、套件来源里添加就行。彻底的路是动SSH,把系统里那份过期的证书文件换成新的:先在控制面板、终端机和SNMP里把SSH打开,怎么开我写过专门的篇,然后备份旧证书、下载新的证书文件替换过去,重启之后源就活了。具体命令我不往这抄,网上搜「群晖 DSM6 证书过期」排在最前面的教程跟着敲就行,动系统文件这步有变砖风险,敲之前把重要的东西先备份好,心里才有底。表弟那台我是两条路都试了,先换了源让他当夜把套件装上,证书的活留到他下次来我家再慢慢弄。
收尾:一张表对号,按顺序来别跳步
四个病根排完,回头看其实是一条链:网络层进不去,查DNS和代理;下载和安装失败,查时间和版本空间;第三方源无效,老机器查证书。给你一张对号表。
| 症状 | 病根 | 第一动作 |
| 首页转圈、连不上服务器 | 出不了门 | 网络设置里DNS改223.5.5.5,看代理勾 |
| 下载一半失败、安装报错 | 时间不对或版本不配 | 区域选项里NTP立即更新,看DSM版本要求 |
| 提示套件不兼容 | 版本或架构对不上 | 找老版本套件,或评估升级DSM |
| 第三方源无效的位置 | 老根证书过期 | 换兼容源,或SSH替换证书 |
顺序上坚持从外往里查,先网络、再时间、再版本、最后证书,别一上来就动SSH。还有个反常识的提醒:套件能不用就不用。表弟折腾这一晚上,最后装的那个下载套件功能还不如他原来跑的Docker版顺手,Docker升级要抄参数是麻烦了点,可那套流程我在容器升级里写过一遍就能学会,比给一台停更的老机器到处找兼容套件省心。套件中心这东西,查得会就够了。
