OpenWrt新手必备之技能
文章目录
- OpenWrt新手必备之技能
- 前言
- 一、硬件选择
- 二、固件选择
- 三 、固件安装
- 四 、如何组网
- 4.1. 确认固件的基本信息
- 4.2. 接线组网
- 五、系统配置
- 六、备份与升级
- 七、小结
- 八、参考链接
前言
Openwrt的生态相当复杂,初次接触的人会感受到不少困惑,应该选择什么样的硬件,从哪里找到合适的固件,需要安装哪些插件,自自己动手还是拿来主义,系统不小心搞坏了怎么重置,如何更新或切换其他的固件,下面我们就这些困惑逐步展开解释。
一、硬件选择
首先你需要一个支持openwrt的设备,这个你可以在某宝上搜索软路由就可以,可以是ARM的设备,也可以是X86的设备。
如果你原来的家用路由器可以刷出openwrt系统,也可以直接拿自己的路由器开刷。
本人先后折腾的过的软路由主要有NanoPi R1S-H5,E3845, J4125,配置越来越高,后来发现性能都过剩了。
二、固件选择
固件的来源,可以自己编译,也可以用别人的,两种都尝试过了,后来发现在网上定制编译最适合自己,这样固件里面的插件可以按需添加,另外该平台还提供了固件类型,默认IP地址和密码,是否开启IPv6,根分区大小等定制选项。
- X86固件来源:openwrt在线定制编译
- 其他网友推荐的固件,之前一直在用。固件链接
- 最近比较流行的iStore ,是一个开源且标准的 OpenWRT 软件中心实现。https://github.com/linkease/istore
至于固件的安全性,见仁见智了,如果自己没有能力分析的话,暂时只能依靠各位网友的试用反馈和开源审查了。
另外一个可选的固件安全性评估系统https://www.virustotal.com/,把固件上传上去就可以。
备注:为了方面后面固件的在线更新或替换,建议固件类型选择Squashfs格式的。
固件选择示意图:
三 、固件安装
如果是ARM的设备,如R1S-H5,先在SD卡上刷系统,烧录软件建议用Etcher。
如果是X86的设备,首次烧录系统的时候需要制作一个USB启动盘,可以用老毛桃的软件做一个启动U盘。然后把烧录软件Ether和固件一起拷贝到U盘上,然后从U盘启动安装。X86系统开机进入BIOS的热键一般是DEL键,如果不是请咨询设备的卖家。
X86系统使用ether烧录后后可能提示校验失败,不用管他。直接把U盘拔掉启动即可。
也可以使用其他的U盘启动盘制作工具,网上教程很多,不赘述了。
四 、如何组网
刷完系统,软路由可以通电接入网络了,现在就涉及到如何接入家庭网络。软路由一般有主路由和旁路由两种工作模式。
我这里以自己常用的主路由模式为例子说明如何接入现有家庭网络。
4.1. 确认固件的基本信息
下面只是样例,实际的参数值参考自己拿到的固件的信息:
-
固件默认的接入IP地址或主机名。例如192.168.5.1 (如果是自定义的固件,注意预设值IP地址不要同已有的网络冲突)
-
固件默认的账号和密码:用户名root , 密码:root
-
固件的WAN口是哪个, LAN是哪个或哪几个。一般是eth0是LAN口(内网通信的), eth1是WAN口(对外通信的)。
**提示:**有些设备网口的物理口编号不是从eth0开始,而是从eth1开始。这时候的物理口eth1就对应系统中的逻辑口eth0。
如果实在不知道,也可以接上显示器和键盘,进入Openwrt的控制台,查看一下cat /etc/config/network配置文件。
[root@OpenWrt: ~] # cat /etc/config/networkconfig interface 'loopback'option device 'lo'option proto 'static'option ipaddr '127.0.0.1'option netmask '255.0.0.0'config globals 'globals'option packet_steering '1'config deviceoption name 'br-lan'option type 'bridge' # eth0,eth2,eth3都是LAN口list ports 'eth0'list ports 'eth2'list ports 'eth3'config interface 'lan'option device 'br-lan'option proto 'static'option netmask '255.255.255.0'option ip6assign '60'option ipaddr '192.168.5.1' #LAN口的IP地址option delegate '0'config interface 'wan'option device 'eth1' # eth1是WAN口(外网口)option proto 'dhcp'option ipv6 '0'option delegate '0'config interface 'docker'option device 'docker0'option proto 'none'option auto '0'config deviceoption type 'bridge'option name 'docker0'
4.2. 接线组网
假定我们预期的网络拓扑结构如下:
按照如下的方式接线:
1、光猫的LAN口–>软路由的WAN口
2、软路由的LAN口–>家用无线路由器的WAN口
3、其他上网设备以无线或有线的方式接入家用的路由器。
这里使用了多个网段,光猫 192.168.1.0网段,软路由192.168.5.0网络,家用路由器192.168.31.0网络。也可以通过修改让软路由和家用路由器属于同一个网段,或者无线路由器仅作为AP设备接入,实际的网络拓扑以用户的实际需要为准。
**提示:**不过为了出现故障的时候方便分网络排查,用多个网段也没有问题,实际使用中也没有性能问题。(youtube 4k播放流畅)
五、系统配置
组网成功后,我们就可以通过IP或者主机名接入(如果软路由设置了mDNS)。
我们使用IP地址和账号登录系统,然后进行??上网的配置,此处配置过程略过,在后续的插件使用篇再介绍。
六、备份与升级
下面讲到最重要的一个功能,系统的备份和升级功能。
1、通过升级功能,上传新的固件版本,在线完成固件更新。(包括升级/降级/新安装其他固件)
2、通过备份和恢复功能,可以在系统给搞坏后重置系统,然后在基于原来的备份恢复配置。
提示:
-
这里要求你之前刷的固件的文件系统是Squashfs格式的。
-
有的时候系统搞坏了,无法进入Web 页面进行重置,也可以通过ssh方式登录系统,用命令行方式输入firstboot后,在确认y重置系统,再输入reboot重启系统。
提示:有些类似AdGuardHome的配置文件,是在/etc/AdGuardHome.yaml,不在默认的备份列表里面。需要自己在备份的配置里面添加。如下图所示:
squashfs简介:
squashfs 固件的 rootfs 分区以高度压缩的方式存在,对于存储容量小的设备来说是个不错的选择。
启动系统时内核先以只读方式挂载原始 rootfs 分区,接着在 rootfs 分区之上挂载一个 overlay 分区并这两个分区合并,最终对外体现为一个可读写的 rootfs 分区。
对于原始 rootfs 分区的所有修改 (包括文件的添加和删除) 都在 overlay 分区中进行,这也意味着如果清除 overlay 分区的所有内容,OpenWrt 系统将对外体现为全新刷入固件时的状态。OpenWrt 的系统还原就利用了这样的特性,如果你一不小心玩坏固件,只要还能进入 LuCI 或 SSH,就可以很方便地进行 “系统还原操作”。
七、小结
作为新手,需要了解自己的设备类型,找到适合的固件,知道如何查询固件的基本信息(WAN口和LAN口,后台IP和账号/密码),
系统的备份和恢复,固件的在线更新和切换等基本技能后,就可以顺利的开启Openwrt之途了。
![](https://s2.loli.net/2022/11/06/mYdAB3qfo896HhI.png)
八、参考链接
- 关于Openwrt https://zh.m.wikipedia.org/zh-hans/OpenWrt
- 固件烧录 https://doc.embedfire.com/openwrt/user_manal/zh/latest/User_Manual/quick_start/imageflash.html
- 固件文件格式 https://doc.openwrt.cc/1-General/4-Firmware-Format/