ESXi虚拟机部署OpenWrt全流程指南

8 次阅读

ESXi部署OpenWrt通常适合家庭软路由、实验室网络、旁路由以及虚拟化环境中的网络管理场景。合理规划虚拟交换机、网卡直通和WAN/LAN网络后,可以让OpenWrt稳定承担拨号、DHCP、DNS、NAT、防火墙等功能。

一、部署前的网络规划

开始安装之前,建议先明确ESXi主机的物理网卡数量以及OpenWrt承担的网络角色。

比较常见的方案有两种:

方案WANLAN适用场景
双网卡独立物理网卡独立物理网卡家庭软路由、稳定性要求较高
单网卡VLANVLAN划分WAN/LANVLAN划分交换机支持VLAN、网卡数量有限

如果ESXi服务器至少有两张物理网卡,建议将一张用于WAN,另一张用于LAN。这样网络结构更加直观,也减少VLAN配置错误导致整个局域网中断的概率。

例如:

光猫
 │
 │ WAN
 ▼
ESXi物理网卡 vmnic0
 │
 ▼
OpenWrt虚拟机
 │
 │ LAN
 ▼
ESXi物理网卡 vmnic1
 │
 ▼
交换机
 │
 ├── PC
 ├── 手机
 └── 其他设备

如果使用旁路由,则不一定需要独立WAN网卡。OpenWrt可以只连接LAN网络,由主路由负责上网,OpenWrt负责DNS、透明代理、广告过滤等功能。

二、准备OpenWrt镜像

ESXi安装OpenWrt时,需要准备适合虚拟机使用的镜像格式。

常见方式包括使用OpenWrt官方发布的x86-64镜像,然后根据ESXi环境转换为虚拟磁盘格式。

OpenWrt针对x86平台通常会提供类似以下类型的镜像:

generic-ext4-combined.img.gz
generic-squashfs-combined.img.gz

其中,combined镜像通常包含适合完整系统启动的分区布局。

家庭软路由场景下,可以根据后续是否需要修改系统文件、安装大量插件等需求选择合适的文件系统。对于以稳定运行和系统回滚为主的场景,SquashFS方案比较常见;如果希望更直接地修改文件系统,则可以考虑Ext4方案。

下载镜像后先解压:

Bash
gunzip openwrt-x86-64-*.img.gz

最终得到:

openwrt-x86-64-*.img

如果下载的是其他格式,也可以使用相应转换工具处理。

三、将OpenWrt磁盘导入ESXi

ESXi使用VMFS存储虚拟机磁盘,因此需要把OpenWrt镜像转换或者上传到ESXi数据存储。

如果使用Linux环境,可以借助qemu-img转换磁盘:

Bash
qemu-img convert -f raw -O vmdk openwrt.img openwrt.vmdk

转换完成后,可以通过ESXi数据存储浏览器上传vmdk文件。

也可以先创建一个空白虚拟机,再将转换后的虚拟磁盘添加到该虚拟机中。

需要注意的是,不同版本ESXi对于虚拟磁盘控制器、VMDK描述文件以及磁盘导入方式存在差异。如果直接上传VMDK后无法启动,优先检查VMDK是否完整,以及虚拟机的磁盘控制器是否与当前镜像兼容。

四、创建OpenWrt虚拟机

登录ESXi管理界面,创建新的虚拟机。

操作过程中可以按照以下思路进行配置:

名称:OpenWrt
兼容性:根据ESXi版本选择
客户机操作系统:Linux
CPU:2 vCPU
内存:512MB~2GB
硬盘:8GB~32GB
网络适配器:2个或更多

OpenWrt本身资源占用并不高。如果只是拨号、NAT、DHCP和基础DNS服务,通常不需要分配大量内存。

如果需要安装较多软件包,例如代理、Docker相关组件、监控服务等,可以适当增加内存和磁盘容量。

CPU方面,双核心通常已经能够满足普通家庭网络需求。

五、添加WAN和LAN虚拟网卡

这是ESXi部署OpenWrt过程中最关键的步骤之一。

假设ESXi中已经建立两个标准虚拟交换机:

vSwitch-WAN
vSwitch-LAN

创建OpenWrt虚拟机后添加两张网卡:

网卡1 → vSwitch-WAN
网卡2 → vSwitch-LAN

OpenWrt启动后可能将这两张网卡识别成:

eth0
eth1

但不要仅凭网卡名称判断WAN和LAN。

不同镜像、驱动或者网卡添加顺序可能导致设备名称发生变化。因此首次配置时应该结合MAC地址进行确认。

例如:

Bash
ip link

或者:

Bash
ip addr

查看各接口的MAC地址,再与ESXi虚拟机硬件设置中的MAC地址进行对应。

六、处理ESXi虚拟交换机配置

如果OpenWrt作为真正的主路由使用,WAN虚拟交换机通常连接光猫或上级网络,LAN虚拟交换机连接家庭交换机。

如果物理网卡直接承担WAN网络,需要特别注意ESXi管理网络不要与WAN网络混在一起。

