前言
上回书说到,我闲鱼入手了一台小主机,原本是刷入的FNOS系统加上透明代理的玩法。
但是,最近给我推荐那台小主机的同学,他自己的小主机成功地安装了OpenWrt系统,并且跑通了一系列的测试。
这让我开始思考,是否可以利用这台小主机来实现更灵活的网络管理。(毕竟我在学校暂时用不上NAS)
OpenWrt是什么?
OpenWrt是一个开源的嵌入式Linux系统,专为路由器设计。相比普通路由器的固件,它有以下优势:
- 高度可定制:可以安装各种软件包,实现广告过滤、内网穿透等功能
- 性能强大:x86小主机的性能远超普通家用路由器,2GB内存吊打一堆软路由
- 社区活跃:遇到问题很容易找到解决方案
- 完全开源:没有厂商的后门和限制
准备工作
硬件准备
-
x86小主机:我使用的是一台闲鱼淘来的小主机,配置如下:
- CPU: Intel(R) Celeron(R) CPU N2840 @ 2.16GHz
- 内存: 2GB DDR3
- 网口: 双千兆网口
- 无线网卡: Intel WiFi Link 5100
-
U盘:需要内置PE环境,用于在小主机上直接写入OpenWrt系统,建议4GB以上
-
网线:用于连接电脑和小主机,方便调试
软件准备
-
OpenWrt镜像:从官网下载x86版本的镜像
-
physdiskwrite 工具:用于将镜像写入小主机的硬盘
- 下载 physdiskwrite 工具
- 解压到U盘根目录

安装OpenWrt
步骤一:启动安装
- 将U盘插入小主机
- 开机时按
F12或Del进入BIOS - 设置U盘为第一启动项
- 保存并重启
步骤二:安装系统
- 进入PE环境
- 执行 physdiskwrite 工具
bash physdiskwrite -u xxxx.img - 按照提示完成安装
步骤三:初始配置
启动后,OpenWrt默认的LAN口IP是 192.168.1.1。
- 用网线连接电脑和小主机的LAN口
- 将电脑IP设置为
192.168.1.x网段 - 浏览器访问
http://192.168.1.1 - 默认用户名
root,无密码
注意:
- 确保小主机要打开
DHCP服务,否则无法获取IP地址。- 最好先在有线网络下配置,不然后续安装无线网卡驱动比较麻烦。
首次登录后建议设置密码:
passwd现在,你可以通过浏览器访问来配置OpenWrt系统了。

步骤四:安装中文支持
- 进入 System → Software
- 点击 Update 按钮,等待更新完成
- 搜索
i18n,查找zh-cn字样的软件包 - 点击 Install 按钮,等待安装完成

无线网卡配置
我的小主机带有一张Intel WiFi Link 5100的无线网卡,我这次的目标就是让OpenWRT通过这个无线网卡连接到WiFi网络,然后转发给我的路由器。
安装无线驱动
- 进入 系统 → 软件包
- 点击 更新列表 按钮,等待更新完成
- 搜索
iwlwifi,查找kmod-iwlwifi、iwlwifi-5100包 - 点击 Install 按钮,等待安装完成

- 进入 网络 → 无线,在你的无线网卡下,点击 扫描 按钮,扫描可用WiFi网络。

- 选择要连接的WiFi,输入密码,点击 连接 按钮。

- 等待连接成功,确认网络连接正常。

