ImmortalWrt iStore 版 KSpeeder 省流教学:自建镜像源与 Docker 加速配置(J1900 实测)

在 ImmortalWrt 上通过 iStore 安装 KSpeeder 后,如何配置自建镜像源、让 Docker 加速生效,以及科学上网环境下的直连设置。

实测环境:Maxtang BYT50 / Intel Celeron J1900 / ImmortalWrt 24.10.6 (x86/64) / KSpeeder iStore 版 V0.8.1
最后更新:2026-11-08

如果你在 ImmortalWrt 上通过 iStore 装了 KSpeeder,但发现内置镜像源不够用、想加自己的源,却发现网上教程教的都是 Docker 部署版的路径,跟 iStore 版完全对不上——这篇就是写给你的。iStore 版的配置文件位置、生效方式,以及自建源的格式,都和 GitHub 项目里的 Docker 版本不一样。

这篇教程覆盖三件事:iStore 版自建源怎么写、改完怎么让它生效,以及 ImmortalWrt 上 Docker 加速配置到底该改哪个文件。

iStore 版和 Docker 版,配置文件根本不是一个地方

这是最容易踩的坑。GitHub 项目 kspeeder/docker_kspeeder 里写的配置路径是 /kspeeder-config/nodes.yaml,推荐用 KS_USER_NODES_CONFIG 环境变量指定。

但 iStore 安装的 KSpeeder V0.8.1,配置目录在 /Configs/iStoreEnhance,自建源文件是 kspeeder.yml,格式也不是 nodes.yaml 那套。

如果你照着 GitHub 的教程去改 nodes.yaml,改完发现毫无效果,原因就在这里。

第一步:找到并编辑 iStore 版的自建源文件

SSH 登录软路由,编辑:

1
vi /Configs/iStoreEnhance/kspeeder.yml

内容格式如下(把你信得过的镜像源填进去):

1
2
3
4
5
6
7
mirrors:
  - url: "https://docker.m.daocloud.io"
  - url: "https://dockerproxy.net"
  - url: "https://docker.1ms.run"
  - url: "https://docker.1panel.live"
  - url: "https://docker.sparkcr.cn"
  - url: "https://hub.rat.dev"

这个格式是 iStore 版专用的,和 Docker 版的 nodes.yaml(使用 docker:、domainfold: 等块结构)完全不同。不要在 iStore 版里套用 nodes.yaml 的写法。社区讨论也确认了 iStoreOS 下的 KSpeeder 需要在页面里修改服务器列表后再关闭、启动才能生效。

第二步:改完必须手动“关一次再开一次”

iStore 版的配置重载不依赖 docker restart 命令,而是通过 LuCI 界面操作。

操作路径:LuCI → iStore → KSpeeder → Global settings

  1. 取消勾选【启用】,点一次保存/应用。
  2. 重新进入该页面,勾选【启用】,再点一次保存/应用。

这个“关→开”的动作会触发 KSpeeder 重新读取 kspeeder.yml。只改文件不重启服务,新源不会生效。

第三步:验证自建源是否被加载

访问管理面板:

1
http://你的软路由IP:5003

在面板里查看镜像服务器列表,确认你刚才写入 kspeeder.yml 的地址是否出现。

如果没出现,检查两件事:

  • 文件路径是否正确:/Configs/iStoreEnhance/kspeeder.yml。
  • 是否严格执行了“关→开”步骤。

科学上网环境下的关键设置:把加速域名加入直连

如果你软路由上开着代理/科学上网软件,有一个必须做的配置:把 registry.linkease.net 和 registry.linkease.net:5443 加入直连规则,不能走代理。

原因很简单:registry.linkease.net 在你的局域网里应该解析到软路由本机(或部署 KSpeeder 的设备),走代理会把流量绕到外部,导致加速失效甚至拉取超时。

在你的代理软件(OpenClash / PassWall / SSR+ 等)的规则里,添加直连域名:

1
registry.linkease.net

端口 5443 如果规则支持按端口区分,一并放行。核心原则就一条:这个域名必须直连,不走任何代理节点。

ImmortalWrt 上配 Docker 加速:别改 daemon.json,改 /etc/config/dockerd

这是 ImmortalWrt 和其他 Linux 发行版最大的不同。很多教程教你编辑 /etc/docker/daemon.json,但在 ImmortalWrt 上,这个文件改了大概率不生效——有用户明确反馈“/etc/docker/daemon.json 我放了文件,重启了 docker 不生效”。

