Hyper-V 安装Linux服务端,后台运行,端口转发

前言

升级到 Windows 10 版本 2004 后,了解到 WSL 2 就是一个虚拟机。Docker for Windows 在2004版本,使用的也是Windows 自带的Hyper-V,我决定删掉 VMware 和 VirtualBox,使用Windows 自带的 Hyper-V。可以看到,Hyper-V 与 PowerShell 高度集成,配置网络环境十分容易理解。并且,Hyper-V 以后台模式运行虚拟机,软件也与系统高度集成。虽然 VMware 和 VirtualBox 也可以后台运行,但是总有一种分裂感。

当然,这种看法的前提是,您得同意 “Linux 不需要 Desktop Environment”。

我接触 Linux 好几年了,与很多网友一样,好几年的时间都在纠结于Linux 桌面的美化。实际上了解后会发现,无论是 KDE 还是 GNOME,还是 Xfce4,你都只能被动的接受相应开发者的设定,我曾经是 Unity 用户,后来Ubuntu 把这个项目砍掉后,我才意识到 Linux 还真没有我喜欢的桌面环境了。除开华丽的特效,KDE、xfce等桌面环境根本没有 Windows的桌面环境好用,GNOME3 的顶部状态栏无用又占面积,查找软件还会打开个全屏页面,现在来看,统一移动和桌面两个平台的UI这个想法毫无疑问是破产的。搞不懂GNOME3 还在坚持什么。

当学会配置和使用新版 Windows Terminal 后,这种感觉尤为明显,Windows 的终端已经变得美观实用了,对 Linux 的需求只剩运行 Linux 的 App 了。装在本地的 Linux 往往对性能要求不大,因此装在虚拟机里;对性能要求高的,往往装在服务器里,都不会直接使用 Linux 的桌面环境。一些 Linux GUI App,通过 SSH + x11 forwarding 就可以在Windows 的桌面呈现出来。Microsoft 已经打算为 WSL 2 提供 GUI 支持(The Windows Subsystem for Linux BUILD 2020 Summary)。目前 VcXsrv (VcXsrv Windows X Server) 已经满足很多 GUI App 的需要。因此,我对虚拟机软件有两个基本要求:

  1. 后台运行,不使用时无视觉干扰
  2. 端口转发,便于 SSH 登录(本地、局域网、远程)

Hyper-V 简介

https://docs.microsoft.com/zh-cn/virtualization/hyper-v-on-windows/about/

在 Windows 10 上安装 Hyper-V

https://docs.microsoft.com/zh-cn/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v

在 Hyper-V 安装 Ubuntu

  1. 打开 Hyper-V 管理器
  2. 操作 - 新建 - 虚拟机

一些细节:

  • 选择第二代 Hyper-V
  • 创建完成后,打开虚拟机设置,“安全”一栏,选用“Microsoft UEFI 证书颁发机构”

配置网络

虚拟机默认使用的是 vEthernet(Default Switch),这个网络启用了 DHCP,既然要做端口转发,就希望虚拟机的本地IP是固定的。

创建一个 静态 NAT 网络:

Using a NAT Virtual Switch with Hyper-V

New-VMSwitch -SwitchName “NATSwitch” -SwitchType Internal
New-NetIPAddress -IPAddress 192.168.0.1 -PrefixLength 24 -InterfaceAlias “vEthernet (NATSwitch)
New-NetNAT -Name “NATNetwork” -InternalIPInterfaceAddressPrefix 192.168.0.0/24

PowerShell 执行Get-NetAdapter,可以看见 vEthernet (NATSwitch) 已创建。

Ubuntu Server 设置静态IP

参考 https://www.cnblogs.com/jianxuanbing/archive/2018/11/30/10042892.html

在 Hyper-V 管理器中,把虚拟机的网络适配器切换到刚才创建的 “NATSwitch” 上,重启虚拟机(也许不用)。注意由于发生了网络变动,虚拟机启动会较慢,稍等一下即可。

执行 ip addr,发现没有获取到 ip 地址。编辑 /etc/netplan/00-installer-config.yaml

network:
  ethernets:
    eth0:
      addresses:
      - 192.168.0.2/24
      gateway4: 192.168.0.1
      nameservers:
              addresses:
              - # 自己填 DNS
              search: []
      dhcp4: false
  version: 2

具体细节搜索 netplan 命令。

设置端口转发:

Create NAT Rules for the Hyper-V NAT Virtual Switch

Add-NetNatStaticMapping -ExternalIPAddress "0.0.0.0/24" -ExternalPort 9022 -Protocol TCP -InternalIPAddress "192.168.0.2" -InternalPort 22 -NatName NATNetwork

这样,外部的 9022 端口就被转发到虚拟机的 22 端口了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

k1435

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值