OpenWrt 是业内成熟的开源路由器 Linux 操作系统,凭借高度灵活的定制能力、完善的包管理与海量插件生态,成为路由固件领域的主流标杆,可深度拓展网络功能与个性化配置。ImmortalWrt 作为 OpenWrt 的本土化衍生分支,在其基础上针对国内网络环境做了大量优化,强化中文交互体验、提升国产路由器兼容性,更贴合国内用户日常使用需求。kwrt 则是基于 OpenWrt 打造的易用型定制固件,兼顾原生稳定性与便捷化操作,支持丰富插件与软件源扩展。三者均能让普通路由器突破原厂固件限制,实现功能全面升级,为网络管理与个性化部署提供更多可能。
但是你是否有曾想过自己自定义一个独属于自己固件?官方或别人制作的固件多多少少有点不太适合自己,或者想要有更丰富的设置,例如博主的RAX3000M NAND在下载ImmortalWrt 官方固件后所剩的空间在安装完”师夷长技以制夷”后所剩空间不足以安装更多的插件,但如果我们在编译时就提前安装好后,那就便有效地解决这个问题。



OpenWrt、ImmortalWrt官方自定义固件下载
OpenWrt、ImmortalWrt均有自定义预安装软件包和/或首次启动脚本(Kwrt部分功能需赞助解锁但配置功能更方便)
ImmortalWrt 固件 专为国内网络优化 开箱即用,插件丰富 更好支持国产硬件 内置加速、DNS 优化 编译友好,适合懒人刷机
OpenWrt 固件 官方原生,生态极广 稳定可靠,兼容性强 软件仓库齐全,更新及时 社区庞大,文档完善 高度自定义,可深度裁剪


LuCI 应用软件包推荐
## 命令与系统管理
- `luci-app-commands`:Shell 命令模块,提供执行自定义命令的界面
- `luci-app-ttyd`:TTYD 终端,可在浏览器中直接访问路由器 SSH 命令行
- `luci-app-watchcat`:断网自动重启,监控网络状态
- `luci-app-autoreboot`:计划重启,支持定时维护
## 网络加速与优化
- `luci-app-turboacc`:Turbo ACC 网络加速,包含 BBR、DNS 缓存、软硬流量分流加速
- `luci-app-sqm`:SQM QoS,基于队列机制的流量控制,解决网络拥塞与高延迟
- `luci-app-eqos`:简单网速控制,可对局域网 IP/MAC 地址限速
- `luci-app-upnp`:UPnP 自动端口映射,优化 P2P 下载与游戏联机
## 广告拦截与隐私保护
- `luci-app-adguardhome`:AdGuard Home,全网广告拦截与隐私保护 DNS 服务器
- `luci-app-adblock`:轻量级广告屏蔽,基于 DNS 劫持
- `luci-app-dnsfilter`:DNS 广告过滤,基于 DNS 劫持屏蔽广告
- `luci-app-smartdns`:SmartDNS,防 DNS 污染,多 DNS 优选并返回最快 IP
## 文件共享与 NAS
- `luci-app-samba4`:Samba 网络共享,支持 Windows/Mac 局域网文件共享
- `luci-app-ksmbd`:内核级 SMB 服务器,性能更高
- `luci-app-hd-idle`:闲置 USB 硬盘自动休眠,延长寿命
- `luci-app-minidlna`:miniDLNA 媒体服务器,支持投屏到智能电视
- `luci-app-diskman`:网页端磁盘管理,支持分区、格式化、挂载硬盘
## 下载工具
- `luci-app-aria2`:Aria2 多线程下载工具,支持 HTTP、BT、磁力链
- `luci-app-transmission`:轻量 BT/PT 下载工具
- `luci-app-qbittorrent`:全能 BT/PT 下载器,适合大硬盘挂机
- `luci-app-amule`:电驴 eD2k 下载工具
## 远程访问与 VPN
- `luci-app-wireguard`:轻量高速 WireGuard VPN
- `luci-app-openvpn`:成熟企业级 OpenVPN
- `luci-app-frpc`:FRP 内网穿透客户端
- `luci-app-tailscale`:基于 WireGuard 的异地组网工具
## 动态 DNS 与网络服务
- `luci-app-ddns`:动态 DNS,支持阿里、腾讯、DuckDNS 等平台
- `luci-app-dnspod`:DNSPod 动态域名解析
- `luci-app-aliddns`:阿里云动态 DNS 服务
## 界面与主题
- `luci-theme-argon`:现代化 Argon 主题,支持暗色模式
自定义Kwrt固件
虽然官方的自定义固件功能已经做的很好了,但有个很大的缺点,就是软件源稀缺,部分好用的小插件并不在官方的软件源中,比如pw2,网易云灰色解锁等。
但Kwrt没有这个缺点,Kwrt是基于Openwrt,添加了自建软件库,软件丰富程度高出原版一大截。缺点是免费用户自定义程度略差,还附带略微推广。
但优点也很明显,那就是简单、方便,随便点一下,等一会就有一个属于自己的、拥有丰富插件的Openwrt固件




