第一次接触软路由是在2018年,当时为了搭建家庭智能家居中枢,需要更灵活的网络控制能力。试过各种方案后,发现PVE+OpenWRT的组合简直是为技术爱好者量身定制的解决方案。PVE(Proxmox VE)作为开源虚拟化平台,相比商业化的ESXi对硬件更友好,特别是对工控机、迷你主机这类设备支持更好。而OpenWRT这个Linux发行版专为嵌入式设备设计,路由功能强大到令人惊喜。
为什么说这是黄金组合?PVE提供了稳定的虚拟化环境,可以轻松创建多个虚拟机实例。我经常在PVE里同时运行OpenWRT软路由、HomeAssistant智能家居系统和NAS存储,一台迷你主机就能搞定所有需求。OpenWRT的包管理系统opkg让功能扩展变得异常简单,从广告过滤到内网穿透,几乎你能想到的网络功能都能通过安装插件实现。
实测下来,这套方案对硬件要求并不高。我用的是一台J4125处理器的工控机,8GB内存,128GB固态硬盘。这样的配置跑PVE+OpenWRT绰绰有余,还能再开几个轻量级虚拟机。网络性能方面,千兆宽带能跑满速,同时运行二十多个智能设备毫无压力。
在OpenWRT官网下载镜像时有个小技巧:国内用户建议使用镜像站加速下载。清华大学开源镜像站的OpenWRT仓库同步很及时,速度也快。比如要下载23.05.2版本的x86_64镜像,可以直接访问:
code复制https://mirrors.tuna.tsinghua.edu.cn/openwrt/releases/23.05.2/targets/x86/64/
下载完成后你会得到一个压缩包,解压后是.img格式的镜像文件。这里要注意区分不同版本:
我一般选择ext4版本,因为后续扩展更方便。解压命令很简单:
bash复制gunzip openwrt-23.05.2-x86-64-generic-ext4-combined.img.gz
在PVE网页控制台创建虚拟机时,有几个关键设置需要注意:
创建完成后别急着启动,还需要导入OpenWRT镜像。通过PVE的shell执行:
bash复制qm importdisk 101 /path/to/openwrt.img local-lvm
这里的101是虚拟机ID,local-lvm是存储名称。导入完成后,在虚拟机硬件设置里把磁盘总线改为SATA,并勾选SSD仿真和丢弃选项。
首次启动OpenWRT后,需要通过命令行配置网络。连接PVE的VNC控制台,登录后执行:
bash复制vi /etc/config/network
修改lan接口的配置,主要设置:
改完后执行:
bash复制/etc/init.d/network restart
现在就能通过浏览器访问OpenWRT的Web界面了,默认地址就是你刚设置的IP。
首次登录Web界面后,建议立即做这几件事:
更新软件源的命令:
bash复制opkg update
opkg list-upgradable | cut -f 1 -d ' ' | xargs opkg upgrade
要让OpenWRT发挥最大网络性能,需要调整几个关键参数:
bash复制echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
bash复制echo "net.netfilter.nf_conntrack_max=65535" >> /etc/sysctl.conf
code复制config zone
option name 'lan'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
默认安装的OpenWRT系统分区很小,需要扩容:
bash复制opkg install fdisk e2fsprogs
bash复制fdisk /dev/sdb # 创建新分区
mkfs.ext4 /dev/sdb1
bash复制mount /dev/sdb1 /mnt
tar -C / -cvf - . | tar -C /mnt -xf -
umount /mnt
现在运营商普遍支持IPv6,配置方法:
测试IPv6连通性:
bash复制ping6 ipv6.google.com
如果要通过IPv6远程访问,记得:
OpenWRT的强大之处在于丰富的插件:
安装方法:
bash复制opkg install 插件名
或者通过Web界面→系统→软件包安装
定期备份很重要,OpenWRT提供两种方式:
bash复制sysupgrade -b /tmp/backup.tar.gz
恢复时可以直接上传备份文件,或者用命令:
bash复制sysupgrade -r /path/to/backup.tar.gz
建议把备份文件保存到PVE宿主机的存储中,避免虚拟机故障导致备份丢失。
OpenWRT自带了简单的监控功能,但更推荐安装:
bash复制opkg install luci-app-statistics collectd-mod-*
这会提供CPU、内存、网络等详细监控数据。
查看实时流量:
bash复制bmon -p eth0
查看连接数:
bash复制conntrack -L
常见问题解决方法:
网络不通:
route -n查看路由表ping测试各节点连通性Web界面无法访问:
/etc/init.d/uhttpd statusiptables -L -n插件冲突:
logread查看系统日志基础安全措施:
修改默认SSH端口:
bash复制uci set dropbear.@dropbear[0].Port=2222
uci commit
/etc/init.d/dropbear restart
启用Fail2Ban防暴力破解:
bash复制opkg install luci-app-fail2ban
定期更新系统:
bash复制opkg update && opkg list-upgradable | cut -f 1 -d ' ' | xargs opkg upgrade
这套PVE+OpenWRT的方案我已经稳定运行三年多,从最初的简单路由到现在承载了全家智能设备、内网服务和远程访问,性能依然强劲。最让我满意的是它的灵活性,任何网络需求几乎都能通过安装相应插件实现。如果你也厌倦了商业路由器的各种限制,不妨试试这个方案。