OpenWrt 插件安装失败的常见问题和解决方法
最近给家里的软路由装了 OpenWrt,想着装点插件试试,比如魔法上网、广告屏蔽、流量统计啥的。结果一顿 opkg install
下来,报错一堆,看得人一头雾水。
所以这篇文章就整理一下我自己在折腾 OpenWrt 插件时踩过的坑,看看你是不是也遇到过这些问题。
一、插件装不上,opkg 报错咋办?
首先贴一条典型错误:
Unknown package 'luci-app-xxx'.
Collected errors:* opkg_install_cmd: Cannot install package luci-app-xxx.
这个报错意思是:找不到这个插件。那我们就得挨个排查了。
问题 1:没更新软件源(opkg list 是空的)
这个真的很常见,OpenWrt 刚刷完,啥都没更新。你直接装肯定失败。
解决方法:
先执行:
opkg update
然后再装插件,比如:
opkg install luci-app-upnp
问题 2:插件确实不存在
有些插件不是官方源提供的,比如 luci-app-ssr-plus
、passwall
,你在官方源里肯定找不到。
解决方法:
-
去插件项目的 GitHub 页面看看有没有对应的仓库和源地址;
-
或者使用别人编译好的固件(比如 Lean、L大、sirpdboy 提供的);
-
或者自己编译(这个以后专门写一篇说说);
-
可以试试搜索插件名:
opkg list | grep passwall
如果啥都没有,换源吧。
问题 3:依赖装不上,版本不匹配
这个也是一大头疼点,最典型的错误长这样:
* satisfy_dependencies_for: Cannot satisfy the following dependencies:* kmod-ipt-xxx
原因:
你现在用的系统内核是比如 5.15.114,而 opkg 源里的内核模块是 5.15.105,不兼容。
解决办法:
-
确认你使用的 OpenWrt 固件版本;
-
配套使用插件源(建议从编译固件那个人的地方拿插件);
-
最稳妥的方式就是:插件和固件版本必须严格一致。
问题 4:空间不足,装不了
尤其是用官方 release 镜像的 squashfs 格式,系统空间动不动就 20MB,装几个插件就爆。
怎么看空间:
df -h
解决方法:
如果你是 x86 或者支持挂 U 盘的设备,可以挂载一个分区作为 overlay:
# 假设你的 U 盘挂载到了 /mnt/sda1
mkdir -p /mnt/sda1/overlay
mount -o bind /mnt/sda1/overlay /overlay
reboot
这样以后插件就都装在这个分区了。
问题 5:DNS 配置有问题,无法连接外网
表现通常是 wget
报错:
wget: bad address 'downloads.openwrt.org'
解决方法:
修改 /etc/resolv.conf
加上 DNS:
echo "nameserver 8.8.8.8" > /etc/resolv.conf
或者你配置了上游网关没带 DNS,也可能是 DHCP 配置有问题。
二、实用命令小抄
操作 | 命令 |
---|---|
更新软件源 | opkg update |
安装插件 | opkg install luci-app-xxx |
搜索插件 | `opkg list |
查看空间 | df -h |
查看当前 opkg 源地址 | cat /etc/opkg/distfeeds.conf |
添加自定义插件源 | 编辑 /etc/opkg/customfeeds.conf |
三、建议和小结
-
不要盲目装插件,确认插件是不是和你现在的固件匹配;
-
装之前先 update;
-
如果 opkg 装不上,也可以用
.ipk
包本地安装; -
插件多的,建议自己编译固件,把插件直接打包进去。
OpenWrt 的世界真的很自由,但也因此需要自己动手多一点。遇到插件装不上,不用慌,大多数都是路径、源、版本、空间的问题,一点点排查就能搞定。
如果你在装插件时还遇到其他问题,欢迎留言分享经验,我们一起把 OpenWrt 玩明白!