Sukka's Blog

童话只美在真实却从不续写

在 Windows 10 上使用 Hyper-V 安装 LEDE 软路由

Sukka's Avatar 2019-02-16 笔记本

  1. 1. 检查硬件设备
  2. 2. 启用 Hyper-V
  3. 3. 配置虚拟交换机
  4. 4. 下载并转换 LEDE 固件
  5. 5. 创建 LEDE 虚拟机
  6. 6. 设置内部网络
  7. 7. 设置 LEDE 的 LAN
  8. 8. 设置 LEDE 所在的网段
  9. 9. 设置 LEDE 的 WAN
  10. 10. 修改管理后台密码
  11. 11. Koolshare 软件中心

在 Windows 10 上通过 Hyper-V 已经一大把教程了,还有 YouTube 上诸多 UP 录制了手把手视频。所以,如果我还要写一篇教程,那就得写一些不一样的东西、你们没有看过的东西。

检查硬件设备

首先检查自己的 CPU 是否支持硬件虚拟化技术,在 Intel 平台被称之为 VT-x、在 AMD 平台被称之为 AMD-V。如果设备支持 I/O 设备虚拟化技术(在 Intel 被称之为 VT-d;在 AMD 平台被称之为 AMD-Vi)自然也是建议开启。在 BIOS 里找 Virtualization(有的 BIOS 会把 Virtualization 放在 Security 下面),启用相关选项。

如果你启用了快速启动、或者只是懒得在开机时敲 F12F2 或者 Esc 进 BIOS,可以在 Windows 10 的设置里重启进入 BIOS:Windows 设置 - 更新和安全 - 恢复,选择「高级启动」下的「立即重新启动」。

hyper-v-lede/1.png

然后依次选择:疑难解答 - 高级选项 - UEFI 固件设置,就会自动重启进入 BIOS 了.

启用 Hyper-V

Hyper-V 是 Windows 10 专业版及更高级版本和所有 Windows Server 自带的裸金属虚拟化。“伟大的中国人民”总有办法把 Windows 10 个人版变成专业 Vol 版的。
通过 Widows 设置 - 应用 - 应用和功能 - 相关设置 - 程序和功能 进入「控制面板」的「程序和功能」。当然你也可以直接通过控制面板进入「程序和功能」。

hyper-v-lede/2.png

点击「确定」,Windows 会自动开启 Hyper-V 功能并要求重启计算机。

配置虚拟交换机

重新启动以后,通过任务栏的「搜索」功能搜索 Hyper-V 就可以找到「Hyper-V 管理器」。
打开 Hyper-V 管理器后,在右侧找到「虚拟交换机管理器」,点击。

hyper-v-lede/3.png

Hyper-V 会打开新的窗口——虚拟交换器管理器。我们要依次创建相当于路由器的 WAN 口的虚拟交换机、用于将设备连接到网络,和相当于 LAN 口的虚拟交换机、供虚拟机上网。
在新的窗口中点击「新建虚拟网络交换机」,在类型中确认选中的是「外部」,然后「创建虚拟交换机」。

hyper-v-lede/4.png

在名称中输入一个具有辨识性的名字,比如「外部网络」,然后连接类型设置为「外部网络」,在下方的下拉菜单中选择你目前用于连接到外部网络的网络设备,一般是有线网卡或者无线网卡。
接着要确保「允许管理操作系统共享此网络适配器」是选中的状态。

hyper-v-lede/5.png

然后再次点击左侧的「新建虚拟网络交换机」,类型选择「内部」,然后「创建虚拟交换机」。

hyper-v-lede/6.png

这个虚拟交换机是用于给虚拟化宿主机提供来自软路由的网络的,类型选择「内部网络」。

hyper-v-lede/7.png

