事前准备
1. 下载 OpenWrt 镜像
骷髅大佬版本:DHDAXCW/OpenWRT_x86_x64
ext4
文件系统镜像可以对任何改动都进行持久化存储,
squashfs
一般情况下对文件系统的改动无法持久化,每次重启都会重置更改,但便于从错误配置中重置。推荐使用 generic-squashfs-x.img
generic-x-combined.img.gz
传统 BIOS 引导
generic-x-combined-efi.img.gz
UEFI 引导
2. OpenWrt 镜像转换格式
解压之后,会得到一个 .img
格式的镜像文件,而 Hyper-V 不能直接识别和使用这个格式的镜像,需要把 .img
格式转换为 Hyper-V 可以识别的 .vhd
或 .vhdx
格式的镜像文件。
Windows 平台下,我们有两种转换方式:
其一:使用 qemu-img
只需要它的 qemu-img 工具,所以我们只勾选 Tools 和 DLL Library 两项。
接下来一路默认,安装完成后即可关闭安装程序。注意:安装程序可能不会默认将其安装目录添加进环境变量中,所以接下来的命令可能需要你自行定位至安装目录运行,或者将其添加进你的环境变量。
qemu-img convert -p -f raw -O vhdx your_image.img your_image.vhdx
命令不会输出任何结果,但实际上已经完成了转换。
其二:使用 StarWind V2V Converter
下载完成后,进入安装程序,一路默认即可。
安装完成后,进入 StarWind V2V Converter,
在”Select the location of the img to convert”页面中,选择”Local File”,然后在下一页中选择你下载的镜像,
在”Select the location of the destination image”页面选择”Local File”,
在”Select destination image format”页面中选择”VHD/VHDX”,选择”VHDX Growable Image”或者”VHDX Pre-allocated”,转换即可。
两款软件的下载地址: https://github.com/RinLin-NYA/RinLin-NYA.github.io/releases
3. 开启hyper-v
Win + R -> control -> 程序 -> 启用或关闭 Windows 功能,然后需要勾选如下几项:
- Hyper-V
- 虚拟机平台
创建虚拟网络交换机
了解虚拟网络交换机类型
Hyper-V 一共提供了三种类型的虚拟网络交换机:
-
内部虚拟交换机:供虚拟机和物理机之间通讯的虚拟网络交换机。这种虚拟交换机可用于物理机和虚拟机的双向连接(例如,如果你希望从物理机连接到虚拟机的 ssh 或者远程桌面,那么这种虚拟交换机将很有用)。请注意:这种虚拟交换机通常情况下不可用于让虚拟机联网。
-
外部虚拟交换机:将物理机的网卡直接供虚拟机使用的虚拟网络交换机。这种虚拟交换机可以直接为虚拟机提供网络连接。这种虚拟交换机的作用相当于为一台物理机装载一张物理网卡。
-
专用虚拟交换机:供某一物理机上的所有虚拟机之间相互通讯的虚拟网络交换机。这种虚拟交换机只能用于各个虚拟机之间的通讯,无法同物理机或外部网络通讯。
由于本文配置 OpenWrt 的目的是“将其配置为旁路由以接管本机流量”,所以只要设置一个外部虚拟交换机(用于为 OpenWrt 虚拟机提供外部网络连接)。
※如果你配置 OpenWrt 的目的是将其作为与下游网络设备直接连接的软路由,请创建两个外部虚拟交换机。
创建 Hyper-V 虚拟机
回到 Hyper-V 管理器,点击“新建” -> 虚拟机,进入新建虚拟机向导。
名称和位置
点击“下一步”,名称和位置任取即可
指定世代
在下一步的“指定代数”中,请依据你先前获得镜像的引导方式选择虚拟机世代类型。
如果你的镜像仅支持 BIOS 引导方式,请选择红框所示的“第一代”,
如果你的镜像支持 UEFI 引导方式,则可以任意选择世代类型,但是这里仍推荐选择“第二代”。
内存分配
内存256MB足够了,不启用动态内存
配置网络
“配置网络”页面中,选择刚才创建的外部虚拟交换机
连接虚拟硬盘
“连接虚拟硬盘”页面中,选择“使用现有虚拟硬盘”,找到先前转换好的 .vhdx 虚拟硬盘文件
以上所有步骤完成后,确认信息无误后,点击“完成”,等待虚拟机创建完成。
配置 Hyper-V 虚拟机
回到“Hyper-V 管理器”,找到我们刚才创建的虚拟机,在右键后的下拉菜单中进入“设置”。
1个虚拟处理器,禁用安全启动,始终自动启动,禁用检查点,
左侧的“安全”页面,取消勾选“启用安全启动”,然后应用,否则 Hyper-V 会拒绝引导 OpenWrt。
点开“+”号,进入高级功能,勾选“启用 MAC 地址欺骗”,应用设置即可。
选择“添加硬件”,类型选择网络适配器,再将我们之前配置的外部虚拟交换机添加进虚拟机中。
到这里,我们已经完成了对这一 Hyper-V 虚拟机在初次开机之前的全部配置。
配置 OpenWrt
启动虚拟机,点击链接,进入 OpenWrt 终端,输入命令:
vi /etc/config/network
骷髅版的默认地址:option ipaddr '192.168.11.1'
※需要变更 例如改为'192.168.11.88'` 好记就行
vi
按下 i 键,修改为主机IP所在网段
按下 esc 键,键入:wq 保存退出 vim
重启OpenWrt
reboot
OpenWrt 后台设置
打开浏览器,在地址栏输入我们刚才配置的静态 IP 地址, 例如192.168.11.88
进入 OpenWrt 的后台管理页面。
默认用户名为 root ,默认密码为 password。※建议在配置完成后更改 root 的密码。
接下来我们需要进入“网络” -> 接口,对现有的 lan 口进行配置。需要更改的配置如下:
- 协议类型:“静态地址”
- IPv4 地址:我们可以为 OpenWrt 分配一个静态 IP 地址。例:
192.168.11.88
- IPv4 子网掩码地址:255.255.255.0
- IPv4 网关:网关地址应该和主路由网关一致,主路由网关通过
ipconfig
获取。例:192.168.11.1 - IPv4 广播地址:不用设置
- 自定义 DNS 服务器:设置为主路由网关,主路由网关通过
ipconfig
获取。例:192.168.11.1 - DHCP 设置: 勾选 “忽略此接口”选项。
上述七项完成后,我们点击“保存&应用”,新的网口配置就会被立即应用。
OpenWrt 插件的使用
- passwall