Hyper-V 部署 OpenWRT 软路由
概述
Hyper-V 是 Windows 10 专业版及更高级版本和所有 Windows Server 自带的裸金属虚拟化。在启用 Hyper-V 虚拟化功能后,管理操作系统本质上成为了一个运行在 Hyper-V 上的特殊虚拟机,因此某些软件将可能拒绝在开启了 Hyper-V 功能的计算机上运行。
通过 Hyper-V,我们可以很方便地在个人电脑上直接虚拟软路由系统,从而实现全局代理,且对本机软件无感知。
使用 Hyper-V 可能影响你的计算机正常使用
主流支持
GeckoRelay 目前提供对此虚拟化的主流支持
安装前检查
要使用 Hyper-V,首先必须确保你的 CPU 支持硬件虚拟化技术。这项技术在 Intel 平台被称之为VT-x
;在 AMD 平台被称之为AMD-V
。
此外,为了达成最佳性能,建议同时打开 I/O 设备虚拟化技术。这项技术在 Intel 被称之为VT-d
;在 AMD 平台被称之为AMD-Vi
。
如果你的 CPU 不支持硬件虚拟化技术,则不能使用 Hyper-V。
系统环境
在此文章撰写时...
Windows 10 Pro 1709 64位
Hyper-V Hypervisor
启用 Hyper-V
在最新版的 Windows 10 1709 系统中,依次点击 开始菜单 – 设置 – 应用 – 程序和功能打开控制面板。
你也可以直接打开「控制面板」,然后依次点击 程序 – 程序和功能。
点击「启用或关闭 Windows 功能」,打开 Windows 功能管理窗口,并勾选「Hyper-V」。
点击「确定」,Windows 会自动开启 Hyper-V 功能并要求重启计算机。
配置 Hyper-V
重新启动计算机后,通过任务栏的「搜索」功能搜索 Hyper-V 管理器。
你可以将 Hyper-V 管理器固定在任务乱或开始菜单以方便下次使用。
打开 Hyper-V 管理器后,点击「虚拟交换机管理器」
Hyper-V 会打开新的窗口以显示虚拟交换器管理器,在新的窗口中点击「创建虚拟交换机」,在类型中选择「外部网络」。
我们首先创建用于外部网络的虚拟交换机,这个交换机相当于你路由器的WAN
接口,用于将路由器连接到外部网络。
在名称中输入「外部网络」(或其他你喜欢的名称),将虚拟交换机设置为「外部网络」连接类型,并在下方的菜单中选择你目前用于连接到外部网络的网络设备,这可能是有线网卡或无线网卡。
由于我们目前尚未完成所有工作,因此先将这个外部虚拟交换机设置为「允许管理操作系统共享此网络适配器」。
WARNING
使用无线网卡会存在性能问题
之后,我们继续创建第二个虚拟交换机,类型选择「内部网络」。
这个虚拟交换机是用于给虚拟化宿主机提供来自软路由的网络的,因此类型只需要选择「内部网络」。
如果你不需要将这个软路由作为一个真正的路由器使用,那么目前关于虚拟交换机的工作就已经完成了。如果你需要将这个软路由的网络提供给其他设备,并且有多个物理网卡,只需要按照之前的步骤,为每个物理网卡添加一个类型为「外部网络」的虚拟交换机,但需要将「允许管理操作系统共享此网络适配器」取消勾选。
WARNING
使用 VLAN / VXLAN 以在一个物理网卡上实现单臂路由的方法不在本文档的覆盖范围内。
创建 OpenWRT 虚拟机
首先你需要下载适用于 Hyper-V 的 OpenWRT 硬盘映像。目前 Koolshare 提供的是 RAW 格式的硬盘映像,因此你需要使用工具来进行转换。不过,GeckoRelay 提供了一些已经转换过的映像可以直接被使用。
下载完成后,打开 Hyper-V 管理器,点击「新建」-「虚拟机」,将会打开一个新的窗口。
虚拟机的名称可以随意设置。
选择虚拟机技术世代,必须选择「第一代」
为虚拟机分配内存,推荐至少 256MB,并去除「为此虚拟机使用动态内存」的勾选。
为虚拟机分配第一个网络适配器,选择之前创建的「内部网络」。
为虚拟机创建硬盘,我们无需为 OpenWRT 创建硬盘,只需要选择之前下载的 OpenWRT 硬盘映像即可。
完成虚拟机创建后,点击右侧的「设置」
首先需要为虚拟机添加第二个或更多网络适配器。
将我们之前创建的「外部网络」指派给新的网络适配器。如果你添加了多个虚拟交换机,则需要一一添加网络适配器并指派给它们。
依次点击网络适配器上的+
号,选择「高级功能」,勾选「启用 MAC 地址欺骗」。
WARNING
不开启此功能将导致之后软路由下的设备无法上网
然后,点击「IDE 控制器」下的「硬盘驱动器」,找到我们添加的 OpenWRT 虚拟硬盘,然后点击「编辑」。
在新的窗口中选择「扩展」。
为硬盘设置新的容量,推荐至少 1GB。
所有操作完成后,点击保存,然后再次打开虚拟交换机管理器,将刚才设置的「外部网络」虚拟交换机的「允许管理操作系统共享此网络适配器」勾选去除。
WARNING
这将会导致宿主机立即失去网络连接
请确保已经保存所有所需操作,并确保本文档的所有内容和图片已经加载完毕。
保存对虚拟交换机所作出的更改,返回到 Hyper-V 管理器。
选择刚才创建的 OpenWRT 虚拟机,点击右侧的「启动」。
虚拟机启动后,点击右侧跑的「连接」打开虚拟机视屏界面,当出现类似图中的信息时表明 OpenWRT 虚拟机已经成功启动。
设置内部网络
打开适配器管理页面,要打开此页面,你可以使用以下两种方法:
- 依次点击 开始菜单 – 设置 – 网络和 Internet – 更改适配器选项
- 打开「网络和共享中心」,点击「更改适配器设置」
找到名称为「vEthernet(内部网络)」的网络适配器,然后点击「更改此连接的设置」以打开设置页面。
点选「Internet 协议版本 4(TCP/IPv4)」,然后点击「属性」。
在新的窗口中进行如下设置:
IP 地址:`192.168.1.2`
子网掩码:`255.255.255.0`
默认网关:`192.168.1.1`
首选 DNS 服务器:`192.168.1.1`
点击「确定」保存所有设置。
完成之前的步骤后,打开浏览器,并在地址栏中输入192.168.1.1
以打开 OpenWRT 管理页面。
WARNING
由于 Koolshare OpenWRT 的页面存在一些兼容性问题,建议使用 Google Chrome 浏览器
默认的管理后台密码是:koolshare
如果一切顺利,你应当可以看到类似页面:
恭喜!你已经成功在虚拟机上安装了 OpenWRT 作为软路由!
配置 OpenWRT 的网络
依次点击侧边栏的 网络 – 接口
你可以看到一个绿色的网络接口名称为「br-lan」。如果有两个多余的红色WAN
和WAN6
接口,请点击「删除」来删除它们。
在绿色的br-lan
接口上点击「修改」。
在新的页面中点击「物理设置」,然后将「接口」部分中除eth0
以外的接口全部取消勾选。
设置完成后点击下方的「保存并应用」,稍后页面将会自动跳转。
返回到接口管理页面后,点击「添加新接口」。
在新的页面中,为此接口名称设置为WAN
或者你喜欢的名称,然后根据你的实际情况选择接口协议,如 PPPoE 或 DHCP 客户端。
在「包括以下接口」部分勾选eth1
。
完成后点击「保存并应用」,进入详细设置。
在「基本设置」中配合你的外部网络连接方式,如输入你的 PPPoE 账号等。
然后点击「防火墙设置」,将新的接口防火墙区域设置为WAN
。WAN
区域使用红色作为标志。
全部完成后,点击「保存并应用」,将会返回到概览页面。
如果你的外部网络设置正确,此时应当已正确连上互联网。
修改 OpenWRT 管理后台密码
依次点击 系统 – 管理权。
设置新的后台密码。
确认无误后,点击「保存并应用」。