一个比较清晰的结构是:

vmnic0
 └── vSwitch-WAN
      └── OpenWrt WAN

vmnic1
 └── vSwitch-LAN
      ├── OpenWrt LAN
      ├── ESXi管理网络
      └── 其他虚拟机

不过,ESXi管理网络是否放在OpenWrt LAN侧,需要根据实际网络架构决定。

如果OpenWrt出现故障,ESXi管理网络最好仍然具备可靠的维护路径,避免因为OpenWrt停止运行而无法登录ESXi。

七、启动OpenWrt并检查网卡

完成虚拟机配置后启动OpenWrt。

进入控制台:

Bash
ip addr

检查网卡是否正常识别。

也可以查看默认路由:

Bash
ip route

以及DNS配置:

Bash
cat /etc/resolv.conf

如果使用OpenWrt新版系统,网络配置主要位于:

/etc/config/network

可以直接查看:

Bash
cat /etc/config/network

正常情况下,可以看到LAN接口、WAN接口以及相应协议配置。

八、配置OpenWrt LAN地址

假设家庭局域网采用:

192.168.10.0/24

可以将OpenWrt LAN地址设置为:

192.168.10.1

配置文件示例:

config interface 'lan'
    option device 'br-lan'
    option proto 'static'
    option ipaddr '192.168.10.1'
    option netmask '255.255.255.0'

修改后重启网络:

Bash
/etc/init.d/network restart

也可以直接重启OpenWrt:

Bash
reboot

之后使用浏览器访问:

http://192.168.10.1

即可进入LuCI管理界面。

九、配置WAN网络

WAN具体采用什么协议,取决于上级网络。

常见方式包括:

  • DHCP自动获取IP

  • PPPoE拨号

  • 静态IP

  • VLAN拨号

  • 桥接网络

家庭宽带如果要求账号密码拨号,通常使用PPPoE。

OpenWrt配置示例:

config interface 'wan'
    option device 'eth0'
    option proto 'pppoe'
    option username '宽带账号'
    option password '宽带密码'

配置完成后,可以在OpenWrt中检查WAN状态。

命令行可以执行:

Bash
ifstatus wan

如果已经获得公网IP或者上级网络分配的地址,说明WAN接口基本正常。

十、设置DHCP服务

如果OpenWrt负责家庭局域网的地址分配,可以开启DHCP。

例如:

LAN地址:192.168.10.1
DHCP范围:192.168.10.100~192.168.10.200

终端设备连接LAN后,可以自动获得:

IP:192.168.10.x
网关:192.168.10.1
DNS:192.168.10.1

如果原本网络中已经存在其他DHCP服务器,则不要让多个设备同时向同一局域网提供DHCP,否则容易出现IP冲突、网关错误等问题。

十一、配置NAT和防火墙

OpenWrt作为主路由时,一般由防火墙完成WAN与LAN之间的访问控制,同时通过NAT让多个局域网设备共享WAN连接。

可以检查防火墙状态:

Bash
/etc/init.d/firewall status

对于标准OpenWrt默认配置,LAN通常允许访问WAN,而WAN侧不会直接允许访问LAN内部设备。

如果修改了防火墙区域,建议重点检查:

LAN → WAN
WAN → LAN
端口转发
流量转发
入站规则

尤其不要为了测试网络而长期关闭防火墙。

十二、ESXi中使用VLAN部署OpenWrt

如果只有一张物理网卡,也可以借助VLAN实现WAN和LAN隔离。

例如:

VLAN 10 → WAN
VLAN 20 → LAN

交换机对应端口需要配置Trunk,并允许相关VLAN通过。

ESXi中的虚拟交换机、端口组也需要与VLAN规划保持一致。

例如:

Port Group WAN → VLAN 10
Port Group LAN → VLAN 20

OpenWrt虚拟机连接对应Port Group后,再在系统内部完成相应网络配置。

如果采用VLAN方案,一定要从交换机、ESXi Port Group、OpenWrt三个层面逐级检查。任何一层VLAN配置错误,都可能导致网卡看起来正常,但实际无法通信。

十三、是否需要开启混杂模式

很多人在ESXi部署OpenWrt时会遇到“需要不要开启混杂模式”的问题。

普通双网卡路由场景下,通常不应该为了让OpenWrt正常转发数据而盲目开启:

Promiscuous Mode
Forged Transmits
MAC Address Changes

这些安全策略是否需要调整,取决于具体网络拓扑。

如果只是:

WAN网卡 → OpenWrt → LAN网卡

属于常规虚拟路由结构,一般不需要依赖混杂模式才能完成基本路由。

如果使用桥接、特殊二层转发、某些虚拟交换网络或者需要多个MAC地址经过同一虚拟交换机,则可能涉及相关设置。

因此应该先确认实际需求,再针对性修改,不建议直接将所有安全选项设置为Accept。

十四、检查OpenWrt是否能够正常上网

完成WAN、LAN和DHCP配置后,可以依次测试。

