文字更新時(shí)間:2024/02/04
一直知道 OpenWrt 經(jīng)常拿來(lái)做軟路由軟件秽之。最近買(mǎi)了個(gè)二手小主機(jī)升騰 C92 來(lái)做旁路由服務(wù)器当娱,其被歸為瘦客戶機(jī)一類,感覺(jué)和工控機(jī)差不多考榨,現(xiàn)價(jià)百元以內(nèi)跨细。想就著這個(gè)機(jī)會(huì),了解體驗(yàn)一下 OpenWrt河质。
大體思路
下載預(yù)設(shè)置好的固件冀惭,制作U盤(pán)啟動(dòng)盤(pán),設(shè)置好升騰 C92 的 BIOS掀鹅,刷入 OpenWrt 固件散休。為了方便局域網(wǎng)設(shè)備互聯(lián),主路由配置好 IP-MAC 綁定和 DHCP乐尊,然后旁路由 OpenWrt 配置 DNS 服務(wù)器戚丸。最后,擴(kuò)容 OpenWrt 系統(tǒng)分區(qū)科吭,設(shè)置 swap 交換分區(qū)。
用到的東西
OpenWrt是適用于嵌入式設(shè)備的一個(gè)Linux發(fā)行版猴鲫。
相對(duì)原廠固件而言对人,OpenWrt不是一個(gè)單一、靜態(tài)的固件拂共,而是提供了一個(gè)可添加軟件包的可寫(xiě)的文件系統(tǒng)牺弄。這使用戶可以自由的選擇應(yīng)用程序和配置,而不必受設(shè)備提供商的限制宜狐,并且可以使用一些適合某方面應(yīng)用的軟件包來(lái)定制你的設(shè)備势告。對(duì)于開(kāi)發(fā)者來(lái)說(shuō),OpenWrt是一個(gè)框架抚恒,開(kāi)發(fā)者不必麻煩地構(gòu)建整個(gè)固件就能得到想要的應(yīng)用程序咱台;對(duì)于用戶來(lái)說(shuō),這意味著完全定制的能力俭驮,與以往不同的方式使用設(shè)備回溺,OPKG包含超過(guò)3500個(gè)軟件春贸。 默認(rèn)使用LuCI作為web交互界面。
項(xiàng)目 | 參數(shù) |
---|---|
旁路由 | 升騰 C92 |
OpenWrt 類型 | haiibo/OpenWrt |
OpenWrt 固件版本 | R24.01.27 |
CPU 型號(hào) | Intel(R) Celeron(R) CPU J1800 |
CPU 頻率 | 2.41GHz |
CPU 線程數(shù) | 2C2T |
CPU 工藝 | 22納米 |
CPU TDP | 10 W |
內(nèi)存 | 2G DDR3L 1333MHz |
硬盤(pán) | Centerm SSD 14.75GB |
網(wǎng)卡 | Intel I211 Gigabit Network Connection |
主路由 | 移動(dòng) X333 定制路由器 |
原版 OpenWrt 不大好用遗遵,很多功能都沒(méi)有預(yù)裝萍恕,要手動(dòng)配置比較麻煩。于是選擇了提前配置好的 OpenWrt 版本车要,我用的是 haiibo/OpenWrt允粤,里面集成了 LuCI 面板、Docker 和各種常用插件
局域網(wǎng)系統(tǒng)拓?fù)鋱D
U盤(pán)準(zhǔn)備
制作 Ventoy U盤(pán)
Ventoy 版本:1.0.97
-
制作 Ventoy 啟動(dòng)盤(pán):
打開(kāi)
Ventoy2Disk.exe
翼岁,設(shè)置分區(qū)類型為GPT
格式(為了讓升騰C92能進(jìn)行 UEFI 引導(dǎo)),找到需要格式化的U盤(pán)(注意保存數(shù)據(jù))类垫,其他默認(rèn),安裝即可 -
加速鏡像搜索過(guò)程:
在U盤(pán)根目錄下創(chuàng)建
Images
文件夾登澜,需要將鏡像文件復(fù)制到此文件夾下阔挠。打開(kāi)
VentoyPlugson.exe
,啟動(dòng)服務(wù)脑蠕,在打開(kāi)的網(wǎng)頁(yè)中選擇 全局控制插件 → VTOY_DEFAULT_SEARCH_ROOT —— 指定搜索目錄 設(shè)置為 Images 的絕對(duì)路徑(比如:H:\Images
)
下載處理 OpenWrt 鏡像
-
方式一(簡(jiǎn)單):使用預(yù)先構(gòu)建好的固件:
OpenWrt 倉(cāng)庫(kù) release 版本:R2024-01-27 06:51:01 for X86_64
-
下載 OpenWrt 鏡像
因?yàn)橛布褪且粋€(gè) x86 的小電腦购撼,所以下載 x86 版本的 OpenWrt 鏡像,我使用的是
openwrt-x86-64-generic-squashfs-combined-efi.img.gz
類型的鏡像(squashfs 是一種用于 Linux 的壓縮的只讀文件系統(tǒng)谴仙,可以還原系統(tǒng)) -
解壓鏡像壓縮包
下載的是鏡像的壓縮文件迂求,需要解壓,實(shí)測(cè) 7z 解壓不了晃跺,用 Gzip 和 WinRAR 可以解壓揩局,比如:使用 gzip 解壓:
.\gzip\bin\gzip.exe -dkv .\openwrt-x86-64-generic-squashfs-combined-efi.img.gz
等待片刻后,解壓得到 .img 后綴的鏡像文件
-
-
方式二(自定義):自定義構(gòu)建固件:
可以刪除一些不用的軟件掀虎。分區(qū)格式可以改為 ext4凌盯,方便在裝機(jī)時(shí),在 PE 系統(tǒng)內(nèi)進(jìn)行分區(qū)擴(kuò)容烹玉。
制作微PE鏡像
微PE 版本:2.3
打開(kāi)微PE驰怎,生成可啟動(dòng) ISO 鏡像,放入U(xiǎn)盤(pán) Images 文件夾
下載硬盤(pán)燒錄工具
physdiskwrite 版本:0.5.3
用于燒錄系統(tǒng)鏡像二打,放入U(xiǎn)盤(pán)根目錄方便實(shí)用
U盤(pán)文件結(jié)構(gò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 設(shè)置
我手中的升騰 C92 可以使用 USB 引導(dǎo)县忌,省去了刷 BIOS 的步驟:
升騰 C92 進(jìn)入 BIOS 的方法是開(kāi)機(jī)按 F2
鍵(按 F12
可選擇啟動(dòng)設(shè)備)
-
設(shè)置設(shè)備引導(dǎo)方式
在 BIOS 的 Advanced → CSM Configuration 中,將 Boot option filter 和 Video 都設(shè)置為
Legacy only
继效,將 Storage 設(shè)置為UEFI only
(如果覺(jué)得 Ventoy 鏡像選項(xiàng)界面顯示異常症杏,看著不舒服的話,可設(shè)置為 Legacy only 解決)BIOS 內(nèi)設(shè)備引導(dǎo)方式 -
設(shè)置 BIOS 設(shè)備啟動(dòng)優(yōu)先級(jí)
在 BIOS 的 Boot → Boot Option Priorities 中瑞信,將U盤(pán)設(shè)置為第一啟動(dòng)設(shè)備厉颤,將硬盤(pán)設(shè)置為第二啟動(dòng)設(shè)備
按
F10
保存并退出 BIOS
安裝 OpenWrt 鏡像到硬盤(pán)
設(shè)置好 BIOS,開(kāi)機(jī)進(jìn)入 Ventoy 后選擇從 WePE 啟動(dòng) PE 系統(tǒng)
用硬盤(pán)分區(qū)工具刪除硬盤(pán)的所有分區(qū)
-
燒錄鏡像:
打開(kāi)命令行凡简,使用 physdiskwrite 燒錄 OpenWrt 鏡像到硬盤(pán)走芋,比如:
U:\physdiskwrite.exe -u U:\Images\openwrt-x86-64-generic-squashfs-combined-efi.img
輸入數(shù)字選擇要燒錄到的設(shè)備(我這里選擇的是
0
绩郎,燒錄到硬盤(pán)) 關(guān)機(jī)拔下U盤(pán)后再開(kāi)機(jī)
初始化配置 OpenWrt
設(shè)置 root 密碼
passwd
設(shè)置 OpenWrt IP 地址
設(shè)置 OpenWrt 的 IP 地址為 DHCP 動(dòng)態(tài)分配:
vim /etc/config/network
將其中的 lan
相關(guān)選項(xiàng)改為 dhcp
模式,比如:
config interface 'lan'
option type 'bridge'
option ifname 'eth0'
option proto 'dhcp'
option ip6assign '60'
重啟網(wǎng)絡(luò):
/etc/init.d/network restart
或者通過(guò)網(wǎng)頁(yè)面板在 網(wǎng)絡(luò) → 接口 中選擇 LAN → 修改 選擇 一般配置 → 基本設(shè)置 → 協(xié)議 設(shè)置為 DHCP客戶端
翁逞。
然后在路由器中設(shè)置好 DHCP 服務(wù)肋杖,讓升騰 C92 能分配到固定的 IP,之后即可通過(guò) IP 地址訪問(wèn) OpemWrt
主路由配置
各個(gè)路由器廠商挖函,不同的路由器型號(hào)津畸,其的后臺(tái)配置大同小異肉拓。此處以我手頭上的移動(dòng) X333 定制路由器為例暖途,其后臺(tái)地址驻售、用戶名和密碼都貼在路由器外殼上欺栗。輸入后臺(tái)地址迟几,進(jìn)入 高級(jí)設(shè)置界面类腮。
IP-MAC 綁定
網(wǎng)絡(luò)服務(wù)功能 → MAC-Based 指定
DHCP 服務(wù)器配置
先設(shè)置路由器自身的 IP 地址:局域網(wǎng) → IP地址(比如:
192.168.0.1
)-
后設(shè)置 DHCP 服:網(wǎng)絡(luò)服務(wù)功能 → DHCP 設(shè)置
- IP池范圍:旁路由的IP只能在這個(gè)范圍內(nèi)設(shè)置(比如:
192.168.0.2
-192.168.0.254
)(有些路由器可在范圍外設(shè)置) - 網(wǎng)關(guān)地址:路由器本身 IP(比如:
192.168.0.1
) - DNS 選項(xiàng):手動(dòng)設(shè)置 OpenWrt 的 IP 為首選存哲,其他公共 DNS 為次選(比如:首選
192.168.0.2
七婴,次選223.5.5.5
)
(因?yàn)槲业氖謾C(jī) MIUI 的傳統(tǒng)藝能察滑,不支持 IPv6贺辰,所以只好關(guān)閉主路由器的
IPv6
功能) - IP池范圍:旁路由的IP只能在這個(gè)范圍內(nèi)設(shè)置(比如:
LuCI 面板設(shè)置 OpenWrt
在同一局域網(wǎng)內(nèi)其他設(shè)備上,瀏覽器輸入 OpenWrt 的 IP 地址吗伤,進(jìn)入 LuCI 面板足淆,以 GUI 的方式繼續(xù)設(shè)置 OpenWrt
DNS 服務(wù)器配置
比如:要解析 server.mydns
到 192.168.0.2
-
添加 DNS 頂級(jí)域名:
在 網(wǎng)絡(luò) → DHCP/DNS 中的 服務(wù)器設(shè)置 → 基本設(shè)置 中添加 本地服務(wù)器 和 本地域名 (比如:本地服務(wù)器填
/mydns/
,本地域名填mydns
) -
添加主機(jī)名:
在 網(wǎng)絡(luò) → 主機(jī)名 中進(jìn)行添加主機(jī)名(比如:主機(jī)名填
server
,IP地址填192.168.0.2
)(系統(tǒng)會(huì)自動(dòng)添加自定義挾持域名)
磁盤(pán)擴(kuò)容設(shè)置 swap 分區(qū)
此步驟用于 squashfs 格式的分區(qū)擴(kuò)容(使用 overlay)靠欢,ext4格式的分區(qū)擴(kuò)容可在裝機(jī)時(shí)手動(dòng)設(shè)置。
- 擴(kuò)展分區(qū)
-
方式一:使用官方分區(qū)擴(kuò)展腳本(擴(kuò)展根目錄)疼进,也許需要先手動(dòng)新建分區(qū)伞广。
wget -U "" -O expand-root.sh "https://openwrt.org/_export/code/docs/guide-user/advanced/expand_root?codeblock=0" . ./expand-root.sh
-
方式二:手動(dòng)擴(kuò)展分區(qū)(掛載到根目錄下的 overlay 文件夾)
使用新的分區(qū)替代原有
/overlay
的掛載點(diǎn):這里擴(kuò)展10G的空間到 /overlay拣帽,然后將剩余的磁盤(pán)空間都用作 swap 分區(qū)嚼锄。
-
新建 ext4 分區(qū)
打開(kāi) 系統(tǒng) → 磁盤(pán)管理 找到需要進(jìn)行操作的磁盤(pán),點(diǎn)擊 修改 后在空閑空間處新建一個(gè)10G的新分區(qū)区丑,在 終止扇區(qū) 處填寫(xiě)
+10g
,然后再 格式化 為ext4
格式(系統(tǒng)會(huì)自動(dòng)掛載新的分區(qū)) -
復(fù)制原有 /overlay 內(nèi)的數(shù)據(jù)到新分區(qū)中:比如:
cp -r /overlay/* /mnt/sda3
-
-
打開(kāi) **系統(tǒng)** → **掛載點(diǎn)**沧侥,添加掛載點(diǎn)可霎,讓新的分區(qū)(比如:`/dev/sda3`)掛載到 `/overlay` 然后重啟生效,需要注意設(shè)置 docker, istore, opkg 等軟件的根路徑癣朗,以及下載文件的路徑旺罢。讓擴(kuò)展到 /overlay 下的分區(qū)得到使用。
如果沒(méi)問(wèn)題,打開(kāi)軟件包界面护赊,可以發(fā)現(xiàn)空閑空間變大了
-
新建 swap 分區(qū)
操作與新建 ext4 分區(qū)類似,終止扇區(qū)默認(rèn)到磁盤(pán)尾部,格式選擇
swap
判耕。然后在 系統(tǒng) → 掛載點(diǎn) 處啟用 自動(dòng)掛載未配置的 Swap 分區(qū) 重啟
其實(shí)后面還有其他的一些功能配置,比如 Docker翘骂,下載軟件壁熄,網(wǎng)盤(pán)文件軟件等,不過(guò)我最后沒(méi)有繼續(xù)使用 OpetWrt碳竟,而是換成了 Ubuntu草丧,其原因有二:
- 本人水平有限,設(shè)置的 swap 功能無(wú)法觸發(fā)(swap 分區(qū)使用的空間極少莹桅,接近0)昌执,導(dǎo)致內(nèi)存使用率一高系統(tǒng)就會(huì)變的卡頓。
- 安裝 opkg 和 ipk安裝包 之外的軟件較麻煩诈泼,多需要手動(dòng)進(jìn)行編譯和調(diào)試懂拾。
感覺(jué)相比于一般通用的 Linux 發(fā)行版來(lái)說(shuō),OpenWrt 適合在功能較固定的路由器上使用铐达。因?yàn)榭啥ㄖ乒碳常赃m合在硬件受到限制的嵌入式設(shè)備上使用。
本文由 Tsanfer's Blog 發(fā)布瓮孙!