升腾C92 刷 OpenWrt 作旁路由设置 DNS 服务、扩容分区、设置 swap
文字更新时间:2024/02/04
一直知道 OpenWrt 经常拿来做软路由软件。最近买了个二手小主机升腾 C92 来做旁路由服务器,其被归为瘦客户机一类,感觉和工控机差不多,现价百元以内。想就着这个机会,了解体验一下 OpenWrt。
大体思路
下载预设置好的固件,制作U盘启动盘,设置好升腾 C92 的 BIOS,刷入 OpenWrt 固件。为了方便局域网设备互联,主路由配置好 IP-MAC 绑定和 DHCP,然后旁路由 OpenWrt 配置 DNS 服务器。最后,扩容 OpenWrt 系统分区,设置 swap 交换分区。
用到的东西
OpenWrt是适用于嵌入式设备的一个Linux发行版。
相对原厂固件而言,OpenWrt不是一个单一、静态的固件,而是提供了一个可添加软件包的可写的文件系统。这使用户可以自由的选择应用程序和配置,而不必受设备提供商的限制,并且可以使用一些适合某方面应用的软件包来定制你的设备。对于开发者来说,OpenWrt是一个框架,开发者不必麻烦地构建整个固件就能得到想要的应用程序;对于用户来说,这意味着完全定制的能力,与以往不同的方式使用设备,OPKG包含超过3500个软件。 默认使用LuCI作为web交互界面。
| 旁路由 | 升腾 C92 |
|---|---|
| OpenWrt 类型 | haiibo/OpenWrt |
| OpenWrt 固件版本 | R24.01.27 |
| CPU 型号 | Intel(R) Celeron(R) CPU J1800 |
| CPU 频率 | 2.41GHz |
| CPU 线程数 | 2C2T |
| CPU 工艺 | 22纳米 |
| CPU TDP | 10 W |
| 内存 | 2G DDR3L 1333MHz |
| 硬盘 | Centerm SSD 14.75GB |
| 网卡 | Intel I211 Gigabit Network Connection |
| 主路由 | 移动 X333 定制路由器 |
原版 OpenWrt 不大好用,很多功能都没有预装,要手动配置比较麻烦。于是选择了提前配置好的 OpenWrt 版本,我用的是 haiibo/OpenWrt,里面集成了 LuCI 面板、Docker 和各种常用插件
局域网系统拓扑图

