从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`关键字的域名请求。
* * *