有没有关于如何在 Windows Hyper-V 虚拟机上安装 OpenWrt 的明确说明?
答案1
启用 Hyper-V
在主机 PowerShell 中创建 OpenWrt 虚拟磁盘
New-VHD E:\VM\OpenWrt.vhdx -SizeBytes 128MB
- 在主机 PowerShell 中将 OpenWrt 虚拟磁盘附加到所有 WSL 发行版
wsl --mount E:\VM\OpenWrt.vhdx --vhd --bare --name OpenWrt
- 在 WSL 发行版中使用 lsblk 查找大小为 128MB 的设备名称
lsblk -o vendor,model,name,mountpoint,fstype,size,fsuse%,state,label,uuid,pttype
- 在 WSL 发行版中将 OpenWrt 映像复制到上一步中标识的虚拟磁盘
dd if=openwrt-22.03.5-x86-64-generic-ext4-combined.img of=/dev/sdc bs=1MB
- 在主机 PowerShell 中从所有 WSL 发行版中分离 OpenWrt 虚拟磁盘
wsl.exe --unmount \\?\E:\VM\OpenWrt.vhdx
- 在主机 PowerShell 中为 LAN 接口创建外部虚拟交换机
New-VMSwitch -Name "External Switch" -NetAdapterName eth0
- 在主机 PowerShell 中创建 OpenWrt 虚拟机
New-VM OpenWrt -MemoryStartupBytes 512MB -SwitchName "External Switch" -VHDPath E:\VM\OpenWrt.vhdx
Add-VMNetworkAdapter OpenWrt -SwitchName "Default Switch"
- 在主机PowerShell中启动OpenWrt虚拟机
Start-VM OpenWrt
- 在主机 PowerShell 中连接到 OpenWrt 虚拟机
vmconnect localhost OpenWrt
- 在 OpenWrt VM 中调整 /etc/config/network:
config interface 'wan'
option device 'eth0'
option proto 'static'
list ipaddr '192.168.0.10/24'
list dns '192.168.0.1'
option gateway '192.168.0.1'
config device
option type 'bridge'
option name 'br-lan'
list ports 'eth1'
config interface 'lan'
option device 'br-lan'
option proto 'dhcp'
config interface 'lan2'
option proto 'static'
option device '@lan'
list ipaddr '192.168.4.1/24'
- 在OpenWrt VM中重启网络
service network restart
- 在 OpenWrt VM 中将防火墙规则添加到 /etc/config/firewall:
config rule
option name 'Allow-HTTP'
option src 'wan'
option proto 'tcp'
option dest_port '80'
option target 'ACCEPT'
config rule
option name 'Allow-SSH'
option src 'wan'
option proto 'tcp'
option dest_port '22'
option target 'ACCEPT'
- 在 OpenWrt VM 中应用防火墙规则
service firewall reload
- 在主机 PowerShell 中识别“以太网适配器 vEthernet(默认交换机)”IP 地址
ipconfig /all
IPv4 Address. . . . . . . . . . . : 172.23.160.1(Preferred)
- 在主机 PowerShell 中通过“默认交换机”添加至 OpenWrt LAN 的路由
route add 192.168.4.0 mask 255.255.255.0 172.23.160.1 metric 3
注意:使路由持久化可能比较棘手,因为“默认交换机”IP 通常会在重启时发生变化
- 在主机上通过浏览器连接到配置的地址
192.168.4.0
or
192.168.0.10