前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Hyper-v虚拟机连接外网方案

Hyper-v虚拟机连接外网方案

原创
作者头像
yaxin
发布于 2019-08-09 07:31:06
发布于 2019-08-09 07:31:06
12.4K1
举报
文章被收录于专栏:DevOps BoyDevOps Boy

hyper-v作为windows10原生支持的虚拟机,安装使用起来是很方便的,但是它最大的问题就是网络不够傻瓜化,不像vmware提供了桥接、NAT、hostonly等多样的组网需求,hyper-v只提供了虚拟交换机这一种网络设备。如果想要虚拟机上外网,hyper-v提供了一种Internet连接共享的方案来实现(网上大部分教程都是使用这一方式)。而这个方案依赖ICS(Internet Connection Sharing)服务的支持,一旦改服务被禁用,那这个方式也将变得不可用,而很不幸的是,因为安全问题,我电脑的ICS服务被禁用了。

因此我们必须通过其它方式来解决上网问题,而我们首先需要弄懂hyper-v中的虚拟交换机可以提供什么能力,然后在此能力基础上需要增加什么能力。

0x01 虚拟网络交换机分类

hyper-v的虚拟交换机分为三类,分别是:

  1. 内部虚拟交换机:类似一台交换机,所有接入该交换机的虚拟机网络互通,但是其下的虚拟机无法访问外网;
  2. 外部虚拟交换机:内部虚拟交换机绑定到物理网卡上,变成一个拥有NAT能力的路由器,但是改能力依赖ICS服务;
  3. 专用虚拟交换机:内部虚拟交换机,但是不可以绑定物理网卡;

我们常用的交换机类型是前两个,其区别就在于是否绑定了物理网卡。其网络架构类似于上图。

0x02 解决方案

一、绑定物理网卡方法

这个我们开头就说了,hyper-v原生支持,但是需要ICS服务的支持,一旦ICS服务被禁用或关闭,那这个方法就无法使用了。

二、创建NAT服务方法

从图中看,我们已经拥有了一个同一网段(10.1.1.0/24)的互通网络,如果想要虚拟机3上网,那就需要一个将数据包从虚拟交换机转发到物理网卡的能力,并且由于我们的内部交换机网段与物理网卡的网段不同,因此该服务还需要有网址转换的能力。这就不禁让我们想起了NAT技术。