ImmortalWrt 的 Docker 包使用 UCI 配置体系,正确的入口是 /etc/config/dockerd。OpenWrt 官方软件源里的这个文件模板本身就包含 list registry_mirrors 的示例。

正确的配置方式

SSH 登录软路由,编辑:

1
vi /etc/config/dockerd

在 config globals 'globals' 段落中添加:

1
list registry_mirrors 'https://registry.linkease.net:5443'

保存后重启 Docker:

1
/etc/init.d/dockerd restart

验证:

1
docker info | grep -A2 "Registry Mirrors"

看到 https://registry.linkease.net:5443 就说明生效了。

关于 /tmp/dockerd/daemon.json

你在 /tmp/dockerd/daemon.json 里看到的 registry-mirrors 配置,是 ImmortalWrt 的 Dockerd 启动脚本根据 UCI 配置运行时生成的。直接编辑 /tmp 下的这个文件,Docker 重启后会丢失或被覆盖。不要改它。

局域网其他设备怎么用这个 KSpeeder

如果你的 NAS 或另一台 Linux 设备也想走软路由的 KSpeeder,需要两步。

1. 让其他设备能解析加速域名

在其他设备上把 registry.linkease.net 指向软路由 IP。Linux 设备编辑 /etc/hosts:

1
sudo vi /etc/hosts

添加一行(把 IP 换成你的软路由实际地址):

1
192.168.1.X registry.linkease.net

2. 配置该设备的 Docker

注意:这一步取决于那台设备是什么系统。

  • 如果是 Ubuntu、Debian 等标准 Linux 发行版,通常使用 /etc/docker/daemon.json。
  • 如果是群晖等 NAS,根据其 Docker 管理界面或系统配置方式设置镜像加速。
  • 如果也是 OpenWrt / ImmortalWrt,同样使用 /etc/config/dockerd,不要照搬标准 Linux 的配置方式。

标准 Linux(systemd)配置示例:

编辑 /etc/docker/daemon.json:

1
2
3
4
5
{
  "registry-mirrors": [
    "https://registry.linkease.net:5443"
  ]
}

重启 Docker:

1
2
sudo systemctl daemon-reload
sudo systemctl restart docker

OpenWrt / ImmortalWrt 配置示例:

编辑 /etc/config/dockerd,在 config globals 'globals' 段落中添加:

1
list registry_mirrors 'https://registry.linkease.net:5443'

重启 Docker:

1
/etc/init.d/dockerd restart

验证:

1
docker info | grep "registry.linkease.net"

J1900 上的缓存注意事项

iStore 版 KSpeeder 的缓存路径在软件设置里显示为 //Configs/iStoreEnhance。J1900 软路由的系统盘通常不大,缓存积累多了可能占满存储。

建议:在 iStore KSpeeder 的 Global settings 里,把 Cache Path 改到大容量存储上(比如挂载的 U 盘或 SSD 分区),不要留在系统盘。改完同样执行“关→开”让设置生效。

避坑速查

问题原因与解法
改了 kspeeder.yml 但新源没出现没做“关→开”操作,或者文件路径写错(应为 /Configs/iStoreEnhance/kspeeder.yml)
照着 GitHub 教程改 nodes.yaml 无效iStore 版用的是 kspeeder.yml + mirrors: 格式,不是 Docker 版的 nodes.yaml
改了 /etc/docker/daemon.json 加速不生效ImmortalWrt 要用 /etc/config/dockerd 里的 list registry_mirrors,不是 daemon.json
开着代理时加速时好时坏registry.linkease.net 和 :5443 没加入直连,流量走了代理
软路由存储被缓存占满在 Global settings 里把 Cache Path 改到大容量存储,然后关→开重载

一句话总结:iStore 版 KSpeeder 的自建源在 /Configs/iStoreEnhance/kspeeder.yml,格式是 mirrors: 列表,改完必须在 LuCI 里关一次再开一次才生效。ImmortalWrt 本机配 Docker 加速要改 /etc/config/dockerd,加 list registry_mirrors;标准 Linux 才使用 systemctl。开着科学上网的话,记得把 registry.linkease.net 加入直连。

使用 Hugo 构建
主题 Stack 由 Jimmy 设计