如果你不需要将这个软路由作为一个真正的路由器使用,仅仅是为了 Windows 透明代理,那么配置一个外部和一个内部的虚拟交换机就已经足够了。
但是如果你需要将这个软路由的网络提供给其他设备,并且有多个物理网卡,只需要为每个物理网卡都添加一个类型为「外部网络」的虚拟交换机,不过在创建时需要注意取消勾选「允许管理操作系统共享此网络适配器」。

下载并转换 LEDE 固件

Hyper-V 使用的硬盘是 vhdx 格式的虚拟硬盘文件,而 Koolshare 提供的是 RAW 的(img)镜像文件。你当然可以去下载别人转换好的硬盘映像,不过如果你自己转换的话就可以使用最新版的 LEDE 了,而且,自己动手丰衣足食嘛。

我们需要用到的转换器是 StarWind Software V2V Image Converter,可以去 StarWind Software 的官网下载。
你也可以下载这个便携版 StarWind Software V2V Image Converter Portable,但是由于是第三方制作、没有经过签名,可能会被 Windows SmartScreen 提示风险,并且运行时需要通过 UAC 授权。

前往 Koolshare LEDE x64 下载页 下载带有 uefi-gpt-squashfs 字样的最新的固件。

hyper-v-lede/8.png

有的教程中会让你下载 combined-squashfs 的固件,但是我开头不是说了,要写一些不一样的东西对吧?这里就已经不一样了。为什么你应该下载 uefi-gpt-squashfs 的固件,看到后面你就会知道了。

注意这里下载的固件是经过压缩的 img.gz 文件,你需要解压出原始文件,推荐使用 7-zip 进行解压。解压以后你会得到一个 700 多 MB 的 img 文件,这是正常的。

启动 StarWind Software V2V Image Converter,启动后会看到一个 StarWind 自家的广告页面,直接点击下一步即可。

「Source image location」原始镜像位置选择「local file」也就是本地文件。然后点击「Next」。
接下来是选择镜像文件,点击输入框右侧的按钮,选择我们刚才解压得到的 700 多 MB 的 img 文件,点击「Next」

hyper-v-lede/9.png
hyper-v-lede/10.png

「Image Format」选择「Microsoft VHDX Image」,点击「Next」。

hyper-v-lede/11.png

再下一页中的「Activate Windows Repair Mode」,注意不要勾选。

hyper-v-lede/12.png

接下来会让你选择转换后的文件储存在哪里,默认会存在原始文件所在的目录。接下来就会开始将 img 镜像文件转换为 Hyper-V 使用的 vhdx 虚拟硬盘映像文件了。转换过程很快,等进度条跑到 100 % 以后就可以点击「Finish」退出了。

创建 LEDE 虚拟机

打开「Hyper-V 管理器」,在右侧点击「新建 - 虚拟机」,将会打开一个新的窗口「新建虚拟机向导」。
虚拟机的名称可以自行设置。我在这里填入了「Koolshare LEDE」。

hyper-v-lede/13.png

虚拟机代数注意要选择 第二代。第二代 Hyper-V 虚拟机拥有比第一代更好的性能,并且支持 UEFI 启动。你现在应该知道为什么要下载 UEFI 启动的固件了吧。

hyper-v-lede/14.png

接下来是为虚拟机分配内存,建议至少要有 256MB,一般 1024MB 已经足够使用了。
注意要去除「为此虚拟机使用动态内存」的勾选。

hyper-v-lede/15.png

为虚拟机分配一个网络适配器,你可以任意选择一个,反正虚拟机创建完以后会去添加另一个的。你可以如图选择之前创建的「外部网络」。

hyper-v-lede/16.png

为虚拟机创建硬盘,我们选择「使用现有虚拟硬盘」,并使用之前转换的 vhdx 硬盘映像即可。

hyper-v-lede/17.png

虚拟机已经创建好了,接下来进行一些配置:

hyper-v-lede/18.png

点击左侧的「安全」,取消勾选「启用安全启动」

hyper-v-lede/19.png

