这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

安装

介绍 OpenWRT 的安装,使用,配置和优化

1 - 版本选择

在多种 OpenWRT 版本中进行选择

OpenWRT 支持多种方式的安装:

  • 虚拟机: 支持 esxi
  • 物理机

版本选择

x86-64版本

bleachwrt

经过几次对比,目前我选择使用的是这个版本:

https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=8433584&fromuid=559447

下载地址:

https://pan.baidu.com/s/1Y5i7fgaR0b_ieLCZgVVn2A?pwd=nnb7

理由:

  • 功能多:高大上版本
  • 持续更新

定制 bleachwrt

前几年选择的高大上版本(plus版)。

2026年8月,付费请原作者定制了一个特殊版本,在 plus (插件太多)和 mini (插件太少)之间选择了一个插件刚刚满足我个人需要的版本。之后就固定使用这个版本了。(以后要升级是不是还要再付费定制一次?汗)

定制的插件列表:

插件中文名 Luci App
iStore luci-app-store
实时监控 luci-app-netdata
释放内存 luci-app-ramfree
Web管理 luci-app-webadmin
TTYD 终端 luci-app-ttyd
磁盘管理 luci-app-diskman
分区扩容 luci-app-partexp
高级设置 luci-app-advanced
定时重启 luci-app-autoreboot
Argon主题设置 luci-app-argon-config
文件传输 luci-app-filetransfer
关机 luci-app-poweroff
腾讯云DDNS luci-app-tencentddns
Docker(Dockerman) luci-app-dockerman
OpenClash luci-app-openclash
微信推送 luci-app-serverchan
全能推送 luci-app-pushbot
上网时间控制 luci-app-accesscontrol
网络唤醒 luci-app-wol
KMS 服务器 luci-app-vlmcsd
MWAN3 分流助手 luci-app-mwan3helper
NFS 管理 luci-app-nfs
CloudDrive2 luci-app-clouddrive2
硬盘休眠 luci-app-hd-idle
网络共享(SMB) luci-app-samba4
qBittorrent luci-app-qbittorrent
ZeroTier luci-app-zerotier
IP/MAC绑定 luci-app-arpbind
流量统计 luci-app-bandwidthd
网速测试 luci-app-netspeedtest
多线多拨 luci-app-syncdial
负载均衡 luci-app-mwan3
网络带宽监视器 luci-app-nlbwmon
实时流量监测 luci-app-wrtbwmon
IPV6 ipv6helper

内核版本为:6.12.100

转换镜像文件

下载之后解压缩之后得到 img 格式的镜像文件,不同安装方式需要转换为其他不同的镜像格式。

2 - 在 PVE 上安装 OpenWRT

介绍 openwrt 在 PVE 上的安装

安装

准备镜像

解压缩下载的 img.gz 文件,比如:

gunzip bleachwrt-mod-20260808-x86-64-generic-squashfs-combined-efi.img.gz

得到的 img 格式的镜像文件在 PVE 下可以直接使用,比 esxi 下方便。

新建虚拟机

在 PVE 下新建虚拟机:

  • 常规(general)

    取名 bleachwrt-mod,高级选项中先不勾选 “开机自启动”,等安装调试完成之后再勾选。

  • OS(操作系统)

    客户机操作系统选 linux,客户机操作系统版本选 6.x - 2.6 Kernel

    光驱选择不使用任何介质/Do not use any media。

  • system(系统)

    scci控制器使用默认的 “VirtIO SCSI single”, 机型选择 q35,勾选 Qemu Agent代理。Bios 选择默认的 SeaBIOS。

  • disk(磁盘)

    默认配置不用改,直接next,因为等下会删除这个磁盘,然后用 openwrt 的 img 镜像文件重新创建磁盘。

  • cpu

    考虑可能有科学上网的消耗,cpu给足一点,插槽1, 核心2或者4, 类型选 host。

  • memory(内存)

    内存给 2048 (2g)。

  • network(网络)

    桥接这里选已经建立好的桥接网卡,注意这个网卡是给 lan 用的。模型选 VirtIO(半虚拟化),其性能和效率最高。

    VirtIO 模型在 Openwrt 内会显示 “Unknown!半双工”,但实测不影响使用。

确认配置后就可以创建 openwrt 虚拟机了。

修改虚拟机配置

