OpenWrt 是什麼?
OpenWrt 是一個面向嵌入式裝置的 Linux 作業系統,專為路由器、閘道器等網路裝置設計。與普通路由器韌體最大的區別在於:
- 完整的套件管理系統(opkg):像 Ubuntu 用
apt一樣,隨時安裝/解除安裝軟體 - 可寫的檔案系統:不再受限於廠商預裝的封閉功能
- 模組化設計:需要什麼裝什麼,不臃腫
- 開源免費:GPL-2.0 授權條款,GitHub 上有 超過 2 萬個 Star
簡單說,刷了 OpenWrt 的路由器就是一台小型 Linux 伺服器,你可以用它做 DHCP 伺服器、防火牆、DNS 伺服器、廣告攔截、VPN 閘道器、智慧家居中控,甚至跑 Docker 容器。
OpenWrt vs 普通路由器韌體
| 特性 | 普通路由器韌體 | OpenWrt |
|---|---|---|
| 檔案系統 | 唯讀(squashfs) | 可讀寫 |
| 軟體安裝 | 廠商預裝,無法擴充 | opkg 套件管理,數千個軟體套件 |
| 自訂配置 | 有限 | 完全控制(SSH + LuCI Web 介面) |
| 更新週期 | 廠商決定(可能幾年不更新) | 社群維護,持續更新 |
| 原始碼 | 通常閉源 | 完全開源(GPL-2.0) |
OpenWrt vs DD-WRT vs Padavan
OpenWrt 是生態最豐富的開源路由器系統,相比之下: - DD-WRT:歷史悠久,但套件管理不如 OpenWrt 靈活 - Padavan(老毛子):在國內流行,但主要面向特定晶片,客製化有限 - LEDE:2018 年已與 OpenWrt 合併,不再有獨立版本
硬體選擇:2026 年適合刷 OpenWrt 的裝置
方案一:舊路由器改造(零成本)
如果你家有淘汰的路由器,先檢查相容性:
- 存取 OpenWrt 硬體資料庫
- 輸入路由器品牌和型號
- 查看支援狀態:
Supported(完美支援)/Technically available(可用但需折騰)/Unsupported(不支援)
常見支援良好的路由器: - 小米 Redmi AX6S / AX3000T - 斐訊 K2P / K3 - 網件 Netgear R6220 / R7800 - 華碩 ASUS RT-AC58U / RT-ACRH17 - TP-Link Archer C7 v2/v4/v5
方案二:專用軟路由裝置(推薦)
如果你打算認真玩 OpenWrt,一台 x86 軟路由是最佳選擇:
| 裝置 | 價格區間 | 特點 |
|---|---|---|
| Intel N100 迷你主機 | ¥300-600 | 低功耗(6W TDP),效能過剩 |
| 暢網 N5105 / N6005 | ¥400-800 | 4 網口,軟路由經典之選 |
| 倍控 J4125 工控機 | ¥500-900 | 6 網口,穩定可靠 |
| 舊筆記型電腦 | ¥0 | 自帶 UPS(電池),省電 |
2026 年推薦:Intel N100 迷你主機性價比最高。TDP 僅 6W,四核四執行緒,跑 OpenWrt + Docker 遊刃有餘,閒魚價 300 元左右。
方案三:開發板
- Raspberry Pi 4 / 5:OpenWrt 官方支援,適合入門學習
- NanoPi R4S / R5S:友善出品,雙網口,軟路由熱門之選
- RK3568 / RK3588 開發板:效能強勁,但需要一定動手能力
從零刷機教學
⚠️ 警告:刷機有風險,操作不當可能導致路由器變磚。建議先搜尋你的路由器型號的具體刷機教學。
Step 1:備份原廠韌體
刷機前一定要備份!一旦出問題還能恢復。
透過 SSH 備份(如果路由器已開啟 SSH):
# SSH 登入路由器
ssh root@192.168.1.1
# 備份整個韌體(透過 TFTP 傳送到本機電腦)
cat /dev/mtd0 > /tmp/original_firmware.bin
# 然後從路由器下載這個檔案
透過 TTL 序列埠備份(通用方法):
# 需要 USB 轉 TTL 模組(CH340/CP2102,約 ¥10)
# 連接後,在電腦上執行
minicom -D /dev/ttyUSB0 -b 115200
# 進入 U-Boot 後執行備份指令
Step 2:刷入 OpenWrt
方法 A:透過 Web 介面(最簡單)
- 下載對應型號的 OpenWrt 韌體映像檔(
.bin檔案) - 前往 OpenWrt Firmware Selector - 輸入裝置型號,選擇最新版本 - 登入路由器管理頁面(通常是
192.168.1.1) - 找到「系統工具 → 韌體升級」
- 上傳
.bin檔案,等待自動重新啟動
方法 B:透過 Breed 引導(推薦,防變磚)
Breed 是一個不死 U-Boot 引導程式,刷了 Breed 後基本告別變磚。
# 1. 先刷入 Breed(需要路由器已開啟 SSH 或透過 TTL)
# breed 檔案通常是 .bin 格式
# 2. 按住路由器 Reset 鍵上電,進入 Breed Web 介面
# 瀏覽器存取 192.168.1.1
# 3. 在 Breed 介面中選擇 OpenWrt 韌體並刷入
# Breed 支援恢復,即使刷錯也能重新刷
方法 C:x86 軟路由透過 USB 隨身碟安裝
# 1. 下載 x86 版本的 OpenWrt 映像檔(combined-ext4.img.gz)
wget https://downloads.openwrt.org/releases/23.05.3/targets/x86/64/openwrt-23.05.3-x86-64-generic-ext4-combined.img.gz
# 2. 解壓縮
gunzip openwrt-23.05.3-x86-64-generic-ext4-combined.img.gz
# 3. 寫入 USB 隨身碟(假設 USB 隨身碟是 /dev/sdb,請務必確認!)
sudo dd if=openwrt-23.05.3-x86-64-generic-ext4-combined.img of=/dev/sdb bs=4M status=progress
# 4. 從 USB 隨身碟啟動軟路由,OpenWrt 會自動寫入內建硬碟
Step 3:首次配置
刷入成功後,OpenWrt 預設:
- LAN IP:
192.168.1.1 - Web 介面:
http://192.168.1.1(LuCI) - SSH:
ssh root@192.168.1.1(無密碼)
# SSH 登入(首次無密碼,直接按 Enter)
ssh root@192.168.1.1
# 設定 root 密碼
passwd
# 更新軟體套件清單
opkg update
# 安裝中文語言套件
opkg install luci-i18n-base-zh-cn
# 重新整理 Web 介面,介面變為中文
Step 4:網路基礎配置
# 編輯網路配置檔案
vi /etc/config/network
# 典型 LAN 配置範例:
# config interface 'lan'
# option type 'bridge'
# option ifname 'eth0'
# option proto 'static'
# option ipaddr '192.168.2.1'
# option netmask '255.255.255.0'
# 重新啟動網路服務
/etc/init.d/network restart
核心功能實戰
1. DHCP 伺服器配置
OpenWrt 預設開啟 DHCP,你可以自訂位址池:
# 編輯 DHCP 配置
vi /etc/config/dhcp
# 關鍵配置項:
# config dhcp 'lan'
# option interface 'lan'
# option start '100' # 起始位址
# option limit '150' # 位址池大小
# option leasetime '12h' # 租期
# option ra 'server' # IPv6 RA 模式
# option dhcpv6 'server' # IPv6 DHCP
# 重新啟動 DHCP 服務
/etc/init.d/dnsmasq restart
設定靜態 IP 分配(給特定裝置固定 IP):
# 在 /etc/config/dhcp 中新增:
# config host
# option name 'nas'
# option mac 'AA:BB:CC:DD:EE:FF'
# option ip '192.168.2.100'
2. 防火牆配置
OpenWrt 的防火牆基於 iptables/nftables,預設規則:
- LAN 區域:允許所有入站/出站
- WAN 區域:拒絕入站,允許出站
- 轉發規則:LAN → WAN 允許,WAN → LAN 拒絕
開放特定埠(比如 NAS 管理介面):
# 透過 LuCI Web 介面:網路 → 防火牆 → 埠轉發
# 或者指令行:
uci add firewall rule
uci set firewall.@rule[-1].name='Allow-NAS'
uci set firewall.@rule[-1].src='wan'
uci set firewall.@rule[-1].dest_port='8080'
uci set firewall.@rule[-1].target='ACCEPT'
uci set firewall.@rule[-1].proto='tcp'
uci commit firewall
/etc/init.d/firewall restart
3. DNS 配置
使用 DNS 加速(SmartDNS):
# 安裝 SmartDNS
opkg install smartdns
# 配置 SmartDNS 使用多個 DNS 上游伺服器
vi /etc/smartdns/smartdns.conf
# 新增上游 DNS:
# server 223.5.5.5 -group alidns
# server 119.29.29.29 -group dnspod
# server 8.8.8.8 -group google
# 設定監聽埠
# bind :6053
# 設定 DNS 快取
# cache-size 512
# 重新啟動服務
/etc/init.d/smartdns enable
/etc/init.d/smartdns restart
4. 廣告攔截(AdGuard Home / Adbyby)
方案 A:安裝 AdGuard Home(推薦)
# 透過 opkg 安裝
opkg install adguardhome
# 或者手動安裝最新版:
wget https://github.com/AdguardTeam/AdGuardHome/releases/latest/download/AdGuardHome_linux_armv7.tar.gz
tar -xzf AdGuardHome_linux_armv7.tar.gz
./AdGuardHome -s install
# 瀏覽器存取 http://192.168.2.1:3000 完成初始化
方案 B:使用 Adbyby(更輕量)
opkg install adbyby
/etc/init.d/adbyby enable
/etc/init.d/adbyby start
5. VPN 伺服器
搭建 WireGuard VPN(2026 年最推薦的 VPN 方案):
# 安裝 WireGuard
opkg install wireguard-tools luci-app-wireguard
# 在 WAN 口產生 WireGuard 配置
wg genkey > /etc/wireguard/server_private.key
wg pubkey < /etc/wireguard/server_private.key > /etc/wireguard/server_public.key
# 編輯配置
vi /etc/wireguard/wg0.conf
配置檔案範例:
[Interface]
PrivateKey = <你的伺服器私鑰>
Address = 10.8.0.1/24
ListenPort = 51820
# 客戶端 1
[Peer]
PublicKey = <客戶端公鑰>
AllowedIPs = 10.8.0.2/32
# 啟動 WireGuard
wg-quick up wg0
# 設定為開機啟動
/etc/init.d/wireguard enable
進階玩法
Docker 容器支援
OpenWrt 可以執行 Docker,擴充性無限!
# 安裝 Docker
opkg install docker docker-compose luci-app-dockerman
# 啟動 Docker 服務
/etc/init.d/dockerd enable
/etc/init.d/dockerd start
# 驗證安裝
docker --version
docker info
實戰:在 OpenWrt 上跑 Home Assistant(智慧家居):
# 建立持久化儲存目錄
mkdir -p /srv/homeassistant
# 拉取並執行
docker run -d \
--name homeassistant \
--restart=unless-stopped \
--network=host \
-v /srv/homeassistant:/config \
homeassistant/home-assistant:stable
# 瀏覽器存取 http://192.168.2.1:8123
實戰:部署 AdGuard Home(透過 Docker):
docker run -d \
--name adguardhome \
--restart=unless-stopped \
--network=host \
-v /srv/adguard/work:/opt/adguardhome/work \
-v /srv/adguard/conf:/opt/adguardhome/conf \
adguard/adguardhome:latest
內網穿透
使用 frp 實現內網穿透:
# 安裝 frp 客戶端
opkg install frp
# 配置 frpc
vi /etc/frpc/frpc.toml
serverAddr = "你的 frp 伺服器 IP"
serverPort = 7000
[[proxies]]
name = "web"
type = "tcp"
localIP = "127.0.0.1"
localPort = 80
remotePort = 8080
# 啟動 frp
/etc/init.d/frpc enable
/etc/init.d/frpc start
流量監控
# 安裝 nlbwmon(輕量級流量統計)
opkg install nlbwmon luci-app-nlbwmon
# 或者安裝更強大的 BanDaWidth
opkg install bandwidth
# 安裝即時流量監控(iftop 的 OpenWrt 版本)
opkg install iftop
# 即時查看哪個 IP 佔用最多頻寬
iftop -i br-lan
IPv6 支援
OpenWrt 對 IPv6 的支援非常成熟:
# 啟用 IPv6(通常在 LuCI 中操作更直觀)
# 網路 → 介面 → LAN → 編輯 → DHCP 伺服器 → IPv6 設定
# 指令行方式:
uci set network.lan6='interface'
uci set network.lan6.device='@device'
uci set network.lan6.proto='dhcpv6'
uci commit network
/etc/init.d/network restart
日常維護
韌體更新
# 方式 1:透過 LuCI Web 介面
# 系統 → 備份/升級 → 下載新韌體 → 刷入
# 方式 2:指令行更新
sysupgrade -v /tmp/openwrt-xxx-squashfs-sysupgrade.bin
# 保留配置更新(推薦):
sysupgrade -c /tmp/openwrt-xxx-squashfs-sysupgrade.bin
# 不保留配置(全新安裝):
sysupgrade -n /tmp/openwrt-xxx-squashfs-sysupgrade.bin
備份與恢復配置
# 備份目前配置
sysupgrade -b /tmp/config-backup.tar.gz
# 從備份恢復
sysupgrade -r /tmp/config-backup.tar.gz
# 查看備份內容
tar tzf /tmp/config-backup.tar.gz
常用 opkg 指令
# 更新軟體源
opkg update
# 搜尋軟體套件
opkg find luci-app-*
# 安裝軟體套件
opkg install <套件名>
# 列出已安裝的套件
opkg list-installed
# 解除安裝軟體套件
opkg remove <套件名>
# 清理快取
opkg clean
常見問題排查
1. 刷完 OpenWrt 無法上網
# 檢查 WAN 口是否取得 IP
ifconfig eth1
# 檢查預設閘道器
route -n
# 測試 DNS
nslookup baidu.com
# 手動設定 DNS
vi /etc/resolv.conf
# 新增:nameserver 223.5.5.5
# 重新啟動網路
/etc/init.d/network restart
2. LuCI Web 介面無法存取
# 檢查 uhttpd 服務狀態
/etc/init.d/uhttpd status
# 重新啟動 Web 服務
/etc/init.d/uhttpd restart
# 檢查防火牆規則
iptables -L -n
3. WiFi 無法啟動
# 檢查 WiFi 配置
wifi status
# 重新產生預設配置
wifi config
# 編輯 WiFi 配置
vi /etc/config/wireless
# 啟用 WiFi
uci set wireless.@wifi-device[0].disabled=0
uci commit wireless
wifi reload
4. 裝置變磚怎麼辦
- Breed 使用者:按住 Reset 鍵上電,進入 Breed Web 恢復介面重新刷入
- TTL 序列埠使用者:透過序列埠進入 U-Boot,重新刷入韌體
- TFTP 恢復:部分路由器支援 TFTP 恢復模式,具體方法搜尋你的型號
總結
OpenWrt 是開發者折騰網路的最佳開源平台。從刷舊路由器到搭建 x86 軟路由,從基礎的 DHCP/防火牆配置到 Docker + 智慧家居,OpenWrt 讓每一台路由器都變成一台強大的 Linux 伺服器。
本文涉及的關鍵資源: - OpenWrt 官網 - 韌體選擇器 - 硬體資料庫 - OpenWrt 論壇 - GitHub 儲存庫
下一步推薦閱讀: - Ventoy:製作多系統啟動 USB 隨身碟的神器 — 刷機前的系統碟製作工具 - Linux 檔案格式詳解 — 理解韌體檔案格式
如果你覺得這篇文章有幫助,歡迎分享給更多開發者!