点击左侧的「SCSI 控制器」下的「硬盘控制器」,找到我们添加的 OpenWRT 虚拟硬盘,然后点击「编辑」。
在新打开的窗口「编辑虚拟硬盘向导」中,选择「扩展」。

hyper-v-lede/20.png

为硬盘设置新的容量,看个人需求修改大小,建议至少 1GB。
保存后会回到虚拟机设置界面,点击左侧最上面的「添加硬件」,选择「网络适配器」,点击「添加」。

hyper-v-lede/21.png

在之前创建虚拟机时我们已经添加了一个虚拟交换机了(比如我添加了「外部网络」),接下来添加另外一个(比如我这时要添加「内部网络」)。如果你之前添加了多个虚拟交换机,也需要一一添加网络适配器并指派给它们。

现在你的虚拟机已经有至少两个网络适配器了,依次点击这些网络适配器上的 + 号,选择「高级功能」,在右侧勾选「启用 MAC 地址欺骗」。

hyper-v-lede/22.png

如果你的软路由需要多拨、以及 LEDE 里面 LAN 口包含多个网卡的,这一步一定不能漏掉!

在左侧最下面找到「自动启动操作」。这一部分管理虚拟机开机是否自动启动。默认选项是「自动启动(如果当服务停止时它仍然运行)」,推荐修改为「始终自动启动此虚拟机」。

所有操作完成后,点击「应用」和「确定」以保存虚拟机配置。
然后再次打开虚拟交换机管理器,将刚才设置的「外部网络」虚拟交换机的「允许管理操作系统共享此网络适配器」勾选去除,点击「应用」。

hyper-v-lede/23.png

接下来你的网络会立刻失去连接。因为共享网络适配器的时候外部流量直接进入虚拟机和宿主机,而停止共享以后流量就不会直接进入宿主机了。点击「确定」返回到 Hyper-V 管理器,选择刚才创建的虚拟机,点击右侧的「启动」。

hyper-v-lede/24.png

如果无法启动,请检查之前配置虚拟机的时候有没有禁用「启用安全启动」。

虚拟机启动后,点击右侧的「连接」(这个按钮就在右侧最上面)打开虚拟机视屏界面。当屏幕的日志不再滚动以后,敲一下回车,应该会看到如下图所示的 OpenWrt 提示,表明虚拟机已经启动成功。

hyper-v-lede/25.png

设置内部网络

Windows 设置 – 网络和 Internet – 更改适配器选项 进入适配器管理页面,找到名称为「vEthernet(内部网络)」的网络适配器,右键菜单点击「属性」,在新打开的窗口中点选「Internet 协议版本 4(TCP/IPv4)」,然后点击「属性」。

hyper-v-lede/26.png

在新的窗口中设置以下属性:

  • IP 地址:192.168.1.2
  • 子网掩码:255.255.255.0
  • 默认网关:192.168.1.1
  • 首选 DNS 服务器:192.168.1.1

hyper-v-lede/27.png

点击「确定」保存所有设置。接着打开浏览器,并在地址栏中输入 192.168.1.1 以打开 KoolShare LEDE 管理页面,默认密码是 koolshare

设置 LEDE 的 LAN

依次点击侧边栏的「网络 – 接口」。

hyper-v-lede/28.png

你可以看到默认创建了三个接口,一个绿色的「LAN」一个红色的「WAN」和一个红色的「WAN6」。删除红色的「WAN6」。

hyper-v-lede/29.png

在绿色的 LAN 接口,点击右侧的「编辑」。

hyper-v-lede/30.png

在编辑页面选择「物理设置」选项卡,你可以看到「接口」部分中勾选了 eth0 eth1 eth2 eth3

hyper-v-lede/31.png

需要注意,这里的 eth0 eth1 eth2 eth3 四个以太网适配器是按照虚拟机设置中,网络适配器添加的顺序排序的。

hyper-v-lede/32.png

