1. 环境准备与镜像获取
想要在VMware里折腾OpenWrt旁路由,第一步就是搞定系统镜像。这里我推荐直接从阿里云开源镜像站下载,速度稳定还不用担心资源失效。实测22.03.2版本兼容性最好,下载地址直接贴出来:https://mirrors.aliyun.com/openwrt/releases/22.03.2/targets/x86/64/openwrt-22.03.2-x86-64-generic-ext4-combined.img.gz
下载完会遇到个小麻烦——VMware不能直接识别.img格式。别慌,用StarWind V2V Converter这个神器转个格式就行。操作特别简单:打开软件选Local File导入刚下载的镜像,输出格式选VMDK,点转换按钮等进度条跑完。我试过多次转换,整个过程不会超过3分钟。
硬件方面建议至少给虚拟机分配1核CPU和512MB内存,实测这个配置跑OpenWrt完全够用。VMware版本我用的是17 Pro,但15.x以上版本都兼容。有个坑要注意:安装时记得选"Linux 5.x内核64位",选错系统类型可能导致网卡驱动异常。
2. 虚拟机创建与网络配置
打开VMware选择自定义创建,关键步骤在于网络设置。一定要选桥接模式,这样虚拟机才能和家里其他设备处在同一网段。创建完成后别急着启动,先到虚拟机设置里检查两个地方:一是删除没用的USB控制器,二是把磁盘类型改成SATA(默认的SCSI可能导致启动失败)。
首次启动会进入命令行界面,这时候要修改LAN口配置。输入以下命令编辑网络配置文件:
vi /etc/config/network找到config interface 'lan'这段,把ipaddr改成你家内网同网段的地址。比如主路由是192.168.1.1,旁路由可以设192.168.1.2。改完保存执行:
/etc/init.d/network restart这时候用浏览器访问刚设置的IP应该能看到LuCI管理界面了。如果打不开,八成是防火墙拦了,可以暂时用命令关闭:
/etc/init.d/firewall stop3. 系统优化与中文支持
默认界面是英文的,装个中文包就舒服多了。还到阿里云镜像站,找到对应版本的luci-i18n-base-zh-cn包。通过管理界面的System -> Software上传安装,装完记得刷新页面。我遇到过安装失败的情况,通常是依赖问题,先运行opkg update就能解决。
安全起见一定要改root密码!在System -> Administration里设置,建议密码包含大小写字母和数字。有个实用技巧:开启SSH访问更方便后续操作,位置在Services -> Dropbear SSH。
4. 旁路由核心配置
重点来了!要让OpenWrt当好旁路由,关键在LAN口设置。进入Network -> Interfaces,编辑LAN接口:
- 网关填主路由IP(比如192.168.1.1)
- 自定义DNS也填主路由IP
- 勾选"忽略此接口"关闭DHCP
- IPv6相关选项全部禁用
防火墙设置有两个关键点:关闭SYN-flood防护,删除自带的所有规则。实测开启SYN防护会导致部分设备无法上网。在Network -> Firewall里,把Forward规则改为accept,这样流量才能正确转发。
5. 插件安装与流量分流
推荐安装OpenClash实现智能分流,比原生的PassWall更稳定。需要先SSH连接路由器安装依赖:
opkg update opkg install coreutils-nohup bash iptables dnsmasq-full curl ca-certificates ipset ip-full libcap libcap-bin ruby ruby-yaml kmod-tun kmod-inet-diag unzip luci-compat如果遇到dnsmasq-full安装冲突,先卸载原版:
opkg remove dnsmasq && opkg install dnsmasq-full装完依赖后,在GitHub下载最新版OpenClash的ipk包,通过管理界面上传安装。配置时建议选择Redir-Host模式,兼容性最好。分流规则推荐使用ConnersHUA的配置,更新及时规则全面。
6. 设备分流方案实践
想让特定设备走旁路由?两种方案任选:
- 手动指定网关:在设备网络设置里,把网关和DNS都改成旁路由IP
- 主路由DHCP分配:在主路由的DHCP设置中,给指定MAC地址分配旁路由作为网关
我更喜欢第二种方案,管理起来更集中。比如让电视盒子走旁路由看高清视频,其他设备仍走主路由。测试时可以用traceroute命令检查路由路径:
traceroute www.baidu.com7. 常见问题排查
遇到设备无法上网?按这个顺序检查:
- ping主路由IP测试基础连通性
- 检查旁路由防火墙规则
- 确认DNS解析是否正常(nslookup命令)
- 查看系统日志(logread命令)
有个典型坑是MTU值不匹配,会导致大包传输失败。解决方法是在Network -> Interfaces里把MTU改成1480试试。另外建议开启流量监控(Statistics -> Traffic Monitoring),方便实时查看各设备流量情况。