VMware部署OpenWrt:实现宿主机透明网关与旁路分流实战

张开发
2026/4/17 10:45:31 15 分钟阅读

分享文章

VMware部署OpenWrt:实现宿主机透明网关与旁路分流实战
1. 为什么要在VMware里部署OpenWrt很多朋友第一次听说在虚拟机里装路由器系统会觉得多此一举。我刚开始也这么想直到去年家里装修网络时发现几个真实痛点主路由性能太差跑不满千兆带宽、智能家居设备总抢带宽、需要给不同设备分配不同网络策略。这时候用VMware跑OpenWrt的方案就派上用场了。OpenWrt这个开源路由系统最大的特点是灵活。把它装在VMware虚拟机里相当于给你的电脑内置了一个专业级软路由。我实测下来在i5-8250U的笔记本上跑OpenWrt能轻松处理500Mbps的科学上网流量CPU占用还不到30%。相比动辄上千元的硬件路由这性价比简直逆天。具体来说这个方案适合三类人技术爱好者想折腾网络配置又怕把家里搞断网租房党房东配的路由太烂又不想额外买设备开发测试需要模拟复杂网络环境调试程序2. 准备工作镜像选择与基础配置2.1 获取OpenWrt镜像官方镜像站openwrt.org提供的镜像需要手动转换格式对新手不太友好。我推荐直接用论坛大神编译好的VMware专用镜像比如这个wget https://downloads.openwrt.org/releases/22.03.3/targets/x86/64/openwrt-22.03.3-x86-64-generic-ext4-combined.img.gz gunzip openwrt-22.03.3-x86-64-generic-ext4-combined.img.gz qemu-img convert -f raw -O vmdk openwrt-22.03.3-x86-64-generic-ext4-combined.img openwrt.vmdk如果觉得麻烦也可以直接下载现成的vmdk文件。koolshare论坛的LEDE固件对新手更友好自带软件中心界面。不过要注意第三方固件的安全性建议从可信来源下载。2.2 创建虚拟机关键设置在VMware中新建虚拟机时这几个选项最容易踩坑客户机操作系统选Linux - 其他Linux 5.x或更高版本内核64位磁盘使用现有虚拟磁盘选择刚下载的vmdk文件网络适配器先添加两个适配器第一个选NAT模式对应VMnet8第二个选桥接模式对应VMnet0重点来了先不要启动虚拟机很多朋友急着开机结果发现连不上管理界面都是漏了关键配置。我建议先把虚拟机的内存调到1GB512MB可能不够用CPU给双核这样跑服务更稳。3. 网络拓扑设计与配置3.1 方案一宿主机全流量走OpenWrt这种模式下你的电脑所有网络流量都经过OpenWrt处理适合需要全局代理或流量监控的场景。配置分三步走第一步修改VMnet8网段打开VMware的虚拟网络编辑器找到VMnet8NAT模式子网IP改为192.168.2.0子网掩码255.255.255.0取消勾选使用本地DHCP服务第二步配置宿主机网卡在Windows网络连接里找到VMware Network Adapter VMnet8IP地址192.168.2.100 子网掩码255.255.255.0 默认网关192.168.2.1 DNS192.168.2.1第三步配置OpenWrt管理界面启动虚拟机后用ssh连接默认IP 192.168.1.1密码passwordvi /etc/config/network config interface lan option proto static option ipaddr 192.168.2.1 option netmask 255.255.255.0 option gateway 192.168.2.1 option dns 114.114.114.114重启网络服务后宿主机就能通过192.168.2.1访问OpenWrt的Web界面了。实测下载速度比直接连光猫快了20%因为OpenWrt的SFE加速确实给力。3.2 方案二旁路分流模式如果你只想让特定设备比如另一台虚拟机走OpenWrt宿主机保持原网络可以这样操作关键配置区别保持VMnet8的DHCP开启状态宿主机VMnet8网卡不填网关OpenWrt的LAN口IP改成和主路由同网段如主路由是192.168.1.1OpenWrt设为192.168.1.2在需要分流的设备上比如Ubuntu虚拟机手动设置IP地址192.168.1.100 网关192.168.1.2 DNS192.168.1.2这样只有这台Ubuntu的流量会经过OpenWrt处理适合用来跑docker容器或者测试爬虫脚本。我平时开发时就喜欢这么用主系统网络干干净净测试环境随便折腾。4. 高阶玩法与避坑指南4.1 透明代理的实现要让所有流量自动走代理需要在OpenWrt安装相应插件以passwall为例opkg update opkg install luci-app-passwall然后在网络 - 接口 - LAN里开启强制走代理选项。这里有个坑如果发现国内网站变慢记得在插件里勾选中国域名直连和中国IP段直连。4.2 多网口分流策略如果你给OpenWrt配了多个网卡比如再加个VMnet1可以实现更复杂的策略config interface vpn option proto static option ipaddr 192.168.3.1 option netmask 255.255.255.0 option device eth2然后在防火墙规则里设置iptables -t mangle -A PREROUTING -j MARK --set-mark 0x1 -i eth2 ip rule add fwmark 0x1 table vpn ip route add default via 192.168.3.1 dev eth2 table vpn这样连接eth2的设备会自动走特殊路由我用来隔离智能家居设备特别方便。4.3 常见问题排查连不上管理界面检查虚拟机是否获取到IPifconfig br-lan确认防火墙没拦截/etc/init.d/firewall stop临时关闭测试网速不达标关闭VMware的流量整形虚拟机设置 - 网络适配器 - 取消带宽限制开启OpenWrt的SFE加速echo 1 /sys/module/xt_FLOWOFFLOAD/parameters/hw_flow宿主机断网确保没有IP冲突重置VMnet8netsh int ip resetWindows这套方案我已经稳定运行两年多配合定时重启脚本基本零维护。最近还把配置迁移到ESXi上性能比VMware Workstation还要强30%。不过对新手来说Workstation的图形界面更友好建议先从基础玩法入手。

更多文章