🔨 Hyper-V 安装配置及网页兼容测试
安装 Hyper-V
- Control Panel\Programs -> Turn Windows Features on or off -> Hyper-V 里面各项全勾选
- 重启系统
- 多出一项 Hyper-V Manager, 搞定
Hyper-V 安装问题
- 安装前可以 cmd 执行
systeminfo
命令, 需要保证最后一项 Hyper-V 的子项(三项)都是 Yes - Turn Windows Features on or off -> Hyper-V 这里如果不能勾选, 说明硬件不支持
- Turn Windows Features on or off -> Hyper-V 如果只有其中的 Hyper-V Hypervisor 不能勾选, 需要进入 BIOS, 将与 CPU 虚拟技术(Visualization)的某个项(根据电脑不同而不同)设置为
Enable
虚拟机(Windows)安装
- 首先到 Download virtual machines 下载 HyperV(Windows) 版的虚拟机
- 解压下载下来的虚拟机 zip 压缩包
- 打开 Hyper-V Manager, 并在 Actions 栏下, 通过 Import Virtual Machine… 项选择解压后的虚拟机文件夹
- 安装完成后, 点击 Start 即可启动, 点击启动的虚拟机缩略图可进入系统
安装的 Windows 虚拟机可以通过调节分辨率以适应当前屏幕的大小(虚拟机内的系统屏幕可能会比较小).
网络配置
- 创建 Virtual Switch
- 选择 External 创建: Actions -> Virtual Switch Manager… -> 选择 External -> Create Virtual Switch
- 选择有线驱动: 下面的 External network 有两种选择方式, 一种是选择无线网卡的驱动, 一种是选择有线网卡的驱动, 例如, 无线驱动 Intel(R) Dual Band Wireless-AC 3160 和有线驱动 Realtek PCIe GBE Family Controller. 主机链接 wifi 情况下, 选择无线驱动, 在虚拟机中无需配置即可链接外网; 主机网线连网情况下, 需要将稍后配置 IP.
- 确认
- 为虚拟机选择以上配置的网络: 安装的虚拟机栏 Settings… -> Network Adapter -> Virtual Switch 下选择刚才新建的项
- 虚拟机 IP 配置: 将虚拟机内的 Windows 配置和主机相同的网段, 举例, 主机和虚拟机 IP 配置分别如下
- 主机: (IP address: 192.168.100.251, Subnet mask: 255.255.255.0, Default gateway: 192.168.100.1, Prefered DNS server: 114.114.114.114)
- 虚拟机: ((IP address: 192.168.100.252, Subnet mask: 255.255.255.0, Default gateway: 192.168.100.1, Prefered DNS server: 114.114.114.114))
- 关闭防火墙: 完成第三步后已经可以连接外网, 为了让虚拟机和主机互相 ping 通, 需要关闭虚拟机和主机的防火墙. 主机 ping 虚拟机:
ping 192.168.100.252
, 虚拟机 ping 主机:ping 192.168.100.251
总结: 以 External 方式选择有线网卡创建 Virtual Switch, 然后将虚拟机 IP 配置成和主机相同网段, 然后关闭防火墙.
虚拟机内访问主机发布网站
通过网络配置, 虚拟机内可以通过主机的 ip 访问主机本地发布的网站.
- 例如主机本地发布网站访问方式为: http://127.0.0.1:8080
- 虚拟机内访问主机发布的网站: http://192.168.100.251:8080 (http://主机IP:8080)
如果数据库不在本地, 之前使用的代理(nodejs http-proxy)是在主机上的, 那么, 当前的一个方案如下:
- 主机发布网站绑定 http://192.168.100.251:8080
-
虚拟机内用 nodejs http 新建代理
var httpProxy = require('http-proxy') // 创建反向代理服务器 var proxyOptions = { router: { 'localhost/xxx-website/':'192.168.100.251:8080', 'localhost/': '服务器域名orIP' } }; var proxyServer = httpProxy.createServer(proxyOptions) proxyServer.listen(80, function(err){ console.log('local anti-proxy server listening on port 80'); });
- 虚拟机内浏览器访问 localhost/xxx-website/
其他
(1) 主机共享文件夹
文本复制粘贴可用通过虚拟机顶部的 Clipboard 实现. 主机和虚拟机之间的文件共享可以参考Win7如何分享局域网并设置共享文件夹账户和密码.
(2) IP 脚本设置
微软提供的虚拟机包使用有时限, 并且测试的时候通常是多个虚拟机, 手动设置 IP 显得麻烦, 可用脚本自动设置(管理员执行脚本).
REM refer: http://www.howtogeek.com/103190/change-your-ip-address-from-the-command-prompt/
REM netsh interface ipv4 set address name="YOUR INTERFACE NAME" static IP_ADDRESS SUBNET_MASK GATEWAY
REM netsh interface ipv4 set dns name="YOUR INTERFACE NAME" static DNS_SERVER
netsh interface ipv4 set address name="Local Area Connection" static 192.168.100.252 255.255.255.0 192.168.100.1
netsh interface ipv4 set dns name="Local Area Connection" static 114.114.114.114