比如我之前是在创建虚拟机时先添加了「外部网络」,之后再在虚拟机设置里添加了「内部网络」,那么 eth0 就是外部网络,eth1 就是内部网络.

将除了内部网络对应的 eth 以外的全部取消勾选(比如我就应该只勾选 eth1),然后点击下方的「保存并应用」,稍后页面将会自动跳转。

一般 LEDE 的设置在 5s 内会保存并跳转,如果 30s 内都没有反应,就认为配置有误、导致路由器失联了,于是就会自动回滚配置以便让你重新连接。如果你之前勾选错了 eth,这时你就有机会再试一次。
自动回滚配置无疑是一项很有用的功能,但是有的时候也会添乱。接下来我就会讲到。

设置 LEDE 所在的网段

由于这个版本的 LEDE 在编译时就指定了 192.168.1.1 (所以我们之前修改 TCP/IPv4 的 IP 以连上虚拟机),但是 192.168.1.0/24 有的时候会和我们的内网别的网段就会冲突,这时就有必要修改软路由所在的网段。如果你没有这个需求,这一部分可以略过不看。

回到适配器管理页面,重新修改「vEthernet(内部网络)」的「Internet 协议版本 4(TCP/IPv4)」属性为我们需要的网段,比如我就分配了 192.168.200.0/24 给我的软路由。

hyper-v-lede/33.png

这一步不要点击「确定」保存。然后回到浏览器,编辑 LAN 口的设置,在「基本设置」选项卡中的「IPv4」地址设置为对应的地址。

hyper-v-lede/34.png

接下来的操作务必快速进行,要在 30s 内、LEDE 判定配置有误、自动回滚配置之前完成。

首先点击页脚的「保存并应用」;然后回到「vEthernet(内部网络)」的属性,保存配置;回到浏览器,输入你为软路由新设置的 IPv4 地址(比如我的是 192.168.200.1),这时页面会提示「配置已应用」,说明修改成功。继续登陆,完成接下来的配置。

设置 LEDE 的 WAN

依次点击侧边栏的「网络 – 接口」,选择红色的「WAN」右侧的「编辑」。「协议」根据你上网的方式决定——如果是连接上游的路由器可以选择「静态地址」或「DHCP」,如果是直接插网线拨号就选「PPPoE」。
然后在「物理设置」的选项卡中设置「接口」。不知道应该勾选哪个?这说明你应该回去看之前的内容了。

全部完成后,点击「保存并应用」,将会返回到概览页面。如果你的外部网络设置正确,此时你的电脑应当已经正确连上网络了。

修改管理后台密码

依次点击侧边栏的「系统 - 管理权」设置新的后台密码。
你也可以在这里设置 LEDE 的 SSH 连接。

Koolshare 软件中心

Koolshare 独树一帜的软件中心是我们选用 Koolshare LEDE 作为我们软路由的原因之一。所以我们需要进入软件中心下载一波插件。

点击侧边栏的「酷软」。首次进入时可能会提示软件中心升级,点击「火速升级」就是了。升级完以后回到软件中心,开始安装插件。

推荐几个插件:

  • 路由监控:基于 Netdata 开发的仪表盘,可以通过互动式 Web 仪表盘实时监测路由器性能数据。
  • BBR MOD:为软路由启用 BBR 加速。
  • NAT 硬件加速:4.14 内核上通过绕过一些对 AFAIK 流量的内核处理的数据包快速转发方案,无 QoS 需求的建议日常开启。
  • KMS:架设一个 KMS 激活服务器。
  • ShellnaBox:一个 SSH 网页客户端,比较实用。

Koolshare 软件中心里还有不少对上网体验很有帮助的插件,自己下载安装自己体会,嘿嘿。

本文作者 : Sukka
本文采用 CC BY-NC-SA 4.0 许可协议。转载和引用时请注意遵守协议!
本文链接 : https://blog.skk.moe/post/hyper-v-win10-lede/

本文最后更新于 天前,文中所描述的信息可能已发生改变