ImmortalWrt是一个OpenWrt的分支固件,与官方原版的OpenWrt固件相比,近99%的相似度,但也有不同。以下是ImmortalWrt与lede、lean分支的区别。
lean 的固件有时会打包进闭源的组件,lean 的固件所基于的 openwrt 分支版本一般比较老。
immortalwrt 基本上是开源的。一些流行的闭源驱动或软件都没有被 immortalwrt 收录。这是 immortalwrt 与 lean 的 lede 的主要区别。
与 openwrt 相比,immortalwrt 有时会对系统、软件包进行一些修改。比如合并一些被认为是有优化效果的补丁,在界面上添加 cpu 负载、温度之类的信息,无线开启 256qam(但这个功能的兼容性不怎么好,而且好像没有针对机型优化,比如 mt7603 打开之后就连不上)。软件仓库会收录一些开源但 openwrt 仓库没有的应用。有的还会增加一些对系统优化的选项。还有修改默认参数以优化性能。比如,以前 openwrt 默认不漫游。如果打开漫游,默认的协议是 ft over ds。这个模式不被大多数手机兼容。而在 immortalwrt 中,默认打开漫游,协议默认值被预置为兼容性高的 ft over air。
此外,immortalwrt 通常还会先于 openwrt 提供一些后者尚未提供支持的机器的固件。
默认情况下 immortalwrt 打包的固件与 openwrt 的区别如下:
immortalwrt 额外添加了:
- block-mount 分区挂载。
- kmod-nf-nathelper 分流过滤插件,仅适用于 ipv4。可能被一些 VPN、流量重定向、过滤软件用到。大多数流量重定向和过滤软件使用防火墙规则实现,故该插件可能在大多数情况下用不到。
- kmod-nf-nathelper-extra 前述插件的协议扩展插件,但仍然仅适用于 ipv4。
- luci-app-opkg 软件包管理界面。其实不用写进打包列表。这是 luci 的其中一个依赖,安装 luci 时会自动安装。但是只安装 luci-app-opkg 还是没有中文,所以应该替换为安装 luci-i18n-opkg-zh-cn。
- luci-compat 用以兼容古代 luci 软件包的库。如果不使用很久以前开发的 luci 软件包,那么可能并不需要这个软件包。
- luci-lib-base luci 接口的基础库。其实不用写进打包列表。这是 luci-base 的其中一个依赖。安装 default-settings-chn 时会安装依赖 luci-i18n-base-zh-cn,进而安装依赖 luci-base。
- luci-lib-fs 该软件包没有介绍,我不知道它有什么用。在刷好的机器里,也找不到依赖它的软件。
- luci-lib-ipkg 旧版 opkg 的 luci 接口。在 openwrt 18 以后的版本里是无用的,不知道为什么也被放进打包列表。
immortalwrt 将一些精简版软件替换为完整版:
- dnsmasq 替换为 dnsmasq-full,后者被很多流量重定向和过滤类软件用到。
- libustream-mbedtls 和 wpad-basic-mbedtls 替换为 libustream-openssl 和 wpad-openssl(在低配机器上换为 wpad-basic-openssl),这样做的考虑我估计是因为很多加密代理使用 openssl。但现在很多加密代理使用 go 或 rust 编写,并不依赖系统组件,因此我在我的机器上使用功能和性能都兼顾的 wpad-mbedtls。
immortalwrt 添加了 openwrt 软件库中没有的软件:
- autocore 获取 cpu 状态信息的脚本。
- default-settings-chn 安装依赖 luci-i18n-base-zh-cn,汉化界面;将软件包仓库、ntp 服务器设置为国内服务器。
- ipv6helper 包含 dhcpv6 和 6in4 协议部署脚本。但大多数家庭宽带只用到 dhcpv6,用不到 6in4 隧道,我推荐安装 odhcp6(dhcpv6客户端)和 odhcpd-ipv6only(dhcpv6服务器)来替代它。
其它我认为打包列表应该修改的地方:
- 删除 opkg 和 luci-app-opkg,替换为 luci-i18n-opkg-zh-cn。安装 luci-i18n-opkg-zh-cn 或 default-settings-chn(依赖关系为 default-settings -> luci -> luci-app-opkg -> opkg)时都会安装 opkg 和 luci-app-opkg。因此并不需要单独列出。
- 删除 luci 和 luci-lib-base。如前所述,安装 default-settings-chn 时会安装依赖项 luci 和 luci-lib-base。
- 将英文的 firewall4 替换为中文的 luci-i18n-firewall-zh-cn。安装时会安装依赖项 luci-app-firewall,进而安装 firewall4。