Administrator
Published on 2025-07-28 / 124 Visits
0

ImmortalWrt刷机教程

从U盘启动ImmortalWrt后,我输入了fdisk -l命令,输出下面的,其中Disk /dev/sda: 111.79 GiB是我的Intelnuc小主机的硬盘 Disk /dev/sdb: 14.51 GiB是我的U盘

root@ImmortalWrt:~# fdisk -l
GPT PMBR size mismatch (680479 != 234441647) will be corrected by write.
The backup GPT table is not on the end of the device.
Disk /dev/sda: 111.79 GiB, 120034123776 bytes, 234441648 sectors
Disk model: KINGSTON SA400S3
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: B0ABEF4B-F3A7-72D4-3574-6A3B9F5DF800

Device     Start    End Sectors  Size Type
/dev/sda1    512  66047   65536   32M Linux filesystem
/dev/sda2  66048 680447  614400  300M Linux filesystem
/dev/sda3     34    511     478  239K BIOS boot

Partition table entries are not in disk order.
GPT PMBR size mismatch (680479 != 30433279) will be corrected by write.


Disk /dev/sdb: 14.51 GiB, 15581839360 bytes, 30433280 sectors
Disk model: OnlyDisk        
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: B0ABEF4B-F3A7-72D4-3574-6A3B9F5DF800

Device     Start    End Sectors  Size Type
/dev/sdb1    512  66047   65536   32M Linux filesystem
/dev/sdb2  66048 680447  614400  300M Linux filesystem
/dev/sdb3     34    511     478  239K BIOS boot

Partition table entries are not in disk order.

接下来输入

dd if=/dev/sdb of=/dev/sda bs=4M
  • if=/dev/sdb:输入文件(U盘)
  • of=/dev/sda:输出文件(内置硬盘)
  • bs=4M:每次读写 4MB,加快速度
root@ImmortalWrt:~# dd if=/dev/sdb of=/dev/sda bs=4M
3715+0 records in
3715+0 records out
root@ImmortalWrt:~# 

表示 dd 命令已经成功完成,也就是说:

✅ U盘(/dev/sdb)的整个内容已经完整复制到 Intel NUC 的内置硬盘(/dev/sda)上。

📌 解释输出含义

  • 3715+0 records in:表示 dd 成功读取了 3715 个数据块(每个块大小是 bs=4M)。
  • 3715+0 records out:表示也成功写出了 3715 个数据块。
  • 没有报错信息,说明整个过程顺利完成。

虽然 dd 已完成,但为了确保所有缓存数据都写入磁盘,运行:

sync

重启系统

reboot

⚠️ 在重启前,请务必拔出U盘,否则系统可能继续从U盘启动。

重启后,检查ip

uci show

如果不对,使用uci命令设置ip

uci set network.lan.ipaddr='192.168.31.50'
uci set network.lan.gateway='192.168.31.1'
uci set network.lan.dns='192.168.31.1'

设置后执行重启网络

/etc/init.d/network restart

接下来可以用另外一台电脑远程连接ssh 也可以直接在浏览器192.168.31.50进入系统,默认密码是passwd

然后基础配置教程查看B站视频

https://www.bilibili.com/video/BV1GmiMe8EsK/?spm_id_from=333.1387.top_right_bar_window_history.content.click&vd_source=27932d5ab2c89bd5dc2da8739634f3ae

openclash官网

github.com/vernesong/OpenClash

辨别防火墙类型

首先分辨openwrt防火墙类别(iptables or nftables)、
通过ssh连接openwrt执行命令判断:

iptables -L

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

nft list ruleset

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

自定义规则

支持对代理目标按域名、IP段、端口号设置规则,也支持对发起请求的内部IP段、端口号设置规则。

如图所示,代理规则使用`yaml`格式编写,一行一条添加在`rules:`后面,每行由三部分组成,编写方法如下: > - `匹配方式`, `匹配内容`, `节点/代理组名称` ###### 匹配方式 匹配域名: * `DOMAIN`域名完全匹配 * `DOMAIN-SUFFIX`域名后缀匹配 * `DOMAIN-KEYWORD`域名关键字匹配 > 例如`- DOMAIN-KEYWORD, bilbili, DIRECT`代表包含`bilibili`关键字的域名直连,不经过代理。 匹配IP: * `IP-CIDR`匹配目标IP * `SRC-IP-CIDR`匹配请求发起源的IP > 例如`- SRC-IP-CIDR, 192.168.1.3/32, DIRECT`代表如果是局域网内设备IP为192.168.1.3发起的请求直连,不经过代理。 匹配端口: * `IP-CIDR`匹配目标端口 * `DST-PORT`匹配请求发起源的端口 > 例如`- DST-PORT, 8080, DIRECT`代表如果是局域网内设备从8080端口发出的请求直连,不经过代理。 ###### 匹配内容 匹配内容的填写需要与匹配方式相对应,域名/IP/端口号。 唯一需要注意的是匹配IP需要填写的内容需要转换为[CIDR](http://ip2cidr.com/)格式,CIDR支持表示一个IP段范围,例如`192.168.1.3`的转换结果是`192.168.1.3/32`,`192.168.1.3 - 192.168.1.255`的转换结果是`192.168.1.0/24`,填写`192.168.1.0/24`就可以将`192.168.1.3 - 192.168.1.255`所有的IP指向节点/代理组名称。 ###### 节点/代理组名称 如果您有一个节点名称是`🇭🇰 香港高速 中继 1`,并希望使用这个节点代理请求,那么就是`- DOMAIN-KEYWORD, bilbili, 🇭🇰 香港高速 中继 1`,代表包含`bilibili`关键字的域名走`🇭🇰 香港高速 中继 1`节点。而且Clash支持给节点分组,如果您的节点有一个分组`美国节点组`,填写该内容就代表使用这个代理组代理数据。 实际上Clash还有两个默认的代理组名称,分别是`DIRECR`直连(不走代理)和`REJECT`(拒绝请求)。例如`- DOMAIN-KEYWORD, bilbili, REJECT`就变成了拒绝向包含`bilibili`关键字的域名请求。 * * *