关于安装 OpenWrt 固件 或 ImmortalWrt 固件

一、关于 OpenWrt 固件介绍

OpenWrt 是一个广泛使用的开源固件项目,专门为路由器和其他网络设备设计。它不仅提供了基础的网络功能,还允许用户自定义设备的功能,使其成为一个非常强大的平台。

  1. 起源和发展

    • OpenWrt 最初是在2000年代初为 Linksys WRT54G/GS 路由器开发的一个固件替代品。
    • 随着时间的发展,OpenWrt 社区不断壮大,支持的设备种类也越来越多,涵盖了从消费级路由器到企业级网络设备。
  2. 特点

    • 高度可定制:OpenWrt 提供了一个 Linux 操作系统的框架,用户可以根据自己的需求安装各种软件包,包括防火墙、DNS服务器、代理服务器等。
    • 稳定性:OpenWrt 的内核和用户空间应用程序经过了严格的测试和优化,以确保在资源有限的设备上也能稳定运行。
    • 安全性:OpenWrt 提供了一系列的安全特性,包括防火墙规则、SSL/TLS 加密支持等,有助于保护用户的网络免受攻击。
    • 支持广泛的设备:OpenWrt 支持大量的硬件平台,从常见的家用路由器到工业级设备,甚至可以运行在一些非路由器设备上。
  3. 包管理系统

    • OpenWrt 使用 opkg 作为包管理系统,类似于 Debian 和 Ubuntu 中的 apt 或者 Red Hat 和 CentOS 中的 yum
    • 用户可以通过简单的命令行操作安装和卸载软件包,极大地扩展了设备的功能。

OpenWrt 的应用场景

  1. 家庭网络

    • 家庭用户可以使用 OpenWrt 来增强他们的路由器功能,比如设置家长控制、QoS(服务质量)、广告拦截等。
    • 可以通过 OpenWrt 实现软路由功能,提高家庭网络的性能和稳定性。
  2. 企业网络

    • OpenWrt 也适用于企业环境,可以实现复杂的网络配置,如 VLAN、负载均衡、冗余连接等。
    • 企业用户还可以利用 OpenWrt 的高可用性和冗余特性来构建可靠的网络基础设施。
  3. 物联网设备

    • OpenWrt 可以用作物联网设备的操作系统,提供安全性和灵活性。

安装 OpenWrt

  1. 刷写固件

    • 用户可以通过官方网站下载适合自己设备型号的固件文件,并通过设备的 Web 界面或 TFTP 方式进行刷写。
    • 对于一些设备,也可以通过 USB 或 SD 卡来安装 OpenWrt。
  2. 首次启动配置

    • 刷写完成后,设备会自动重启,并进入 OpenWrt 的初始配置界面。
    • 用户需要设置网络参数、管理员密码等基本信息。
  3. 软件包安装

    • 通过 opkg 命令安装所需的软件包,以扩展路由器的功能。

相关项目

除了 OpenWrt 本身之外,还有一些基于 OpenWrt 的衍生项目,如:

  • LEDE(LINUX Embedded Development Environment)
    • LEDE OpenWrt 是OpenWrt的一个分支,专注于提高稳定性和安全性,并且致力于解决 OpenWrt 中存在的一些长期未解决的问题。
    • 2017年底,LEDE 项目宣布与 OpenWrt 项目合并,LEDE 的开发成果被整合进 OpenWrt 主线。
    • 自合并之后,LEDE 的功能和改进也被纳入了 OpenWrt 的主版本中,因此现在提到 OpenWrt 时,实际上已经包含了 LEDE 的许多改进。
  • ImmortalWRT:另一个 OpenWrt 的分支,旨在解决 OpenWrt 中的一些长期存在的问题,并支持更多的设备。

OpenWRT下载地址

https://openwrt.org/zh/downloads

https://firmware-selector.openwrt.org/

Default login address:http://192.168.1.1/ or http://openwrt.lan/, username: root, password: none.

 

二、关于 Lean 版本 OpenWrt 固件介绍

Lean 版本的OpenWrt固件是由一位名叫 Leo "lean" 的开发者维护的OpenWrt分支。这个分支因其精简、高效和高度可定制的特点而受到许多高级用户的喜爱。以下是关于Lean版本OpenWrt固件的一些详细介绍:

