OpenWrt新手必备之技能

news/2025/2/12 7:52:29/

OpenWrt新手必备之技能

文章目录

  • OpenWrt新手必备之技能
  • 前言
  • 一、硬件选择
  • 二、固件选择
  • 三 、固件安装
  • 四 、如何组网
    • 4.1. 确认固件的基本信息
    • 4.2. 接线组网
  • 五、系统配置
  • 六、备份与升级
  • 七、小结
  • 八、参考链接

前言

openwrt_logo

Openwrt的生态相当复杂,初次接触的人会感受到不少困惑,应该选择什么样的硬件,从哪里找到合适的固件,需要安装哪些插件,自自己动手还是拿来主义,系统不小心搞坏了怎么重置,如何更新或切换其他的固件,下面我们就这些困惑逐步展开解释。

一、硬件选择

首先你需要一个支持openwrt的设备,这个你可以在某宝上搜索软路由就可以,可以是ARM的设备,也可以是X86的设备。

如果你原来的家用路由器可以刷出openwrt系统,也可以直接拿自己的路由器开刷。

本人先后折腾的过的软路由主要有NanoPi R1S-H5,E3845, J4125,配置越来越高,后来发现性能都过剩了。

软路由

二、固件选择

固件的来源,可以自己编译,也可以用别人的,两种都尝试过了,后来发现在网上定制编译最适合自己,这样固件里面的插件可以按需添加,另外该平台还提供了固件类型,默认IP地址和密码,是否开启IPv6,根分区大小等定制选项。

  1. X86固件来源:openwrt在线定制编译
  2. 其他网友推荐的固件,之前一直在用。固件链接
  3. 最近比较流行的iStore ,是一个开源且标准的 OpenWRT 软件中心实现。https://github.com/linkease/istore

至于固件的安全性,见仁见智了,如果自己没有能力分析的话,暂时只能依靠各位网友的试用反馈和开源审查了。

另外一个可选的固件安全性评估系统https://www.virustotal.com/,把固件上传上去就可以。

备注:为了方面后面固件的在线更新或替换,建议固件类型选择Squashfs格式的。

固件选择示意图:

fireware

三 、固件安装

如果是ARM的设备,如R1S-H5,先在SD卡上刷系统,烧录软件建议用Etcher。

ether

如果是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地址和账号登录系统,然后进行??上网的配置,此处配置过程略过,在后续的插件使用篇再介绍。

openwrt-login

六、备份与升级

下面讲到最重要的一个功能,系统的备份和升级功能。

1、通过升级功能,上传新的固件版本,在线完成固件更新。(包括升级/降级/新安装其他固件

2、通过备份和恢复功能,可以在系统给搞坏后重置系统,然后在基于原来的备份恢复配置。

提示:

  • 这里要求你之前刷的固件的文件系统是Squashfs格式的。

  • 有的时候系统搞坏了,无法进入Web 页面进行重置,也可以通过ssh方式登录系统,用命令行方式输入firstboot后,在确认y重置系统,再输入reboot重启系统。

备份与升级
提示:有些类似AdGuardHome的配置文件,是在/etc/AdGuardHome.yaml,不在默认的备份列表里面。需要自己在备份的配置里面添加。如下图所示:
在这里插入图片描述

squashfs简介:

squashfs格式

squashfs 固件的 rootfs 分区以高度压缩的方式存在,对于存储容量小的设备来说是个不错的选择。

启动系统时内核先以只读方式挂载原始 rootfs 分区,接着在 rootfs 分区之上挂载一个 overlay 分区并这两个分区合并,最终对外体现为一个可读写的 rootfs 分区。

对于原始 rootfs 分区的所有修改 (包括文件的添加和删除) 都在 overlay 分区中进行,这也意味着如果清除 overlay 分区的所有内容,OpenWrt 系统将对外体现为全新刷入固件时的状态。OpenWrt 的系统还原就利用了这样的特性,如果你一不小心玩坏固件,只要还能进入 LuCI 或 SSH,就可以很方便地进行 “系统还原操作”。

七、小结

作为新手,需要了解自己的设备类型,找到适合的固件,知道如何查询固件的基本信息(WAN口和LAN口,后台IP和账号/密码),

系统的备份和恢复,固件的在线更新和切换等基本技能后,就可以顺利的开启Openwrt之途了。

八、参考链接

  1. 关于Openwrt https://zh.m.wikipedia.org/zh-hans/OpenWrt
  2. 固件烧录 https://doc.embedfire.com/openwrt/user_manal/zh/latest/User_Manual/quick_start/imageflash.html
  3. 固件文件格式 https://doc.openwrt.cc/1-General/4-Firmware-Format/

http://www.ppmy.cn/news/171962.html

相关文章

实例4,循迹模块的使用和循迹小车的实现

1、循迹模块介绍; 2、循迹原理; 3、硬件接线; 4、循迹编程思路流程图; 5、循迹程序第一稿(后面再写几篇文章加计时、测距、蓝牙等模块)。 一、循迹模块 目前大一新生,多数用的是数字式的循…

ISO21434 项目网络安全管理(三)

目录 一、概述 二、目标 三、输入 3.1 先决条件 3.2 进一步支持信息 四、要求和建议 4.1 网络安全责任 4.2 网络安全规划 4.3 裁剪 4.4 重用 4.5 非上下文组件 4.6 现成组件 4.7 网络安全案例(Cybersecurity case) 4.8 网络安全评估&#…

工业企业为什么要用边缘计算网关?

在我们进入智能制造和工业4.0的新时代,工业企业的数据需求正急速增长。传感器,机器和设备每分钟都在产生大量数据,它们对实时处理和分析的需求比以往任何时候都要强烈。这就是为什么工业企业需要边缘计算网关。 边缘计算网关在物联网架构中担…

记一次线上MQ堆积问题处理

背景 线上订单服务10个POD节点,某kafka tpoic原有6个分区。 问题现象 上午11.30左右一波下单高峰,根据分布式消息告警发现有少量消息堆积,但是堆积量不大,持续几分钟后恢复正常。 下午1点后出现新一轮高峰,出现了大…

从0-1实战react项目

文章目录 1. 安装2. 完成一个组件开发3. 添加路由3. 引入element-react1. 运行发现报错./node_modules/element-react/dist/npm/es5/src/locale/format.js2. 接着又报错The <Router /> component appears to be a function component that returns a class instance. Cha…

Allegro16.6详细教程(一)

第一章User Interface 本章的主要內容介紹allegro操作介面,透過本章學習可以對Allegro的工作介面有了大致的瞭解,同時也能體驗出Allegro PCB Layout時的強大功能。 A.程式的啟動 除了以上Allegro主程式,我們還會常用到以下幾個常用工具: • Padstack Designer (Padstack…

Android view获取屏幕中的坐标点x,y、位置:

Android view获取屏幕中的坐标点&#xff0c;位置&#xff1a; int[] pointnew int[2];img1.getLocationOnScreen(point);//执行之后&#xff0c;point[0]是x坐标&#xff0c;point[1]是y坐标 layoutManager.scrollToPositionWithOffset(1,y);这里如果y坐标值&#xff0c;如果…

flutter内容超出屏幕Y轴高度边界报错

编写flutter代码的时候&#xff0c;如果超出手机屏幕高度的话是会出错的&#xff0c;需要使用SingleChildScrollView来包裹 SingleChildScrollView和container用发一样&#xff0c; 直接包在外层就好了&#xff0c;里面是child’ 它可以在主题内容超出Y轴的时候自动生成滚动条&…