不过,由于我这张网卡有点老了,所以我遇到了一些问题。
问题:扫描不到WiFi
安装好驱动后,我进入 网络 → 无线 页面,点击扫描按钮,却发现扫描不到任何WiFi信号。
这让我有点困惑,明明驱动已经安装成功了,为什么还是扫描不到呢?
排查过程
首先,我通过SSH连接到OpenWrt,检查网卡是否被正确识别:
ifconfig -a结果发现输出中只有 eth0、eth1、br-lan 等有线网络接口,完全没有 phy0-sta0 或 radio0 这样的无线接口。
这说明虽然驱动安装了,但系统并没有创建无线网络接口。
接下来检查内核是否识别到了无线网卡:
dmesg | grep -i 'wireless\|wlan\|firmware'输出显示:
iwlwifi 0000:03:00.0: loaded firmware version 8.83.5.1 build 33692 5000-5.ucode op_mode iwldvm好消息!驱动和固件已经成功加载了。那为什么没有无线接口呢?
继续检查物理无线设备:
ls /sys/class/ieee80211/输出 phy0,说明物理设备确实被识别了,只是没有自动创建网络接口。
解决方案:手动创建无线接口
既然系统没有自动创建接口,那就手动创建一个:
# 创建无线接口iw phy phy0 interface add phy0-sta0 type managed
# 启用接口ip link set phy0-sta0 up
# 确认创建成功ifconfig -a | grep phy0执行后,phy0-sta0 接口终于出现了!
开机自动创建接口
每次重启都要手动创建接口太麻烦了,于是我在 /etc/rc.local 中添加了自动创建脚本:
cat > /etc/rc.local << 'EOF'sleep 2if ! iw dev | grep -q phy0-sta0; then iw phy phy0 interface add phy0-sta0 type managed ip link set phy0-sta0 upfiexit 0EOF
chmod +x /etc/rc.local这样每次开机就会自动检查并创建无线接口了。
WireGuard 配置
由于我的校园网需要通过 WireGuard 进行认证才能正常上网,所以还需要配置 WireGuard 客户端。
安装 WireGuard
- 进入 系统 → 软件包
- 点击 更新列表 按钮
- 搜索并安装以下软件包:
wireguard-toolsluci-proto-wireguardkmod-wireguard
- 安装完成后重启系统
通过 LuCI 界面配置
重启后,在 LuCI 界面配置 WireGuard:
- 进入 网络 → 接口
- 点击 添加新接口
- 名称填写
wgclient,协议选择 WireGuard VPN - 点击 创建接口
- 直接导入配置文件
- 切换到 防火墙设置 标签页,选择 WAN 区域
- 点击 保存,然后 保存并应用
验证连接
进入 状态 → WireGuard,查看是否有握手信息。如果有,说明连接成功。
踩坑:路由没有经过 WireGuard
配置好 WireGuard 后,我发现虽然 wg show 显示连接正常,但实际流量并没有经过 WireGuard 隧道。
通过 ip route 查看路由表,发现问题所在:WireGuard 的路由优先级不够高。
解决方案
需要在 LuCI 中调整路由设置:
- 进入 网络 → 接口,编辑
wgclient接口 - 切换到 高级设置 标签页
- 找到 路由表 选项,设置为
main(或者不填,使用默认) - 找到 跃点数 选项,设置一个较小的值(如
100),确保优先级高于其他 WAN 接口 - 保存并应用
或者通过命令行手动添加路由:
# 查看当前路由ip route
# 确保默认路由经过 WireGuard# 如果发现默认路由指向其他接口,需要调整另外,如果你的 OpenWrt 有多个 WAN 接口(比如同时有无线 WAN 和 WireGuard),还需要检查 多线负载均衡 设置,确保流量正确分流。
网络转发配置
既然OpenWrt已经通过无线网卡连上了网络,接下来就是配置网络转发,让连接到路由器的设备也能上网。
配置网络接口
- 进入 网络 → 接口
- 找到无线网络接口(通常是
wwan) - 将其防火墙区域设置为 WAN
配置防火墙
进入 网络 → 防火墙,确保:
- 无线接口属于 WAN 区域
- LAN 到 WAN 的转发已启用
测试转发
用网线连接路由器的WAN口到OpenWrt的LAN口,然后从连接路由器的设备测试网络:
ping baidu.com成功!现在所有连接路由器的设备都可以通过OpenWrt上网了。
常见问题
Q: 无线网卡驱动缺失怎么办?
首先确认网卡型号:
# PCIe网卡lspci -nn | grep -i network
# USB网卡lsusb然后安装对应驱动:
apk update
# Intel网卡apk add kmod-iwlwifi iwlwifi-firmware
# Realtek网卡apk add kmod-rtl8xxxu
# MediaTek网卡apk add kmod-mt7921e mt7921-firmwareQ: 连接WiFi后无法上网?
检查防火墙设置,确保无线接口属于 WAN 区域:
- 进入 网络 → 接口
- 找到无线接口,点击 编辑
- 切换到 防火墙设置 标签
- 选择 WAN 区域
Q: 5GHz WiFi连接不上?
Intel 5000系列老网卡对5GHz支持有限。建议:
- 设置正确的国家代码为 CN
- 尝试连接2.4GHz频段
- 检查信道是否支持
# 查看支持的信道iw phyQ: OpenWrt版本过旧怎么办?
查看当前版本:
cat /etc/openwrt_release新网卡(如Intel AX200、MT7922等)需要OpenWrt 23.05或更高版本。建议从官网下载最新稳定版固件。
总结
这次在x86小主机上安装OpenWrt的经历,让我踩了不少坑,但也学到了很多:
- 老网卡兼容性问题:Intel 5000系列这种老网卡可能需要手动创建无线接口
- 驱动和固件要配套:安装驱动时记得同时安装对应的固件包
- 防火墙区域很重要:无线接口作为WAN口使用时,必须正确设置防火墙区域
相比之前在FNOS上折腾透明代理,OpenWrt的方案确实更加稳定和方便管理。虽然配置过程中遇到了一些问题,但最终都解决了。
希望这篇文章能帮助到同样想在小主机上折腾OpenWrt的朋友们!

