本教程详细说明如何在Windows10下经由Hyper-V技术安装OpenWRT软路由。物理机器配置如下:

  • Intel Celeron J1900
  • 4GB DDR3
  • 4口千兆网卡 淘宝上这种配置的机器遍地都是,J1900对付软路由绰绰有余了,其实跑Win10浏览网页也不在话下~ 施工结果如下图: Win10_OpenWRT.JPG

I. Hyper-V虚拟交换机配置

安装前请确保你的 CPU 支持硬件虚拟化(Hyper-V)技术并且已通过BIOS启用

启用Windows的Hyper-V功能

  1. 进入“控制面板”,然后依次点击 程序 – 程序和功能
  2. 点击「启用或关闭 Windows 功能」,打开 Windows 功能管理窗口,并勾选「Hyper-V」,点击“确定” win10_enable_hyperv.JPG

配置虚拟交换机

打开开始菜单,搜索或找到“Hyper-V管理器”,点击右侧栏里的“虚拟交换机管理器”链接。本人的物理机器有4个网口,配置的目标是网口1连入互联网,网口2网口3网口4连入下属设备。 我们首先创建用于外部网络的虚拟交换机,这个交换机相当于你路由器的 WAN 接口,用于将路由器连接到外部网络: win10_hyperv_virtual_switch.JPG

  1. 点击“新建虚拟网络交换机”;
  2. 右侧给他起个名字,我是叫它ToExternal,或者随便叫什么“外部网络”也都行;
  3. 下面的“连接类型”选中“外部网络”,然后选择你的物理网口1对应的设备名称。注意这里需要勾选“允许管理操作系统共享此网络适配器”
  4. 点击“应用” 而后需要增加一个内部网络适配器,是用于给虚拟化宿主机提供来自软路由的网络的。 win10_hyperv_vswitch_internal.JPG

接下来给余下的准备做路由器LAN口的网口2网口3网口4创建虚拟交换机。这边千万注意,选择“外部网络”并选定对应的物理网口后,不要勾选“允许管理操作系统共享此网络适配器”。这些网口,可以命名为LAN1, LAN2, LAN3之类。

创建OpenWRT虚拟机

虚拟机配置

首先需要找一个x86_64的OpenWRT固件,这个网上多半可以搜索到。如果实在有点懒,可以找这里或者这里或者这里。请注意,部分固件是需要转换成Hyper-V能够识别的格式的,自行搜索下载“StarWind V2V Image Converter”这个软件转换成VHDX格式即可。

下载完成后

  1. 打开 Hyper-V 管理器,点击「新建」-「虚拟机」,将会打开一个新的窗口。虚拟机的名称可以随意设置。
  2. 第二步会让选择虚拟机的代数,如果你下载的是uefi固件(一般名称里有uefi或gpt字样),可以选择第二代;否则谨慎起见选择第一代;
  3. 分配内存,个人分配了512MB固定内存,并开启动态内存允许分配到1GB。一般认为512M差不多了,甚至有说256都行了;
  4. 为虚拟机分配第一个网络适配器,选择之前创建的「内部网络」;这一步其实是向虚拟机增加了第一个网口,openwrt底下它会被默认分配为eth0;
  5. 为虚拟机创建硬盘,需要选择之前下载或者转换好的 OpenWRT 硬盘映像;

完成初始化后,先不开机,点选右侧栏里的“设置”继续配置这个虚拟机:

  1. 点选“添加硬件”——网络适配器,将之前添加的所有外部网口依次加入,这边规定一下顺序,首先是那个通往外部互联网的网口1对应的,其次是剩下三个打算做LAN口的;注意这边添加网口的顺序影响到OpenWRT里eth的序号,按照这样设计,eth1对应的是我们接入互联网的WAN口,eth2-4对应的是未来的LAN口; win10_hyperv_openwrt_new_nic.JPG
  2. 如上图,点击所有添加的网口签名的“+”号——高级功能:勾选“启用MAC地址欺骗”。不开启此功能将导致之后软路由下的设备无法上网win0.JPG

随后扩展硬盘

  1. 点击「IDE 控制器」下的「硬盘驱动器」,找到我们添加的 OpenWRT 虚拟硬盘,然后点击「编辑」;
  2. 在新的窗口中选择「扩展」,然后设置新的硬盘容量,推荐至少1GB tempsnip.jpg