打开新创建的 openwrt 虚拟机的硬件配置,首选删除已有的硬盘,删除之后会出现一个“未使用的磁盘”,继续删除这个磁盘。

然后删除 CD/DVD 驱动器。

上传 openwrt 镜像文件

将前面准备好的 openwrt 的 img 文件上传到 pve 下。

可以通过页面上传,完成后文件会存储在 pve 下的固定目录,ssh 登录 pve 后可以看到

cd /var/lib/vz/template/iso/
ls -lh

类似:

ls -lh
total 1.1G
-rw-r--r-- 1 root root 1.1G Aug  8 16:26 bleachwrt-mod-20260808-x86-64-generic-squashfs-combined-efi.img

执行下列命令将这个 img 镜像倒入到虚拟机中:

qm importdisk 1101 /var/lib/vz/template/iso/bleachwrt-mod-20260808-x86-64-generic-squashfs-combined-efi.img local

qm importdisk 998001 /var/lib/vz/template/iso/bleachwrt-mod-20260808-x86-64-generic-squashfs-combined-efi.img local

备注:

  1. 1101 为虚拟机的 ID, 替换为实际 ID
  2. local 是存储的名字,我将默认创建的 local-lvm 删除了,空间合并到 local。

输出为:

importing disk '/var/lib/vz/template/iso/bleachwrt-mod-20260808-x86-64-generic-squashfs-combined-efi.img' to VM 1101 ...
Formatting '/var/lib/vz/images/1101/vm-1101-disk-1.raw', fmt=raw size=1141145088 preallocation=off
transferred 0.0 B of 1.1 GiB (0.00%)
transferred 12.0 MiB of 1.1 GiB (1.10%)
transferred 24.1 MiB of 1.1 GiB (2.21%)
......
transferred 1.1 GiB of 1.1 GiB (99.24%)
transferred 1.1 GiB of 1.1 GiB (100.00%)
transferred 1.1 GiB of 1.1 GiB (100.00%)
unused0: successfully imported disk 'local:1101/vm-1101-disk-1.raw'

之后就可以在 openwrt 的虚拟机中看到这个未使用的磁盘。

unused-disk

双击这个磁盘,不用改动,点添加即可。然后用菜单中的 resize 功能调整磁盘的大小,修改为 32 G。

备注:这个 resize 操作还必须进行,如果直接启动,会报错如下:

kvm: -device scsi-hd,bus=scsihw0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0,id=scsi0,bootindex=100: Cannot get 'write' permission without 'resize': Image size is not a multiple of request alignment
TASK ERROR: start failed: QEMU exited with code 1

修改引导顺序

修改 openwrt 虚拟机的引导顺序,在虚拟机的选项(options) -》引导顺序(boot order)中,勾选刚才的磁盘,取消网络启动。

boot-order

至此 openwrt 安装完成,之后启动即可。

3 - 在物理机上安装 OpenWRT

介绍 OpenWRT 在物理机上的安装

方式一: u盘启动命令写入磁盘

首先准备一个u盘,然后使用镜像写入工具(我习惯性使用 rufus )将下载得到的 img 镜像写入到 u 盘中。

再使用这个制作好的 u 盘,修改主板bios为从 u 盘启动,之后启动电脑就可以运行 openwrt,但此时 openwrt 运行在 u 盘中。还需要将镜像文件写入到目标磁盘。

此时可以通过 openwrt 的页面上传或者 scp 命令将 img 镜像文件传到 openwrt 下。然后 ssh 登录 openwrt,执行 DD 命令,将 img 镜像写入到物理机磁盘。

dd 命令的示范如下:

dd if=/tmp/op.img of=/dev/sda

if 为输入文件,指向我们的 img 文件位置; of 为输出文件,选择物理硬盘。注意是整个磁盘,不是单个分区。具体磁盘分区情况可以通过 fdisk -f 命令查看。

备注:这个方式有点绕,其实最后还是要用工具将 img 镜像文件写入到物理磁盘,openwrt 在这个过程中只是作为一个 linux 系统使用。应该可以直接用 预先存放好 img 文件的 linux 启动盘 (比如最常见的 ubuntu server 安装盘)启动电脑,然后同样执行 DD 命令。

参考资料:

方式二:直接将镜像写入到磁盘

需要准备的工具有:

  • windows PE 启动盘
  • OpenWRT的img映像文件
  • physdiskwrite :写镜像文件的工具