手动编译OpenWrt、ImmortalWrt固件
即便官方提供了自定义固件的功能,但有可能还是无法满足广大网友的需求。比如RAX3000M NAND有大佬做出来了高功率的闭源驱动,不包含在官方的源码中。不过大佬在github公布了部分源码,我们只需要拉取编译即可。
可是,拉取编译?这可让我们这些小白无从下手了,什么配置环境、获取源码之类的看着就让人头大。
但是,有大佬做出来让Github Action为我们编译一个Openwrt固件,让我们跳过那些烦人的环境配置,只需点两下即可完成固件的编译
Github Action编译插件
首先进入下面的仓库,fork一个到自己的仓库中,然后进入自己的仓库进行修改配置

fork完成后进入自己的仓库,在.github/workflows/openwrt-builder.yml中修改源码的仓库,这个地址填写你想要编译的固件源码即可,无需一致但要求地址和分支正确

同时还需填写.config文件内容,具体操作参考GitHub Actions 在线云编译 OpenWrt 固件
通过 tmate 连接到 GitHub Actions 虚拟服务器环境,可直接进行 make menuconfig 操作生成编译配置,或者任意的客制化操作。也就是说,你不需要再自己搭建编译环境了。这可能改变之前所有使用 GitHub Actions 的编译 OpenWrt 方式。
在Run Workflow时把SSH connection to Actions的值改为true(或者也可以不修改,而是通过 webhook 方式发送带有ssh触发关键词的请求。)
在触发工作流程后,在 Actions 日志页面等待执行到SSH connection to Actions步骤,会出现类似下面的信息:
To connect to this session copy-n-paste the following into a terminal or browser:
ssh [email protected]
https://tmate.io/t/Y26QeagDtsPXp2mT6me5cnMRd
复制 SSH 连接命令粘贴到终端内执行,或者复制链接在浏览器中打开使用网页终端。(网页终端可能会遇到黑屏的情况,按 Ctrl+C 即可)
cd openwrt && make menuconfig
完成后按Ctrl+D组合键或执行exit命令退出,后续编译工作将自动进行。
TIPS: 固件目录下有个config.seed或者config.buildinfo文件,如果你需要再次编译可以使用它
仓库目录有两个 DIY 脚本:diy-part1.sh 和 diy-part2.sh,它们分别在更新与安装 feeds 的前后执行,你可以把对源码修改的指令写到脚本中,比如修改默认 IP、主机名、主题、添加 / 删除软件包等操作。
比如想安装一个mosdns,那就需要在diy-part1.sh中添加如下内容
echo "src-git mosdns https://github.com/sbwml/luci-app-mosdns.git" >> feeds.conf.default


确认一切配置无误后可以在仓库菜单中的Action项开始固件编译

Ending
到这里,从官方在线自定义到Kwrt 一键定制,再到GitHub Action 零门槛云编译,三种打造专属 OpenWrt/ImmortalWrt 固件的方法就全部分享完了。不管你是不想折腾的懒人、追求插件丰富度的普通用户,还是需要特殊驱动与深度定制的进阶玩家,都能找到适配自己的方式,彻底解决路由器固件空间不足、插件不合心意、功能受限的问题。
编译与刷机的核心始终是稳定优先、按需定制,不用盲目堆砌插件,适合自己日常使用的固件才是最好的。如果你在用 RAX3000M 或其他 MTK 机型,也可以试着用文中的源码与方法,编译出专属自己的高适配固件。