Lean 固件的特点

  1. 精简

    • Lean 固件去除了许多不必要的默认组件,仅保留核心功能,从而使固件更加轻便。
    • 这种精简使得固件占用的空间更少,启动速度更快。
  2. 高效

    • Lean 固件优化了内存使用和性能表现,使得路由器在处理高负载任务时仍然保持高效。
    • 特别适合高性能网络应用,如游戏加速、流媒体传输等。
  3. 定制性强

    • 用户可以根据自己的需求选择安装哪些组件,从而实现个性化的配置。
    • Lean 固件通常提供了丰富的软件包库,用户可以安装各种插件来扩展路由器的功能。
  4. 安全性

    • Lean 固件通常会及时更新补丁,以确保安全性。
    • 用户可以根据需要安装额外的安全组件,如防火墙规则、加密支持等。

注意事项

  1. 设备兼容性

    • 在选择 Lean 固件之前,请确保您的设备型号得到了支持,并且有相应的固件版本可供下载。
    • 通常在 GitHub 仓库或者其他下载站点会有明确的支持设备列表。
  2. 风险提示

    • 刷写固件是一项较为专业的操作,如果不小心可能会导致设备变砖(无法正常启动)。
    • 在刷写前,请确保了解相关风险,并准备好相应的恢复措施。

 

三、关于 ImmortalWrt 固件介绍

这个github上最简单的介绍:

immortalwrt/immortalwrt: An opensource OpenWrt variant for mainland China users. (github.com):面向中国大陆用户的开源 OpenWrt 变体

  1. 起源

    • ImmortalWrt 起源于 OpenWrt,但在某些方面进行了改进和增强。
    • 它最初是为了修复 OpenWrt 中的一些长期存在的问题而开发的,后来逐渐发展成为一个独立的项目。
    • 它依旧跟随着OpenWrt的版本迭代,没错,但是它略微慢于官方最新版本。
  2. 特点

    • 稳定性:提供了更高的稳定性和可靠性。
    • 包管理:拥有丰富的软件包管理系统,可以方便地安装各种附加组件。(可以在国内的网络环境中更新、安装软件包,对国内用户非常友好)
    • 支持设备:支持广泛的路由器和其他网络设备,包括一些不再受官方 OpenWrt 支持的设备。
    • 社区支持:拥有活跃的开发者社区,不断更新和改进。

 

四、immortalwrt下载地址:

https://downloads.immortalwrt.org/

https://firmware-selector.immortalwrt.org/

Default login address: http://192.168.1.1 or http://immortalwrt.lan, username: root, password: none.

 

五、关于固件格式的选择和系统安装

VMDK (Virtual Machine Disk)
VMDK 文件格式是由VMware开发的,用于其虚拟化产品(如VMware Workstation, Fusion, ESXi等)
VDI(Virtual Disk Image)
VDI 文件格式是Oracle VirtualBox使用的默认磁盘格式。虽然最初是VirtualBox专有的,但它也逐渐被其他虚拟化平台所支持。
VHDX(Virtual Hard Disk)
VHDX 文件格式是由微软引入的,用于Hyper-V和其他Windows虚拟化工具。它是VHD格式的升级版本,旨在解决VHD的一些局限性。

1、ext4和squashfs的区别

ext4的固件方便扩容,但是不能重置路由器

