在Mac上使用UTM虚拟机搭建OpenWrt软路由
前言
本文介绍如何在macOS系统上使用UTM虚拟机软件搭建OpenWrt软路由,实现网络共享和管理。这种方案特别适合需要在Mac设备上创建独立网络环境的场景,例如校园网环境下的网络共享。
环境准备
1. 安装UTM虚拟机
UTM是一款基于QEMU的macOS虚拟机软件,支持ARM架构的Mac设备(M1/M2/M3等)。
- 下载地址:https://mac.getutm.app/
- 下载后直接安装即可
2. 下载OpenWrt固件
本文推荐使用ImmortalWrt(OpenWrt的中国分支),它对国内网络环境和常用软件包支持更好。
- 固件下载地址:ImmortalWrt ARM64版本
- 选择文件:
immortalwrt-24.10.0-armsr-armv8-generic-ext4-combined-efi.img.gz
下载后使用以下命令解压:
gunzip immortalwrt-24.10.0-armsr-armv8-generic-ext4-combined-efi.img.gz
创建虚拟机
1. 新建虚拟机
- 打开UTM,点击"添加虚拟机"
- 选择"虚拟化" → "其他"
- 启动设备选择"无"
- 内存和CPU根据需求配置(建议至少1GB内存,2核CPU)
- 存储先不配置,稍后手动添加
2. 配置虚拟机
右键点击创建的虚拟机,选择"编辑",进行以下配置:
2.1 添加串行设备
在"设备"中添加一个串行设备,用于控制台访问。
2.2 查看主机网络接口
在Mac系统中查看网络接口信息:
- 打开"关于本机" → "更多信息" → "系统报告" → "网络"
- 记录各网络接口的BSD设备名称(如en0、en1等)
2.3 添加网络接口
添加两个网络接口,分别用于WAN和LAN:
- WAN接口(连接上游网络)
- 桥接模式:选择Mac的WiFi接口(通常是en1)
- 模拟网卡:virtio-net-pci
- 记录MAC地址(例如:AA:10:CE:BC:8C:BC)
- LAN接口(连接下游设备)
- 桥接模式:选择Mac的以太网接口(通常是en0)
- 模拟网卡:virtio-net-pci
- 记录MAC地址(例如:CE:15:05:F8:E9:89)
2.4 添加存储驱动器
- 新建驱动器,类型选择VirtIO
- 导入之前解压的OpenWrt镜像文件
3. 启动虚拟机
配置完成后启动虚拟机,OpenWrt将自动启动。
配置OpenWrt网络
1. 识别网络接口
首次启动后,通过串行控制台登录OpenWrt(默认无密码),使用以下命令查看网络接口:
ip addr
根据MAC地址对应关系识别接口:
- eth0: AA:10:CE:BC:8C:BC(对应WAN)
- eth1: CE:15:05:F8:E9:89(对应LAN)
2. 配置网络接口
使用UCI命令配置网络:
# 配置WAN接口(eth0)- 从上游网络获取IP
uci set network.wan=interface
uci set network.wan.device='eth0'
uci set network.wan.proto='dhcp'
# 配置LAN接口(eth1)- 为下游设备提供服务
uci set network.lan=interface
uci set network.lan.device='eth1'
uci set network.lan.proto='static'
uci set network.lan.ipaddr='192.168.31.1'
uci set network.lan.netmask='255.255.255.0'
# 提交配置并重启网络
uci commit network
/etc/init.d/network restart
3. 验证配置
再次运行ip addr
,确认接口配置正确:
- eth0应该获取到上游网络分配的IP地址
- eth1应该显示配置的静态IP地址(192.168.31.1)
配置Mac主机路由
为了让Mac能够访问OpenWrt的管理界面,需要配置路由:
# 1. 清理可能存在的旧路由
sudo route delete 192.168.31.0/24 2>/dev/null
sudo route delete -net 192.168.31.0/24 2>/dev/null
sudo route delete 192.168.31.1 2>/dev/null
# 2. 配置en0接口IP地址
sudo ifconfig en0 down
sudo ifconfig en0 192.168.31.100 netmask 255.255.255.0 up
# 3. 添加路由
sudo route add -net 192.168.31.0/24 -interface en0
# 4. 验证连接
ping 192.168.31.1
成功后,可以通过浏览器访问 http://192.168.31.1 进入OpenWrt管理界面。
IPv6配置(校园网环境)
对于支持IPv6的校园网环境,需要进行额外配置以支持IPv6:
1. WAN6接口配置
在LuCI界面中,进入"网络" → "接口" → "WAN6":
常规设置:
- 勾选"拓展前缀"(获取IPv6-PD)
- 设备选择eth0
DHCP服务器 → IPv6设置:
- RA服务:中继模式
- DHCPv6服务:中继模式
- NDP代理:中继模式
2. LAN接口IPv6配置
在"网络" → "接口" → "LAN":
高级设置:
- IPv6前缀分配:::156(根据实际情况调整)
- 勾选"强制链路"
DHCP服务器:
- 高级设置:勾选"强制"
- IPv6设置:
- RA服务:服务器模式
- DHCPv6服务:服务器模式
- NDP代理:混合模式
总结
通过UTM虚拟机在Mac上搭建OpenWrt软路由,可以实现灵活的网络管理和共享。这种方案特别适合:
- 需要在Mac上创建独立网络环境
- 校园网多设备共享
- 学习和测试网络配置
本文介绍的配置方法经过实际测试,能够稳定运行。根据具体网络环境,可能需要调整部分配置参数。