简单说就是在 windows 下 (可以是PE,也可以是普通windows)通过 physdiskwrite 软件将 img 文件直接写入到指定的目标磁盘。这个方案更简单直白。

实操时遇到一些问题

  • 我用最新的微pe,做成u盘启动,然后运行 physdiskwrite 报错,只能放弃
  • 直接将需要写入的硬盘接到普通 win10 电脑上,然后运行 physdiskwrite 可以正常写入,也就是说 pe 不是必备
  • 在磁盘写入之前,最好用 win10 的磁盘工具或者 diskgenius 之类的将目标磁盘的所有分区清空,否则会报错
  • physdiskwrite ui如果遇到报错,先检查是不是磁盘没有清空,如果还报错,可以直接用命令行 cmd 执行命令 physdiskwrite -u xxxx.img,注意启动 cmd 时要用管理员权限
  • 实测 diskgenius 的从镜像恢复硬盘的功能应该也可以实现类似的功能,但是我操作时写入中途失败,估计是我下载的镜像的格式不被 diskgenius 支持。(如下面扩容时报错所示)

具体操作参考:

确认可行的操作

  1. 将要写入的硬盘接到某台可以正常使用的windows机器,启动 windows
  2. 将需要的文件复制到这台windows机器: physdiskwrite, openwrt 的 img 文件
  3. 在 windows 下用磁盘工具将要写入的硬盘的所有分区全部删除(如果有分区则写入img时会报错)
  4. 以管理员身份方式启动 physGUI,在硬盘设备列表中找到要写入的硬盘(切记小心不要选错)
  5. 右键菜单 “Image Laden” -> “Offnen”(不知道是哪国语言,反正不是英语),选择要写入的 openwrt 的 img 文件
  6. “Remove 2GB restriction” 一定要勾选(否则后面写入会报错因为目标硬盘容量大于2G)
  7. 最后一步,警告,点 “是” 之后开始写入,完成

扩容问题

下载的 openwrt 镜像一般只给1g的空间,平时是够用的,但如果有用 docker 等软件时,容易空间不够。因此最好是在安装时就扩容。

比较推荐的做法是在写入镜像之后,第一次启动之前,通过硬盘分区工具无损的扩展分区,比如 diskgenius。

实操时遇到问题:网上找到的类似资料,openwrt 的分区格式一般时 ext4,这种格式 diskgenius 是支持无损扩容的。但我操作时,openwrt 的分区显示不是 ext4 格式,导致无法扩容。

暂时先搁置,后面有需要再看怎么解决。

4 - 连接 OpenWRT

连接刚安装好的 OpenWRT

连接 OpenWRT

在 openwrt 的界面上,进入命令行,查看当前网络信息:

ip addr

找到 br-lan:

inet 192.168.1.1/24 brd 192.168.1.255 scope global dynamic br-lan

可以看到 br-lan 的 ip 地址为 192.168.1.1。

vi /etc/config/network

将这里的 br-lan 的 ip 地址修改为我们想要设置的 ip 地址,比如 192.168.3.1。

option ipaddr '192.168.3.1'

保存退出,重启网络:

/etc/init.d/network restart

用另外一台机器,网线接入到 openwrt 机器的 lan 口。访问

http://192.168.3.1/

页面,用默认账号 root, 密码 password 登录。

5 - 基本配置

Openwrt安装之后的基本配置

优先配置

先点击 System,找到 System Properties / Language and Style,将 Language 修改为简体中文。

网络 -» 接口 -» wan 中,设置为 pppoe ,先拨号,连接网络。

系统配置

System/系统

主题继续用默认的 Argon,其他的都丑的不行。进入 Argon 主题设置页面,主题模式选择“强制亮色”。

基本设置中,主机名设置为 skyrouterX 如 skyrouter3.

管理权

修改管理员密码。

为了方便 ssh,添加SSH 密钥

软件包

点击更新软件包。

TTYD 终端

修改网络之后,要重启这里才能使用。

服务

MWAN3 分流助手

发现启用 GFW IPSet 之后,网络访问就会因为找不到 dns 服务器而域名解析失败。

关闭 GFW IPSet 之后就好了。

NAS

网络共享

主机名修改,如 SkyRouter3。

删除默认的 sda1 共享,sda1 下是 EFI 启动用的 boot 和 efi 文件,不需要共享。