局域网系统拓扑图
U盘准备
制作 Ventoy U盘
Ventoy 版本:1.0.97
制作 Ventoy 启动盘:
打开
Ventoy2Disk.exe,设置分区类型为GPT格式(为了让升腾C92能进行 UEFI 引导),找到需要格式化的U盘(注意保存数据),其他默认,安装即可加速镜像搜索过程:
在U盘根目录下创建
Images文件夹,需要将镜像文件复制到此文件夹下。打开
VentoyPlugson.exe,启动服务,在打开的网页中选择 全局控制插件 → VTOY_DEFAULT_SEARCH_ROOT —— 指定搜索目录 设置为 Images 的绝对路径(比如:H:\Images)
下载处理 OpenWrt 镜像
方式一(简单):使用预先构建好的固件:
OpenWrt 仓库 release 版本:R2024-01-27 06:51:01 for X86_64
下载 OpenWrt 镜像
因为硬件就是一个 x86 的小电脑,所以下载 x86 版本的 OpenWrt 镜像,我使用的是
openwrt-x86-64-generic-squashfs-combined-efi.img.gz类型的镜像(squashfs 是一种用于 Linux 的压缩的只读文件系统,可以还原系统)解压镜像压缩包
下载的是镜像的压缩文件,需要解压,实测 7z 解压不了,用 Gzip 和 WinRAR 可以解压,比如:使用 gzip 解压:
.\gzip\bin\gzip.exe -dkv .\openwrt-x86-64-generic-squashfs-combined-efi.img.gz
等待片刻后,解压得到 .img 后缀的镜像文件
方式二(自定义):自定义构建固件:
可以删除一些不用的软件。分区格式可以改为 ext4,方便在装机时,在 PE 系统内进行分区扩容。
制作微PE镜像
微PE 版本:2.3
打开微PE,生成可启动 ISO 镜像,放入U盘 Images 文件夹
下载硬盘烧录工具
physdiskwrite 版本:0.5.3
用于烧录系统镜像,放入U盘根目录方便实用
U盘文件结构
.
├── Images # 镜像文件夹
│ ├── WePE_64_V2.3.iso # 微PE镜像
│ └── openwrt-x86-64-generic-squashfs-combined-efi.img # OpenWrt镜像
├── VentoyPlugson.log # Ventoy插件记录
├── physdiskwrite.exe # 镜像烧录工具
└── ventoy # Ventoy配置文件目录
├── ventoy.json # Ventoy配置文件
└── ventoy_backup.json # Ventoy配置文件备份
安装 OpenWrt
主板 BIOS 设置
我手中的升腾 C92 可以使用 USB 引导,省去了刷 BIOS 的步骤:
升腾 C92 进入 BIOS 的方法是开机按 F2 键(按 F12 可选择启动设备)
设置设备引导方式
在 BIOS 的 Advanced → CSM Configuration 中,将 Boot option filter 和 Video 都设置为
Legacy only,将 Storage 设置为UEFI only(如果觉得 Ventoy 镜像选项界面显示异常,看着不舒服的话,可设置为 Legacy only 解决)
BIOS 内设备引导方式设置 BIOS 设备启动优先级
在 BIOS 的 Boot → Boot Option Priorities 中,将U盘设置为第一启动设备,将硬盘设置为第二启动设备
按
F10保存并退出 BIOS
安装 OpenWrt 镜像到硬盘
设置好 BIOS,开机进入 Ventoy 后选择从 WePE 启动 PE 系统
用硬盘分区工具删除硬盘的所有分区
烧录镜像:
打开命令行,使用 physdiskwrite 烧录 OpenWrt 镜像到硬盘,比如:
U:\physdiskwrite.exe -u U:\Images\openwrt-x86-64-generic-squashfs-combined-efi.img
输入数字选择要烧录到的设备(我这里选择的是
0,烧录到硬盘)关机拔下U盘后再开机
初始化配置 OpenWrt
设置 root 密码
passwd
设置 OpenWrt IP 地址
设置 OpenWrt 的 IP 地址为 DHCP 动态分配:
vim /etc/config/network
将其中的 lan 相关选项改为 dhcp 模式,比如:
config interface 'lan'
option type 'bridge'
option ifname 'eth0'
option proto 'dhcp'
option ip6assign '60'
重启网络:
/etc/init.d/network restart
或者通过网页面板在 网络 → 接口 中选择 LAN → 修改 选择 一般配置 → 基本设置 → 协议 设置为 DHCP客户端。
然后在路由器中设置好 DHCP 服务,让升腾 C92 能分配到固定的 IP,之后即可通过 IP 地址访问 OpemWrt
主路由配置
各个路由器厂商,不同的路由器型号,其的后台配置大同小异。此处以我手头上的移动 X333 定制路由器为例,其后台地址、用户名和密码都贴在路由器外壳上。输入后台地址,进入 高级设置界面。
IP-MAC 绑定
网络服务功能 → MAC-Based 指定
DHCP 服务器配置
先设置路由器自身的 IP 地址:局域网 → IP地址(比如:
192.168.0.1)后设置 DHCP 服:网络服务功能 → DHCP 设置
- IP池范围:旁路由的IP只能在这个范围内设置(比如:
192.168.0.2-192.168.0.254)(有些路由器可在范围外设置) - 网关地址:路由器本身 IP(比如:
192.168.0.1) - DNS 选项:手动设置 OpenWrt 的 IP 为首选,其他公共 DNS 为次选(比如:首选
192.168.0.2,次选223.5.5.5)
(因为我的手机 MIUI 的传统艺能,不支持 IPv6,所以只好关闭主路由器的
IPv6功能)- IP池范围:旁路由的IP只能在这个范围内设置(比如:

主路由器 DHCP 设置
LuCI 面板设置 OpenWrt
在同一局域网内其他设备上,浏览器输入 OpenWrt 的 IP 地址,进入 LuCI 面板,以 GUI 的方式继续设置 OpenWrt
DNS 服务器配置
比如:要解析 server.mydns 到 192.168.0.2
添加 DNS 顶级域名:
在 网络 → DHCP/DNS 中的 服务器设置 → 基本设置 中添加 本地服务器 和 本地域名 (比如:本地服务器填
/mydns/,本地域名填mydns)添加主机名:
在 网络 → 主机名 中进行添加主机名(比如:主机名填
server,IP地址填192.168.0.2)(系统会自动添加自定义挟持域名)
磁盘扩容设置 swap 分区
此步骤用于 squashfs 格式的分区扩容(使用 overlay),ext4格式的分区扩容可在装机时手动设置。
扩展分区
方式一:使用官方分区扩展脚本(扩展根目录),也许需要先手动新建分区。
wget -U "" -O expand-root.sh "https://openwrt.org/_export/code/docs/guide-user/advanced/expand_root?codeblock=0"
. ./expand-root.sh
方式二:手动扩展分区(挂载到根目录下的 overlay 文件夹)
使用新的分区替代原有
/overlay的挂载点:这里扩展10G的空间到 /overlay,然后将剩余的磁盘空间都用作 swap 分区。
新建 ext4 分区
打开 系统 → 磁盘管理 找到需要进行操作的磁盘,点击 修改 后在空闲空间处新建一个10G的新分区,在 终止扇区 处填写
+10g,然后再 格式化 为ext4格式(系统会自动挂载新的分区)复制原有 /overlay 内的数据到新分区中:比如:
cp -r /overlay/* /mnt/sda3
打开 系统 → 挂载点,添加挂载点,让新的分区(比如:
/dev/sda3)挂载到/overlay然后重启生效,需要注意设置 docker, istore, opkg 等软件的根路径,以及下载文件的路径。让扩展到 /overlay 下的分区得到使用。
如果没问题,打开软件包界面,可以发现空闲空间变大了
新建 swap 分区
操作与新建 ext4 分区类似,终止扇区默认到磁盘尾部,格式选择
swap。然后在 系统 → 挂载点 处启用 自动挂载未配置的 Swap 分区重启
其实后面还有其他的一些功能配置,比如 Docker,下载软件,网盘文件软件等,不过我最后没有继续使用 OpetWrt,而是换成了 Ubuntu,其原因有二:
- 本人水平有限,设置的 swap 功能无法触发(swap 分区使用的空间极少,接近0),导致内存使用率一高系统就会变的卡顿。
- 安装 opkg 和 ipk安装包 之外的软件较麻烦,多需要手动进行编译和调试。
感觉相比于一般通用的 Linux 发行版来说,OpenWrt 适合在功能较固定的路由器上使用。因为可定制固件,所以适合在硬件受到限制的嵌入式设备上使用。
本文由 Tsanfer's Blog 发布!
升腾C92 刷 OpenWrt 作旁路由设置 DNS 服务、扩容分区、设置 swap的更多相关文章
- VMware 虚拟机安装 OpenWrt 作旁路由 单臂路由 img 镜像转 vmdk 旁路由无法上网 没网络
重要注意事项 由于布线原因笔记本只能采用无线的方式连接路由器,在Windows10的环境下使用无线网卡桥接,结果软路由无法上网,翻阅了各种帖子最终发现跟系统底层的协议栈有关系,随即放弃使用有线网卡,不 ...
- Ubuntu设置DNS服务
有时候安装完Ubuntu系统,源换好好还是不能更新,软件也不能下, 配置好IP,ping 1.1.1.1是通的,ping 域名就不通了,这是没有DNS解析域名的结果 一.Server版: 对于Ubun ...
- 创建AD域之后设置DNS服务访问外网
AD域内需要有DNS服务器,用于解析域内的计算机名,域内的计算解析公网的域名需要设置一个转发器(Forwarder). 一定要设置好自己的默认网关.DNS因为部署在AD服务器上,直接loopback地 ...
- 360路由器刷openwrt后设置wifi中继
上一篇文章(360路由器刷openwrt.不死uboot.双系统 .wifi中继 - 飞鸿影~ - 博客园)讲了如何在360路由器C301上安装openwrt以及安装双系统.这篇文章讲如何设置无线中继 ...
- 网络|N1盒子做旁路由刷OpenWRT系统(小白专用)
N1盒子做旁路由刷OpenWRT系统(小白专用) 为什么要用N1盒子 现如今新上市的路由器,市面上能买到的300元以内的路由器大多数都是双频(5G Hz和2.4G Hz)和几年前相比无论是速度还是性能 ...
- 360路由器刷openwrt、不死uboot、双系统 、wifi中继
该类教程网上有很多,但是很多不全,给小白用户造成了很多困扰.我也是按照网上的教程刷了半天,才熟悉了是怎么个回事.这里整理成教程. 注意: 请看教程步骤走,不要跳跃性刷机.不懂的术语.软件,若本文无介绍 ...
- [无线路由] “免费”斐讯K2路由器刷OpenWRT(实战MWAN多宽带网速叠加)
(阿财首发于什么值得买)斐讯K2可以算是一个非常另类的跨界数码产品,其产品完全的醉翁之意不在酒.最多值99元的 MT7260硬件架构和用料,售价399元,金额激活K码后自动转入合作理财P2P平台,等待 ...
- 路由器硬改+刷OpenWrt+挂载摄像头+U盘
标题: 路由器硬改+刷OpenWrt+挂载摄像头+U盘 作者: 梦幻之心星 347369787@QQ.com 标签: [路由器, OpenWrt, 摄像头, 固件] 目录: 路由器 日期: 2019- ...
- openwrt开发笔记二:树莓派刷openwrt
前言及准备 本笔记适用于第一次给树莓派刷openwrt系统的玩家,对刷机过程及注意事项进行了记录,刷机之后对openwrt进行一些简单配置. 使用openwrt源码制作固件需要花费一点时间. 平台环境 ...
- Huawei HG556a A版 刷 openwrt
一直想玩玩openwrt,调研了一下 HG556a尽管散热很烂,但性价比超高,于是淘宝入手一台A版,A版和C版区别为wifi芯片: 到货后在网上找了几个教程便开始动手刷openwrt,但刷机的过程中还 ...
随机推荐
- Hystrix 如何解决 ThreadLocal 信息丢失
本文分享 ThreadLocal 遇到 Hystrix 时上下文信息传递的方案. 一.背景 笔者在业务开发中涉及到使用 ThreadLocal 来存放上下文链路中一些关键信息,其中一些业务实现对外部接 ...
- Liunx常用操作(11)-VI编辑器-末行模式命令
vI编辑器三种模式 分别为命令模式.输入模式.末行模式.
- 一文搞清楚Java中的包、类、接口
写在开头 包.类.接口.方法.变量.参数.代码块,这些都是构成Java程序的核心部分,即便最简单的一段代码里都至少要包含里面的三四个内容,这两天花点时间梳理了一下,理解又深刻了几分. Java中的包 ...
- ClickHouse中“大列”造成的JOIN的内存超限问题
ClickHouse中"大列"造成的JOIN的内存超限问题 "大列"是指单行数据量非常大的列,通常是100KiB以上.这样的列会导致JOIN(通常LEFT JO ...
- 基于python+django的旅游信息网站-旅游景点门票管理系统设计与实现
该系统是基于python+django开发的旅游景点门票管理系统.是给师弟做的课程作业.大家学习过程中,遇到问题可以在github咨询作者 演示地址 前台地址: http://travel.gitap ...
- JS - console多个值
Promise.all([p1, p2]).then( (res) => { let [p1, p2] = res; console.l ...
- ONVIF网络摄像头(IPC)客户端开发—RTSP RTCP RTP加载AAC音频流
前言: RTSP,RTCP,RTP一般是一起使用,在FFmpeg和live555这些库中,它们为了更好的适用性,所以实现起来非常复杂,直接查看FFmpeg和Live555源代码来熟悉这些协议非常吃力, ...
- Nginx loki监控日志的学习
Nginx loki监控日志的学习 背景 学习自: https://mp.weixin.qq.com/s/Qt1r7vzWvCcJpNDilWHuxQ 增加了一些自己的理解 第一部分nginx日志的完 ...
- [转帖]CertUtil: -hashfile 失败: 0xd00000bb (-805306181)
https://www.cnblogs.com/heenhui2016/p/de.html 使用CertUtil验证Python安装文件的时候出现了这个错误. CertUtil: -hashfile ...
- 龙芯中标麒麟 上面安装libgdiplus的方法
其实方法与之前的blog 基本上完全一样 但是发现有一个问题 安装完libgdiplus之后必须重启一下才能有效果... CentOS 安装libgdi的方法 1. 安装必须的包 1 yum ins ...