squashfs的固件也能扩容,更能够重置路由器(所以强力推荐

2、关于有-efi的和无-efi的区别

1. 引导过程

  • 有-EFI:EFI系统使用一种称为EFI引导的方式加载操作系统。EFI固件提供了一个安全的引导流程,允许操作系统从EFI分区(ESP,EFI System Partition)加载引导加载程序。EFI引导加载程序可以执行更复杂的代码,并且通常具有更高的安全性。
  • 无-EFI:传统BIOS(基本输入输出系统)系统使用MBR(主引导记录)来引导操作系统。MBR位于硬盘的第一个扇区,包含引导加载程序和分区表。

2. 硬件初始化

  • 有-EFI:EFI固件使用EFI驱动程序来初始化硬件,这些驱动程序可以比传统的BIOS初始化过程提供更多功能,并且通常更可靠。
  • 无-EFI:BIOS系统使用ROM中的固件来初始化硬件,这些固件通常功能较为有限。

3. 安全性

  • 有-EFI:EFI固件支持安全启动功能,这可以防止未经授权的操作系统加载,并且可以验证引导加载程序和操作系统的签名,提高了系统的安全性。
  • 无-EFI:传统BIOS系统缺乏内置的安全启动机制,因此更容易受到恶意软件的攻击。

4. 分区支持

  • 有-EFI:EFI系统通常使用GPT(GUID分区表)格式的磁盘,这种格式支持更多的分区和更大的磁盘容量。
  • 无-EFI:BIOS系统通常使用MBR(主引导记录)格式的磁盘,MBR格式的最大支持容量较小,并且只能支持四个主分区。

5. 实际应用场景

  • 有-EFI:大多数现代PC、笔记本电脑、服务器以及其他高端设备都支持EFI引导。
  • 无-EFI:一些老旧的计算机系统仍然使用传统的BIOS引导。

 

3、如果你是直接安装在硬件设备上“R2S、R4S路由器 或 X86小主机”

你应该选择

  1. generic-ext4-combined-efi.img.gz
  2. generic-squashfs-combined-efi.img.gz

这些文件通常用于EFI引导的计算机,并且包含了启动所需的EFI引导加载程序和支持文件。

或者选择(传统的BIOS)引导

  1. generic-ext4-combined.img.gz
  2. generic-squashfs-combined.img.gz

这里推荐squashfs-combined-efi 或 squashfs-combined的版本

下载后操作,还需要后面五步:

  1. 下载PE系统
  2. 下载硬盘写入工具Disk Image
  3. PE系统制作到U盘中,这里会格式化整个U盘,内容资料需要提前备份
  4. 把硬盘写入工具Disk ImageOpenWrt固件拷贝到U盘中。
  5. 重启电脑进入PE系统PE系统下使用硬盘写入工具Disk Image,OpenWrt固件写入硬盘。

PE系统推荐干净的微PE,这个系统不会强行绑定广告、后门,良心系统。(根据你的硬件新旧和支持程度,下载PE版本,尽量安装那个新的V2.3的64位版本,传统的老硬件需要BIOS引导的下载V1.3的版本)

微PE下载地址

硬盘写入工具Disk Image

Roadkil's Disk Image下载地址

这里有别人的安装教学(快进到3分40秒开始硬盘安装):https://www.youtube.com/watch?v=zbxTvRO9SKY&t=307s

 

4、如果你是直接安装在VMware ESXi中(All in One小主机)

最适合的选择通常是.vmdk格式的文件,因为它可以直接在ESXi上使用,而不需要额外的转换步骤。在您的列表中,有两个.vmdk格式的文件。

你应该选择:

  1. generic-ext4-combined-efi.vmdk.gz
  2. generic-squashfs-combined-efi.vmdk

或者选择(传统的BIOS)引导

  1. generic-ext4-combined.vmdk.gz
  2. generic-squashfs-combined.vmdk

这里推荐squashfs-combined-efi 或 squashfs-combined的版本

目前我下载到最新版本,从uname -a命令的输出中可以看出:

这是一个基于GNU工具集的Linux发行版,Linux内核的版本号5.15.162,是基于x86_64架构的ImmortalWRT固件,内核的编译时间Thu Jul 18 06:35:54 2024,内核编译的次数为0。

uname -a
Linux ImmortalWRT 5.15.162 #0 SMP Thu Jul 18 06:35:54 2024 x86_64 GNU/Linux

cat /proc/version命令还可以看到更详细的版本信息

 

 

下载后操作,还需要VMware的格式转化:

使用EXSI安装,这里需要ssh到exsi后台,然后执行vmdk文件转化

现在后台打开远程SSH服务

明确存储路径

# 转换vmdk
# 进入镜像的目录 点击存储,选中存储即可看到位置(即目录)
cd /vmfs/volumes/534d1f5e-9fd04708-67d4-0010187a32d8/openwrt
# 转换命令
vmkfstools -i [原磁盘文件全称] [新磁盘文件全称]
vmkfstools -i A.vmdk A-new.vmdk -d thin
# 其中【 -i 】作用是转换,【 -d thin 】作用是将新磁盘文件使用“精简置备模式”。

SSH进入后台——上传VMDK文件——执行转化命令,执行过程如下:

[root@localhost:/vmfs/volumes/66689db1-638700f8-3ab9-5c6f690e1270/OpenWRT] ls
immortalwrt-23.05.3-x86-64-generic-squashfs-combined-efi.vmdk
[root@localhost:/vmfs/volumes/66689db1-638700f8-3ab9-5c6f690e1270/OpenWRT] vmkfstools -i immortalwrt-23.05.3-x86-64-generic-squashfs-combined-efi.vm
dk OpenWrt-Desk.vmdk -d thin
Destination disk format: VMFS thin-provisioned
Cloning disk 'immortalwrt-23.05.3-x86-64-generic-squashfs-combined-efi.vmdk'...
Clone: 100% done.
[root@localhost:/vmfs/volumes/66689db1-638700f8-3ab9-5c6f690e1270/OpenWRT]

 

 


修改Openwrt官方源的方法(ImmortalWrt 不建议修改)

几个官方指定的国内镜像源:[OpenWrt Wiki] 下载

国内默认无法更新国外源里面的软件,更换源后,就可以正常访问了,解决无法安装软件的困扰。

打开默认的源配置文件

vim /etc/opkg/distfeeds.conf

 首先,备份原始的镜像源(23.05.4版本备份),并且一会儿会用到。

src/gz openwrt_core https://downloads.openwrt.org/releases/23.05.4/targets/x86/64/packages
src/gz openwrt_base https://downloads.openwrt.org/releases/23.05.4/packages/x86_64/base
src/gz openwrt_luci https://downloads.openwrt.org/releases/23.05.4/packages/x86_64/luci
src/gz openwrt_packages https://downloads.openwrt.org/releases/23.05.4/packages/x86_64/packages
src/gz openwrt_routing https://downloads.openwrt.org/releases/23.05.4/packages/x86_64/routing
src/gz openwrt_telephony https://downloads.openwrt.org/releases/23.05.4/packages/x86_64/telephony

根据上面的内容,将官方URL的前半部分,https://downloads.openwrt.org,修改为官网指定的几个镜像源的URL,比如https://mirrors.tuna.tsinghua.edu.cn/openwrthttps://mirrors.ustc.edu.cn/openwrt

修改为 清华大学镜像源 (以23.05.4版本为例,别的版本也可以按需更改)

src/gz openwrt_core https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/23.05.4/targets/x86/64/packages
src/gz openwrt_base https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/23.05.4/packages/x86_64/base
src/gz openwrt_luci https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/23.05.4/packages/x86_64/luci
src/gz openwrt_packages https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/23.05.4/packages/x86_64/packages
src/gz openwrt_routing https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/23.05.4/packages/x86_64/routing
src/gz openwrt_telephony https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/23.05.4/packages/x86_64/telephony

或者修改为 中国科学技术大学软件源(以23.05.3版本为例)这个网站不能FQ访问,不然拉黑你(可能每次1-3天)。

src/gz openwrt_core https://mirrors.ustc.edu.cn/openwrt/releases/23.05.3/targets/x86/64/packages
src/gz openwrt_base https://mirrors.ustc.edu.cn/openwrt/releases/23.05.3/packages/x86_64/base
src/gz openwrt_luci https://mirrors.ustc.edu.cn/openwrt/releases/23.05.3/packages/x86_64/luci
src/gz openwrt_packages https://mirrors.ustc.edu.cn/openwrt/releases/23.05.3/packages/x86_64/packages
src/gz openwrt_routing https://mirrors.ustc.edu.cn/openwrt/releases/23.05.3/packages/x86_64/routing
src/gz openwrt_telephony https://mirrors.ustc.edu.cn/openwrt/releases/23.05.3/packages/x86_64/telephony

修改完镜像源后,第一时间可以试着在“软件包”安装一个luci-i18n-base-zh-cn改成中文界面 ,OpenClash 等插件不集成在内,请自行去 github 里下载操作,也可以看下面的第三方源下载。

修改添加自定义源

vim /etc/opkg/customfeeds.conf

在此文件中添加自定义源

src/gz immortalwrt_luci https://downloads.immortalwrt.org/releases/23.05.3/packages/x86_64/luci
src/gz immortalwrt_base https://downloads.immortalwrt.org/releases/23.05.3/packages/x86_64/base
src/gz immortalwrt_packages https://downloads.immortalwrt.org/releases/23.05.3/packages/x86_64/packages
src/gz openwrt_ai_kiddin9 https://dl.openwrt.ai/packages-23.05/x86_64/kiddin9
关闭签名检查

如果添加自定义的源时,不添加密钥(或者密匙有问题)就需要关闭签名检查。

vim /etc/opkg.conf

# 注释掉option check_signature这一行即可
# option check_signature
option check_signature 行使用 # 注释掉。

对软件源配置文件进行完修改后,更新软件列表 opkg update

这里强力推荐个第三方源

kiddin9/openwrt-packages

https://dl.openwrt.ai/

注意:手动去第三方源的web界面下载后上传,是比较稳妥的方法。在系统中修改第三方源,可能会遇到种种异常问题。

添加方法如下:

src/gz openwrt_kiddin9 https://dl.openwrt.ai/latest/packages/x86_64/kiddin9

这是immortalwrt的镜像源地址,国内也可用(也可用放入openwrt的第三方源用)

src/gz immortalwrt_core https://mirrors.vsean.net/openwrt/releases/23.05.3/targets/x86/64/packages
src/gz immortalwrt_base https://mirrors.vsean.net/openwrt/releases/23.05.3/packages/x86_64/base
src/gz immortalwrt_luci https://mirrors.vsean.net/openwrt/releases/23.05.3/packages/x86_64/luci
src/gz immortalwrt_packages https://mirrors.vsean.net/openwrt/releases/23.05.3/packages/x86_64/packages
src/gz immortalwrt_routing https://mirrors.vsean.net/openwrt/releases/23.05.3/packages/x86_64/routing
src/gz immortalwrt_telephony https://mirrors.vsean.net/openwrt/releases/23.05.3/packages/x86_64/telephony

opkg 的基本使用

下面的例子应该可以比较直观地看出来,一些基本的使用命令:

opkg update	#更新可用软件包列表
opkg upgrade 软件包名1 软件包名2 #升级软件包
opkg install dnsmasq #安装软件
opkg install http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/hiawatha_7.7-2_ar71xx.ipk # 安装软件
opkg install /tmp/hiawatha_7.7-2_ar71xx.ipk #安装软件
opkg install --force-depends dnsmasq #强制安装软件 尽管依赖项失败,但仍安装。
opkg remove 软件包名 #删除软件
opkg remove --force-depends example-package #强制删除软件 尽管依赖项失败,但仍删除。
opkg list #列出可用软件包
opkg list-installed #列出已安装软件包
opkg list-upgradable #列出可升级的已安装软件包

官方说明[OpenWrt Wiki] Opkg package manager

 


磁盘扩容

OpenWrt空间扩容:这波补充超有料!韩风Talk (f2fs文件系统)

 


 

关于第三方集成平台(有很多),因为可能有一些不安全的因素(可能会被动手脚)。我这里不多介绍(不推荐),不过有教学视频

 


辨别防火墙类型

首先分辨openwrt防火墙类别(iptables or nftables)、

通过ssh连接openwrt执行命令判断:

iptables -L

如果能正常列出规则,则表示使用的是iptables

nft list ruleset

如果能正常列出规则,则表示使用的是nftables

官方openwrt固件:OpenWrt 22.03系列专注于从基于iptables的防火墙3迁移到基于nftables的防火墙4

immortalwrt固件:过渡版本两者共存  默认使用nftables  最新版也单独使用nftables

Lean固件:iptables

 

关于dnsmasq的处理


immortalwrt软件包处直接安装,  官方openwrt手动安装、Lean的固件请使用已经编译好openclash的固件。

命令安装注意事项:

分辨后再根据对应的防火墙类别安装对应的依赖(阅读下面的注意事项再安装),然后安装Luci文件。

注意:如果安装依赖过程中有关于dnsmasq-full 的报错,一般是因为OpenClash 其中一项依赖是 dnsmasq-full,openwrt固件有的默认的是dnsmasq(可在已安装包中确认),需要删除dnsmasq再安装dnsmasq-full 。

opkg remove dnsmasq       卸载dnsmasq  安装依赖前执行卸载.

opkg remove dnsmasq && opkg install dnsmasq-full  卸载dnsmasq并安装dnsmasq-full,如果忘记卸载dnsmasq安装依赖后报错,执行这个.

 

一些终端执行命令:


修改网卡IP配置命令

vim /etc/config/network

重启网络配置的终端执行命令

/etc/init.d/network restart

 

wifi模块安装组件(BROADCOM博通BCM-943224HMS无线网卡)

brcmsmac-firmware
broadcom-43224-sprom

 

posted @ 2024-09-18 16:07  Magiclala  阅读(14780)  评论(0编辑  收藏  举报