至此OpenWRT的配置基本告一段落,选择右侧栏里的“启动”即可启动虚拟机。启动后点击右侧栏的“连接”按钮可以进入虚拟机的shell,正常情况下进入虚拟机按下回车按钮,应该有OpenWRT图样。 注意:OpenWRT默认的接入地址为192.168.1.1,如果光猫的路由器也是相同地址的话,会引起一些问题。这两者里有一个要改掉,OpenWRT这边可以通过修改/etc/config/network里lan口的内容实现(图中更改到了192.168.99.1): openwrt_change_lan_ip.jpg

上图修改完之后,使用/etc/init.d/network restart命令可以重启网络服务。

内部网络配置

打开网络适配器设置,经由以下两种途径之一:

  • 依次点击 开始菜单 – 设置 – 网络和 Internet – 更改适配器选项;或,
  • 打开「网络和共享中心」,点击「更改适配器设置」

找到名称为「vEthernet(内部网络)」的网络适配器(这边的“内部网路”是刚才给那个内部网路起的名字,比如我的叫Internal),然后点击「更改此连接的设置」以打开设置页面。 点选「Internet 协议版本 4(TCP/IPv4)」,然后点击「属性」,然后按照下图配置: win10_internal_v_net.JPG

请注意,这边192.168.X.1, 192.168.X.2X取决于刚才说的OpenWRT的内部IP地址。如果默认是192.168.1.???, 如果像我改过的话那就是192.168.99.???.

点击「确定」保存所有设置。

OpenWRT配置

完成之前的步骤后,打开浏览器,并在地址栏中输入 192.168.1.1 (我是192.168.99.1)以打开 OpenWRT 管理页面. 默认的管理后台密码是:koolshare

  1. 依次点击侧边栏的 网络 – 接口;
  2. 你可以看到一个绿色的网络接口名称为「br-lan」。如果有两个多余的红色 WAN 和 WAN6 接口,请点击「删除」来删除它们;
  3. 修改LAN接口:在绿色的 br-lan 接口上点击「修改」,在新的页面中点击「物理设置」,然后将「接口」部分中选中eth0, eth2, eth3, eth4.如上文所述,这四个分别对应我们的内部网路、网口2,3,4。设置完成后点击下方的「保存并应用」,稍后页面将会自动跳转; openwrt-brlan.JPG
  4. 创建WAN接口:返回到接口管理页面后,点击「添加新接口」在新的页面中,为此接口名称设置为 WAN 或者你喜欢的名称,然后根据你的实际情况选择接口协议,如 PPPoE 或 DHCP 客户端。在「包括以下接口」部分勾选 eth1。 openwrt-wan.JPG 完成后点击「保存并应用」,进入详细设置。在「基本设置」中配合你的外部网络连接方式,如输入你的 PPPoE 账号等。我这边直接是宽带光猫拨号,所以很简单的用了“DHCP客户端”。然后点击「防火墙设置」,将新的接口防火墙区域设置为 WAN。WAN 区域使用红色作为标志。 openwrt-wan-firewall.JPG 全部完成后,点击「保存并应用」,将会返回到概览页面。正常情况下,能够连接互联网了: openwrt-interfaces.JPG

修改后台密码

维持默认的后台密码比较危险,可以用依次点击 系统 – 管理权,在“主机密码”里更换密码。

OpenClash安装

呵呵,其实这里是噱头。真正的安装步骤在https://github.com/vernesong/OpenClash 项目的README已经说的很清楚啦。下载地址在图中的"Release"底下也有。由于本网站的是“对大陆访客友好”的带有ICP备案的页面,所以这边只授人以渔。 openclash-install.JPG 下载其实可以直接在OpenWRT的命令行下面用wget命令操作,比如

wget https://github.com/vernesong/OpenClash/releases/download/v0.37.2-beta/luci-app-openclash_0.37.2-beta_all.ipk

随后使用opkg install luci-app-openclash_0.37.2-beta_all.ipk安装。如果有不懂的话,下面参考链接5里也有介绍。

参考

  1. 如何通过 Hyper-V 部署 OpenWRT 软路由
  2. openwrt下如何修改默认ip地址
  3. Hyper-V 部署LEDE X64固件全教程
  4. 利用win10自带虚拟机hyper-v搭建软路由教程
  5. 合理的家庭网关方案 OpenClash, 并使用 SmartDNS 加速