Google一下发现Windows10原生支持创建NAT服务,即powershell的New-NetNat命令(https://docs.microsoft.com/en-us/powershell/module/netnat/new-netnat?view=win10-ps(

https://docs.microsoft.com/en-us/powershell/module/netnat/new-netnat?view=win10-ps))

代码语言:txt
AI代码解释
复制
New-NetNat -Name HyperVNat -InternalIPInterfaceAddressPrefix 10.1.1.0/24
  • Name:该参数为该Nat指定一个名称
  • InternalIPInterfaceAddressPrefix: 该参数指定要进行Nat服务的内部网段

创建Nat服务后,内部交换机下的所有虚拟机均可正常访问外网。

聪明的你可能发现了,这个方法类似Linux下Docker container上网,只不过New-NetNat变成了iptables。其实这两种方法没有本质上的区别,都是通过添加Nat服务来实现内部隔离网络的上网。

三、创建http/socks代理方法

上面添加NAT服务方法已经足够简单(仅需一条命令),但如果你还想尝试一下其它的方法的话,可以试一下在主机搭建一个http/socks代理的方法,原理如下图:

在本机搭建一个监听内部虚拟交换机的HTTP代理服务(clash、HAProxy),如图中监听8080端口,然后在系统中设置http代理为10.1.1.1:8080,例如在命令行下可以设置:

代码语言:txt
AI代码解释
复制
# linux
export http_proxy=http://10.1.1.1:8080
export https_proxy=http://10.1.1.1:8080
# windows
set http_proxy=http://10.1.1.1:8080
set https_proxy=http://10.1.1.1:8080

但是缺陷是虚拟机本身是无法上网的,它依靠的只是主机中代理服务的转发,因此一些dns解析等能力它是缺失的。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
1 条评论
热度
最新
感谢
感谢
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
Hyper-V虚拟机在wifi环境下的外网连接配置
虚拟交换机管理器是Hyper-V虚拟机中一个重要的网络管理工具,它用于管理和配置虚拟机之间的网络连接。虚拟交换机管理器允许我们创建、配置和管理虚拟交换机,以便进行虚拟机之间的通信和网络连接。
九仞山
2023/10/14
2.7K0
Hyper-V虚拟机在wifi环境下的外网连接配置
Windows 11 启用 Hyper-V 之后网络上传速度异常慢解决方案
最近在开发用的台式机上启用了 Windows 的 Hyper-V 虚拟化功能,利用虚拟机运行了一台 Windows Server 2022 和 一台 Ubuntu Server,为了方便别的机器直接访问这两台虚拟机,所以网络采用了外部网络桥接的模式,让虚拟机和物理机保持在了同一网段。
乌拉栋
2023/05/03
3K2
Windows 11 启用 Hyper-V 之后网络上传速度异常慢解决方案
【Windows】基于Hyper-V安装Ubuntu虚拟机
Hyper-V 是一种由 Microsoft 开发的虚拟化技术和虚拟化平台。它是 Windows 操作系统的一部分,并提供了在主机操作系统上运行多个虚拟机的能力。
DevFrank
2024/07/24
3910
【Windows】基于Hyper-V安装Ubuntu虚拟机
安装Hyper-V创建虚拟机
使用提升的用户权限打开 Windows PowerShell 会话。为此,请单击 Windows开始按钮并键入PowerShell。右键单击PowerShell,然后单击以管理员身份运行。
闲花手札
2023/10/17
5580
安装Hyper-V创建虚拟机
Hyper-v 设置静态IP 搭建集群
最近想在本机WIN11上创建几个Centos用于做几个试验,之前一直用VMWare,需要安装额外的软件,正好win自带虚拟机功能,只需要在功能中安装Hyper-v就可以使用。
鱼找水需要时间
2023/10/14
6060
Hyper-v 设置静态IP 搭建集群
Windows 11 解析Hyper-V 虚拟机机器名为 IPv4 地址方案
有很多场景会遇到这个问题,例如我在windows的虚拟机里跑个代理服务,然后想在宿主机的浏览器里通过pac脚本访问这个代理服务,这时候使用虚拟机机器名+端口如果可以直接访问到虚拟机的服务,那是最好的了。
骑猪耍太极
2024/11/05
3000
Windows 11  解析Hyper-V 虚拟机机器名为 IPv4 地址方案
Hyper-v 安装CentOS 7 (其他虚拟机一样参考)
平台之大势何人能挡? 带着你的Net飞奔吧!http://www.cnblogs.com/dunitian/p/4822808.html
旺财的城堡
2018/11/20
9030
Hyper-V性能加速之VMQ
在介绍VMQ之前,我们先来看看在传统的物理服务器上,网卡是如何接收网络数据的。在多核CPU出现的时候,因为网卡不支持将网络流量中断到多个逻辑核而是中断到其中一个逻辑核进行处理,这样就造成CPU使用不平均以及降低了CPU处理网络流量的效率,如图1所示。
盆盆
2019/04/24
2.9K0
Hyper-V性能加速之VMQ
虚拟机上网的三种方式
很多人安装虚拟机的时候,经常遇到不能上网的问题,而vmware有三种网络模式,对初学者来说也比较眼花聊乱,今天我就来基于虚拟机3种网络模式,帮大家普及下虚拟机上网的背景知识。(博文原创自http://www.cnblogs.com/ggjucheng/archive/2012/08/19/2646007.html)
全栈程序员站长
2022/08/31
2.1K0
Hyper-V虚拟机安装Linux
Window 10系统自带了Hyper-V虚拟机,不需要再额外安装虚拟机,Linux服务器一般用都安装CentOS系统,可以到这里下载:https://download.csdn.net/download/zjhcxdj/11559319。
芥末鱿鱼
2022/05/05
2.2K0
Hyper-V虚拟机安装Linux
Windows10 下利用Hyper-V安装CentOS系统
开启Windows10的Hyper-v功能(需要重启电脑) 控制面板→程序→启用或关闭Windows功能→打开Hyper-v→确定 创建虚拟机 在Windows管理工具中找到Hyper-v管理器并双击 连接本地服务器,然后创建虚拟机 输入虚拟机名称→将虚拟机存储在其他位置→选择位置→下一步→选择第一代(兼容性好点)→启动内存→下一步→下一步→ 虚拟硬盘设置→下一步→选择事先下载好的镜像文件→下一步→完成 安装系统 启动刚刚创建的虚拟机然后选择安装系统 按照系统指引对系统进行设置,为系统创建用户,
lin_zone
2019/07/04
3K0
虚拟机连网(多台虚拟机互联、虚拟机与真机互联、虚拟机上网)
一)VMware中提供了三种网络连接方式,VirtualBox中提供4种网络连接方式。 NAT:  网络地址转换模式(Network Address Translation) Bridged Adapter :   桥接模式 Internal:   内部网络模式 Host-only Adapter :  主机模式 (VMware中少了Internal模式)
全栈程序员站长
2022/08/30
7.4K0
虚拟机连网(多台虚拟机互联、虚拟机与真机互联、虚拟机上网)
理解Vmware虚拟机的网络模式
命名方式VMnet0,VMnet1,VMnet......以此类推,默认情况下在vm里面已经有一些映射如下:
我是攻城师
2018/05/16
2K4
Hyper-V:无法打开虚拟机XXX,因为虚拟机监控程序未运行
异常处理汇总-服务器系列:http://www.cnblogs.com/dunitian/p/4522983.html 异常处理汇总-开发工具 http://www.cnblogs.com/dunitian/p/4522988.html 今天愚人节,是不是哪个动我电脑的?囧,虽然我好久没碰PC了,但是上次记得是好好的啊。。。。晕,好吧,简单记录一下我解决步骤和方法 错误信息: 无法打开虚拟机XXX,因为虚拟机监控程序未运行 无法安装hyoer-v该固件中的虚拟化支持被禁用 1.未运行(点开详细可以看见微软
逸鹏
2018/04/11
6.9K0
Hyper-V:无法打开虚拟机XXX,因为虚拟机监控程序未运行
Windows: 使用PowerShell管理Hyper-V虚拟机
Hyper-V是Windows操作系统中强大的虚拟化平台,通过Hyper-V,用户可以创建和管理虚拟机(VM)。作为计算机专业人士,我们可能更倾向于使用命令行工具来高效地管理系统。在Windows上,PowerShell是一个功能强大的命令行工具,可以用来管理Hyper-V虚拟机。本文将详细介绍如何使用PowerShell管理Hyper-V虚拟机,包括创建、配置、启动和监控虚拟机。
运维开发王义杰
2024/06/14
5080
Windows: 使用PowerShell管理Hyper-V虚拟机
VMware虚拟机没有网络
其中:桥接、NAT能够满足虚拟机连接外网的需求,而仅主机模式则不能连接外网,但是能实现与物理机之间的通信。
wsuo
2020/07/30
3.5K0
使用Hyper-V安装Openwrt
Hyper-v是windows系统自带的一个虚拟机,安装Hyper-v需要进入到程序和功能,添加Hyper-V需要的功能.
团团生活志
2022/08/16
13.6K3
使用Hyper-V安装Openwrt
Hyper-V虚拟化——微软生态的混合云桥梁
Hyper-V是微软推出的硬件虚拟化平台,集成于Windows Server及Windows 10/11专业版中,支持创建和管理虚拟机。Hyper-V采用Type-1 Hypervisor架构,直接运行在物理硬件上,可实现对CPU、内存和设备的深度控制。
一二三走
2025/02/06
1710
Hyper-V导致VmWare无法启动虚拟机的问题
问题原因: 由于Windows 10启用Hyper-V技术后,可以在 Windows 上以虚拟机形式运行多个操作系统。
云叶知秋
2021/12/06
3.2K0
Hyper-V导致VmWare无法启动虚拟机的问题
Hyper-V虚拟机安装和使用
最近在研究人工智能AI模型的相关内容。需要一个稳定可靠的Linux环境来运行数据模型,但是我的电脑操作系统是windows操作系统,一开始我想使用VMware,但是它是收费的,而且安装起来也比较麻烦,后来我发现微软的Hyper-V虚拟机非常方便,关键是免费的。所以选择使用Hyper-V,在这里记录下Hyper-V虚拟机的安装和使用过程。通过分享我的经验,希望能够对其他人在使用Hyper-V虚拟机时提供帮助和指导。
九仞山
2023/10/14
3.7K0
Hyper-V虚拟机安装和使用
相关推荐
Hyper-V虚拟机在wifi环境下的外网连接配置
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档