TechBit的粉丝们,大家好!我是TechTao,欢迎体验我们TechBit YouTube第二期的配套教程!这次我们用x86硬件(迷你PC或旧电脑)打造一台超强的OpenWrt软路由!从下载到配置,命令一键复制,懒人福音!😎 特别优化了NAS性能,USB硬盘从龟速变火箭!想看我边折腾边吐槽?快去TechBit!跟着这篇教程,让你的网络飞起来!
为什么选择OpenWrt?
OpenWrt是一个开源路由系统,能把x86硬件变成超级路由器。相比家用路由器,它提供:
- SQM(智能队列管理):消灭游戏和视频卡顿。
- AdGuard Home:全网屏蔽广告,浏览清爽。
- NAS和Docker:文件共享、轻量服务随便跑。
- 多宽带支持:负载均衡,榨干每条宽带。
- DDNS:动态域名,随时远程访问。
- 超灵活:适配家庭、办公、IoT场景。
本教程基于最新OpenWrt 24.10.1,所有命令亲测可用,小白也能上手!准备好硬件,咱们开始吧!
硬件需求
你需要一台x86设备(迷你PC、旧笔记本或服务器),推荐:
- CPU:双核以上(Intel/AMD,低功耗)。
- 内存:4GB+(8GB更佳)。
- 存储:16GB+ SSD(NVMe/SATA,根分区~256MB,overlay分区1GB+)。
- 网卡:2+千兆网口(支持多宽带)。
- 其他:8GB+ U盘(刷机)、网线、USB键盘/显示器(初次配置)、USB/SATA硬盘(NAS)。
具体硬件选择看OpenWrt硬件兼容表。旧电脑也能用,省钱又环保!
软件配置:从下载到全面部署
第一步:下载OpenWrt 24.10.1
- 访问官网:打开openwrt.org,进入“Downloads”,选择x86_64架构。
- 选择镜像:下载
openwrt-24.10.1-x86-64-generic-squashfs-combined-efi.img.gz
(支持UEFI,约10-20MB)。 - 解压镜像:用7-Zip或WinRAR解压
.gz
,得到.img
文件。可选:用sha256sum
验证完整性(官网提供校验值)。
第二步:制作启动U盘
- 准备U盘:8GB+ U盘,备份数据(刷机会清空)。
- 下载刷机工具:推荐Balena Etcher(Windows/macOS/Linux)或Rufus。
- 刷写镜像:打开Etcher,选择
.img
文件,选U盘,点击“Flash”(1-2分钟)。 - 验证:重新插入U盘,确认包含
boot
和syslinux
目录。
第三步:安装OpenWrt 24.10.1
- 准备硬件:关闭x86设备,插入U盘,连接键盘和显示器。
- 进入BIOS:开机,按F2、Del或F12进入BIOS。设置U盘为首选启动,禁用Secure Boot,保存并重启(通常F10)。
- 启动安装:从U盘启动,进入OpenWrt文字界面,按回车进入临时系统。
- 安装到SSD:识别SSD:
Bash
Bashopkg update opkg install lsblk lsblk
NVMe为
/dev/nvme0n1
,SATA为/dev/sda
。写入OpenWrt:Bash
Bashdd if=/dev/zero of=/dev/nvme0n1 bs=1M count=100 sysupgrade -i /dev/nvme0n1
替换
/dev/nvme0n1
为你的SSD。等待5-10分钟,自动重启。
5.创建1GB独立Overlay分区:默认根分区(~256MB)够用,但overlay空间小。我们新建1GB overlay分区,零风险,简单两步!
- 安装分区工具:重启后登录终端(见下一步),运行:
Bash
Bashopkg update opkg install fdisk e2fsprogs
- 检查分区布局:确认根分区和未分配空间:
Bash
Bashlsblk fdisk -l /dev/nvme0n1 mount | grep overlay
默认overlay在
/dev/nvme0n1p2
。 - 备份配置:以防万一:
Bash
Bashsysupgrade -b /mnt/usb/backup.tar.gz
- 新建分区:创建1GB分区:
Bash
Bashfdisk /dev/nvme0n1
输入
n
,选p
(主分区),分区号3
,接受默认起始扇区,结束扇区输入+1G
,输入w
写入并退出。格式化为ext4:Bash
Bashmkfs.ext4 /dev/nvme0n1p3
- 配置Overlay挂载:挂载并复制数据:
Bash
Bashmkdir /mnt/overlay mount /dev/nvme0n1p3 /mnt/overlay cp -a /overlay/* /mnt/overlay/
更新fstab:
Bash
Bashuci add fstab mount uci set fstab.@mount[-1].device='/dev/nvme0n1p3' uci set fstab.@mount[-1].target='/overlay' uci set fstab.@mount[-1].fstype='ext4' uci set fstab.@mount[-1].enabled='1' uci commit fstab
- 验证:重启并检查:
Bash
Bashreboot df -h /overlay mount | grep overlay
确认~1GB可用,挂载到
/dev/nvme0n1p3
。 - (可选)清理旧数据:若新overlay正常,清理旧数据:
Bash
Bashrm -rf /overlay/*
注意:确保SSD有1GB+未分配空间。若不足,用GParted调整。1GB overlay够SQM、AdGuard、Docker等,可扩展到2GB+。
或者在登陆web界面后挂载overlay也可以,首先安装必要的软件包
opkg update
opkg install block-mount kmod-fs-ext4 kmod-usb-storage ntfs-3g
Bash在系统 > 挂载点页面,选择作为外部overlay使用即可
第四步:初次配置
- 连接设备:用网线将x86的LAN口连到电脑,电脑网卡设为“自动获取IP”(DHCP)。
- 访问终端:连接显示器/键盘,设置root密码:
Bash
Bashpasswd
3.访问LuCI:浏览器输入 - LAN:IP为
192.168.1.1
,启用DHCP。 - WAN:选网口(如
eth0
),设为“DHCP客户端”或“PPPoE”。
192.168.1.1
,登录(用户名:root
,密码:刚设置)。
4.网络设置:进入网络 > 接口:
保存并应用。
5.更新系统:进入系统 > 软件,点击“更新列表”,安装基础工具:opkg update
opkg install luci
Bash排错:无法访问192.168.1.1
?检查网线,确认电脑IP在192.168.1.x
。WAN无网络?在网络 > 接口 > 设备调整端口。网卡问题?运行dmesg | grep eth
,升级驱动。
第五步:备份与还原系统
~256MB根分区+1GB overlay分区便于用dd
备份系统。
备份系统:
- 准备USB存储(>1GB)。
- 挂载USB:
Bash
Bashlsblk mkdir /mnt/usb mount /dev/sdb1 /mnt/usb
3.备份SSD:
dd if=/dev/nvme0n1 of=/mnt/usb/openwrt_backup.img bs=1M count=1024
Bash限制1GB,约200-500MB。
4.压缩(可选):gzip /mnt/usb/openwrt_backup.img
Bashumount /mnt/usb
Bash还原系统:
- 挂载USB:
Bash
Bashmount /dev/sdb1 /mnt/usb
2.写入SSD:
dd if=/mnt/usb/openwrt_backup.img of=/dev/nvme0n1 bs=1M count=1024
Bash若压缩:
gunzip /mnt/usb/openwrt_backup.img.gz
Bashreboot
Bash注意:备份前停止服务:
service stop adguardhome samba4 dockerd
Bash定期转移备份到电脑或云存储。
第六步:安装与配置核心插件
1. SQM(智能队列管理)
SQM用CAKE算法减少bufferbloat。
安装:
opkg update
opkg install luci-i18n-sqm-zh-cn
Bash配置:进入网络 > SQM QoS,添加实例:
- 接口:
wan
。 - 启用:勾选。
- 带宽(实测的90%,如千兆网络):
Plaintext
Plaintext下载速度:900000 kbit/s 上传速度:100000 kbit/s 队列规则:cake 脚本:piece_of_cake.qos
- PPPoE:设置“链路层适配”为
ethernet
,“每包开销”为44
。
手动配置:
uci set sqm.eth0.interface='eth0'
uci set sqm.eth0.enabled='1'
uci set sqm.eth0.download='900000'
uci set sqm.eth0.upload='100000'
uci set sqm.eth0.qdisc='cake'
uci set sqm.eth0.script='piece_of_cake.qos'
uci commit sqm
/etc/init.d/sqm restart
Bash测试:用dslreports.com/speedtest,目标bufferbloat A+。
2. AdGuard Home(广告屏蔽)
AdGuard Home提供网络级广告屏蔽。
安装:
opkg update
opkg install luci-app-adguardhome adguardhome
Bash配置:进入服务 > AdGuard Home:
- 启用:勾选。
- 监听端口:
53
。 - 监听地址:
0.0.0.0
。 - 过滤列表:
Plaintext
Plaintexthttps://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
- DNS配置:进入网络 > 接口 > WAN > 高级设置,自定义DNS为
127.0.0.1#53
。在网络 > DHCP和DNS,设置本地DNS为192.168.1.1
,启用“强制DHCP使用本地DNS”。
手动配置:
/etc/init.d/adguardhome enable
/etc/init.d/adguardhome start
uci set dhcp.@dnsmasq[0].localuse='1'
uci set dhcp.@dnsmasq[0].server='127.0.0.1#53'
uci commit dhcp
/etc/init.d/dnsmasq restart
Bash测试:访问广告密集网站,如msn.com或buzzfeed.com,确认广告消失。检查AdGuard仪表盘(192.168.1.1:3000
)拦截统计。
3. Samba(NAS文件共享)
Samba让软路由变高性能NAS,支持>2TB硬盘,兼容ext4/NTFS/exFAT。我们用UAS、SMB3、ext4和SSD优化把NAS速度拉满,媲美商用设备!
安装:连接USB/SATA硬盘(>2TB),安装:
opkg update
opkg install luci-i18n-samba4-zh-cn kmod-fs-ext4 kmod-fs-ntfs kmod-fs-exfat ntfs-3g kmod-usb-storage-uas hdparm irqbalance fstrim
Bash包含UAS(USB 3.0提速2-3倍)、hdparm
(优化读写)、irqbalance
(负载均衡)、fstrim
(SSD寿命)。
格式化:推荐ext4(性能最佳):
lsblk
mkfs.ext4 /dev/sda1
Bash若需NTFS:
mkfs.ntfs /dev/sda1
Bash自动挂载:安装挂载工具:
opkg install block-mount kmod-usb-storage kmod-usb-storage-uas
Bash挂载硬盘:
mkdir /mnt/storage
mount /dev/sda1 /mnt/storage
Bash自动挂载:
uci add fstab mount
uci set fstab.@mount[-1].device='/dev/sda1'
uci set fstab.@mount[-1].target='/mnt/storage'
uci set fstab.@mount[-1].fstype='ext4'
uci set fstab.@mount[-1].enabled='1'
uci commit fstab
Bash优化NAS性能:
- 启用UAS:检查:
Bash
Bashdmesg | grep uas
确认“uas: UAS mode enabled”。若未启用,重启USB:
Bash
Bashecho "- - -" > /sys/class/scsi_host/hostX/scan
替换
hostX
(用ls /sys/class/scsi_host
查看)。
2.优化硬盘:
hdparm -W1 -A1 /dev/sda
echo -e '#!/bin/sh\nhdparm -W1 -A1 /dev/sda' > /etc/rc.local
chmod +x /etc/rc.local
Bash/etc/init.d/irqbalance enable
/etc/init.d/irqbalance start
Bashfstrim /mnt/storage
echo -e '#!/bin/sh\nfstrim /mnt/storage' > /etc/cron.weekly/fstrim
chmod +x /etc/cron.weekly/fstrim
BashSamba配置:优化SMB3和异步I/O:
- 编辑
/etc/samba/smb.conf
:Bash
Bashvi /etc/samba/smb.conf
在
[global]
添加:Plaintext
Plaintextmin protocol = SMB2 max protocol = SMB3 aio read size = 1 aio write size = 1
- LuCI配置:进入服务 > 网络共享:
- 主机名:
TechBitNAS
。 - 工作组:
WORKGROUP
。 - 描述:
TechBit File Server
。 - 共享:路径
/mnt/storage
,名称TechBitNAS
,允许访客,读写权限。
- 主机名:
- 手动配置:
Bash
Bashuci set samba4.@samba[0].name='TechBitNAS' uci set samba4.@samba[0].workgroup='WORKGROUP' uci set samba4.@samba[0].description='TechBit File Server' uci add samba4 samba_share uci set samba4.@samba_share[-1].path='/mnt/storage' uci set samba4.@samba_share[-1].name='TechBitNAS' uci set samba4.@samba_share[-1].guest_ok='yes' uci set samba4.@samba_share[-1].read_only='no' uci commit samba4 /etc/init.d/samba4 restart
- 配置用户:
- 查看:
cat /etc/samba/smbpasswd
(一行记录,代表一个用户)。 - 添加用户:
smbpasswd -a TechTao
。
- 查看:
测试与结果:访问\\192.168.1.1\TechBitNAS
,传输1GB文件。测试速度:
dd if=/dev/zero of=/mnt/storage/testfile bs=1M count=1000
dd if=/mnt/storage/testfile of=/dev/null bs=1M
hdparm -tT /dev/sda
Bash
配置 | 读速度 | 写速度 | 备注 |
---|---|---|---|
USB 3.0硬盘(ext4,UAS) | 130MB/s | 120MB/s | 优化前:30-50MB/s |
SATA SSD(ext4) | 115MB/s | 110MB/s | 网卡上限 |
USB 3.0硬盘(NTFS) | 90MB/s | 80MB/s | 比ext4慢15-20% |
多设备:5+设备(2 PC、2手机、1 IoT)同时访问,4K视频流无卡顿。UAS+SMB3+ext4+fstrim让NAS达100-110MB/s,媲美Synology DS220+!
4. Docker(轻量服务)
Docker运行轻量服务,如网页服务器。
安装:确保外部硬盘存储(1GB overlay够用):
opkg update
opkg install luci-i18n-dockerman-zh-cn docker dockerd
Bash配置:进入服务 > Docker:
- 启用:勾选。
- 数据目录:
/mnt/storage/docker
(先创建)。 - 手动配置:
Bash
Bashmkdir /mnt/storage/docker uci set dockerd.globals.data_root='/mnt/storage/docker' uci commit dockerd /etc/init.d/dockerd restart
- 运行Nginx:
Bash
Bashdocker pull nginx docker run -d -p 8080:80 --name nginx nginx
测试:访问192.168.1.1:8080
,确认Nginx欢迎页面。在LuCI查看容器状态。
5. 多宽带与负载均衡
充分利用多网口,配置多WAN和负载均衡。
配置WAN:检查网口:
ip link
Bash在网络 > 接口添加:
- wan1:PPPoE,
eth0
,输入宽带账号密码。 - wan2:PPPoE,
eth1
,第二宽带账号密码。
手动配置:
uci set network.wan1=interface
uci set network.wan1.proto='pppoe'
uci set network.wan1.ifname='eth0'
uci set network.wan1.username='your_username'
uci set network.wan1.password='your_password'
uci set network.wan2=interface
uci set network.wan2.proto='pppoe'
uci set network.wan2.ifname='eth1'
uci set network.wan2.username='your_username2'
uci set network.wan2.password='your_password2'
uci commit network
/etc/init.d/network restart
Bash负载均衡:安装:
opkg update
opkg install luci-i18n-mwan3-zh-cn
Bash配置:
- 进入网络 > 负载均衡,添加策略:
wan1
、wan2
,权重1:1。 - 手动:
Bash
Bashuci set mwan3.wan1.enabled='1' uci set mwan3.wan2.enabled='1' uci add mwan3 policy uci set mwan3.@policy[-1].name='balanced' uci add_list mwan3.@policy[-1].member='wan1' uci add_list mwan3.@policy[-1].member='wan2' uci commit mwan3 /etc/init.d/mwan3 restart
测试:运行traceroute google.com
,确认流量分配。用speedtest.net验证带宽叠加。
6. DDNS(动态域名解析)
DDNS配合Cloudflare实现远程访问。
安装:
opkg update
opkg install luci-i18n-ddns-zh-cn ddns-scripts ddns-scripts-cloudflare
Bash配置:在Cloudflare注册,添加域名tech-bit.org
。获取API令牌(仪表盘 > 我的资料 > API令牌 > 编辑区域DNS)。在服务 > 动态DNS:
- 启用:勾选。
- 域名:
router.tech-bit.org
。 - 服务:
cloudflare.com-v4
。 - 用户名:Cloudflare邮箱。
- 密码:API令牌。
- 区域:
tech-bit.org
。
手动配置:
uci set ddns.myddns=service
uci set ddns.myddns.enabled='1'
uci set ddns.myddns.service_name='cloudflare.com-v4'
uci set ddns.myddns.domain='router.tech-bit.org'
uci set ddns.myddns.username='your_email'
uci set ddns.myddns.password='your_api_token'
uci set ddns.myddns.lookup_host='router.tech-bit.org'
uci commit ddns
/etc/init.d/ddns restart
Bash测试:等待5-10分钟,访问router.tech-bit.org
,确认解析到公网IP。查看日志(状态 > 日志)。
第七步:优化与测试
- 网络优化:调整SQM带宽,匹配多宽带总和。在网络 > 交换机配置VLAN隔离IoT。
- AdGuard:每周更新过滤列表,添加自定义规则。
- NAS:备份
/mnt/storage
,测试>2TB硬盘(ext4优先)。用htop
监控CPU,确保irqbalance
生效。 - Docker:部署Plex或Home Assistant,监控
/mnt/storage/docker
占用。 - 多宽带:调整权重优化流量。
- DDNS:开放端口:
Bash
Bashuci add firewall rule uci set firewall.@rule[-1].name='DDNS' uci set firewall.@rule[-1].src='wan' uci set firewall.@rule[-1].dest_port='80 443' uci set firewall.@rule[-1].proto='tcp' uci set firewall.@rule[-1].target='ACCEPT' uci commit firewall /etc/init.d/firewall restart
- 整体测试:用speedtest.net验证多宽带,连接多设备,确认广告屏蔽、NAS、Docker、DDNS。
常见问题与排错
- LuCI无法访问:检查防火墙:
Bash
Bashuci set firewall.@zone[0].input='ACCEPT' uci commit firewall /etc/init.d/firewall restart
重置:
Bash
Bashfirstboot && reboot
- 网卡不工作:检查:
Bash
Bashdmesg | grep eth
安装驱动:
Bash
Bashopkg install kmod-igc
- Samba速度慢:确认UAS:
Bash
Bashdmesg | grep uas
检查文件系统:
Bash
Bashmount | grep /mnt/storage
确认SMB3:
Bash
Bashcat /etc/samba/smb.conf | grep protocol
- Docker失败:检查存储:
Bash
Bashdf -h /mnt/storage
重启:
Bash
Bash/etc/init.d/dockerd restart
- Overlay分区未挂载:检查fstab:
Bash
Bashcat /etc/config/fstab
手动挂载:
Bash
Bashmount /dev/nvme0n1p3 /overlay
资源链接
- 视频:TechBit第二期(youtube.com/@TechBit)。
- OpenWrt:openwrt.org。
- 排错:OpenWrt论坛。
下一步?
软路由搞定!在TechBit视频评论区秀出你的NAS速度!下一期我将把旧Kindle改成复古电子墨水时钟,超酷DIY!订阅TechBit,关注blog.tech-bit.org不错过教程!
网络顺畅,DIY愉快!
TechTao