首先测试OpenWrt自身:

Bash
ping 192.168.10.1

再测试上级网关:

Bash
ping 上级网关IP

测试公网IP:

Bash
ping 223.5.5.5

最后测试域名解析:

Bash
ping www.baidu.com

如果能够Ping公网IP,但域名无法访问,通常需要检查DNS。

如果OpenWrt本身可以访问互联网,但LAN客户端不能上网,则重点检查:

LAN接口
DHCP
默认网关
NAT
防火墙
DNS

十五、ESXi部署OpenWrt常见故障排查

1. OpenWrt启动后无法进入系统

首先检查虚拟磁盘是否正确挂载。

重点确认:

虚拟磁盘是否存在
磁盘控制器是否兼容
启动顺序是否正确
镜像是否完整
虚拟机固件模式是否匹配

如果导入的VMDK存在问题,可以重新转换镜像。

2. OpenWrt只能看到一张网卡

检查ESXi虚拟机硬件设置,确认已经添加多张虚拟网卡。

然后在OpenWrt执行:

Bash
ip link

如果ESXi显示两张网卡,而OpenWrt只有一张,需要进一步检查虚拟网卡类型和系统驱动。

常见虚拟网卡可以使用VMXNET3等ESXi支持的设备类型,但具体兼容性需要结合OpenWrt镜像版本进行确认。

3. WAN可以访问,LAN无法上网

首先检查LAN客户端是否获得正确地址:

IP:192.168.10.x
网关:192.168.10.1
DNS:192.168.10.1

如果客户端根本没有IP,优先检查DHCP和LAN网卡。

如果客户端可以访问:

192.168.10.1

但无法访问公网,则继续检查WAN、NAT和防火墙。

4. ESXi管理界面无法访问

如果ESXi管理网络经过OpenWrt,一旦OpenWrt关闭,ESXi可能同时失去管理连接。

更稳妥的设计是提前规划独立管理路径,例如:

管理网络
     │
     ├── ESXi
     └── 管理终端

业务网络
     │
     └── OpenWrt

对于长期运行的服务器环境,建议不要让关键的ESXi管理入口完全依赖一台普通软路由虚拟机。

十六、OpenWrt虚拟机资源怎么分配

普通家庭环境不需要给OpenWrt分配过高的资源。

一个常见起点可以是:

CPU:2 vCPU
内存:1GB
磁盘:8GB~16GB
网卡:2个

如果只是进行PPPoE、NAT、DHCP和DNS服务,这类配置通常已经比较充足。

如果安装大量插件或者运行额外服务,可以根据实际CPU、内存和存储使用情况逐步增加资源。

资源分配并不是越高越好。尤其是CPU数量增加后,并不意味着网络性能一定同步提升,应该结合实际流量、软中断、插件负载等指标进行调整。

十七、部署完成后的优化建议

OpenWrt运行稳定后,可以进一步完善网络环境。

首先是固定管理地址,例如:

OpenWrt:192.168.10.1
ESXi:192.168.10.2
交换机:192.168.10.3

其次可以根据家庭设备数量合理设置DHCP地址池,避免地址范围过大。

对于需要远程管理的环境,应重点做好防火墙和访问控制,尽量不要直接暴露OpenWrt管理后台。

如果OpenWrt承担核心网络功能,还应该考虑虚拟机自动启动。ESXi发生重启后,让OpenWrt优先启动,可以减少网络长时间中断。

同时建议定期备份OpenWrt配置:

Bash
sysupgrade -b /tmp/openwrt-backup.tar.gz

将生成的备份文件保存到其他设备,而不要只放在OpenWrt虚拟磁盘中。

十八、ESXi虚拟机部署OpenWrt的完整流程

整个过程可以归纳为:

规划WAN/LAN网络
      ↓
准备OpenWrt x86-64镜像
      ↓
转换或上传虚拟磁盘
      ↓
创建ESXi虚拟机
      ↓
分配CPU、内存和磁盘
      ↓
添加WAN/LAN虚拟网卡
      ↓
配置vSwitch或VLAN
      ↓
启动OpenWrt
      ↓
确认网卡与MAC地址
      ↓
配置LAN
      ↓
配置WAN
      ↓
配置DHCP
      ↓
检查NAT与防火墙
      ↓
测试OpenWrt联网
      ↓
测试LAN客户端
      ↓
备份配置并设置自动启动

其中最容易出问题的并不是OpenWrt安装本身,而是ESXi虚拟交换机、物理网卡、VLAN以及WAN/LAN接口之间的对应关系。部署时只要先把网络拓扑设计清楚,再逐层确认网卡和IP配置,排错难度会明显降低。

对于家庭主路由场景,双物理网卡方案更加直观;对于服务器网卡资源有限且交换机支持VLAN的环境,可以采用单网卡VLAN方案。无论采用哪一种方式,都建议先保留ESXi独立的管理路径,并做好OpenWrt配置备份,这样即使路由配置出现问题,也能够快速恢复虚拟化平台和网络服务。