本文介绍了在Windows 10/11专业版上,利用Hyper-V虚拟机运行Ubuntu 20.04系统时,如何实现虚拟机固定IP、内外网络连通及访问外网。具体步骤包括创建NAT交换机、设置固定IP,以及配置虚拟机网络适配器和内部网络设置。这些操作使虚拟机在宿主机上网时能够独立连接外网,实现文件传输等服务。
学习场景:
学习苍穹,用到苍穹虚拟机(我用的是cosmic-pg),用到 hyper-v 虚拟机
知识背景:
你得知道 hyper-v 是什么,以及 hyper-v 的基础用法。
本文涉及的宿主机是windows10/11专业版,虚拟器是宿主系统自带的 Hyper-V,虚拟机是 Ubuntu20.04
必要提示:
1,hyper-v下,默认的三种网络连接方式都无法实现“固定IP+内外连通+外网访问”,这也是hyper-v要改进的地方。
2,hyper-v下,内外传文件不太容易,“内外连通”后可以方便传文件(比如通过SMB协议等)。
3,cosmic-pg 虚拟机内的苍穹及星瀚的使用,需要虚拟机本身可以访问外网,否则不能用。
具体方法:
第一步:利用windows系统建立NAT交换机。(如果不理解就照做,具体解释太多,略过)
以管理员身份启动PowerShell ,执行下列命令
# 创建虚拟交换机:
New-VMSwitch -SwitchName "NAT" -SwitchType Internal
# 获取虚拟交换机的ifindex,并赋值到变量中:
$ifindex = Get-NetAdapter -Name "vEthernet (NAT)" | Select-Object -ExpandProperty 'ifIndex'
# 在虚拟交换机上设置固定IP,用于网关IP:
New-NetIPAddress -IPAddress 192.168.56.254 -PrefixLength 24 -InterfaceIndex $ifindex
# 创建nat网络:
New-NetNat -Name NAT -InternalIPInterfaceAddressPrefix 192.168.56.0/24
至此,你的windows宿主机内会建立一个名为 NAT 的虚拟网卡,并且被设置了固定IP。
(如果你懂,上面内容任意按需调整;如果不懂就别动,照做。)
第二步:Hyper-V虚拟器下,虚拟机的“网络适配器”选择 NAT
第三步:Hyper-V 下的虚拟机内,设置固定IP
#以root用户login系统
#进入配置文件夹:
cd /etc/netplan
#修改配置文件:
vim 00-installer-config.yaml
#改成下图这样:(下图内容,在不同版本的Linux系统下,路径和内容均不同,需理解原理)
#重启虚拟机即可。
至此:
1,虚拟机固定IP:192.168.56.8 宿主机固定交换IP:192.168.56.254
2,内外可以互ping(继而可以建立服务,传递文件)
3,虚拟机可以自主连接外网。
4,以上三个特性,不会受到宿主机的外部网络环境的影响,只要宿主机可以上网即可。
(以上知识,如有不妥或需要详细交流,可以回帖留言,我适时回复。)
(我本人对Linux不是太懂,但理解基础知识,理解nat/net原理,上述内容经过验证)
(VBox下,达到上述目标更简单,另贴再分享)
(我不用VMware,因为我没买,而且我拒绝盗版)
姊妹篇:VirtualBox 虚拟机,固定IP+内外连通+外网访问 (kingdee.com)