我正在使用 VS-Code 远程开发插件在我的笔记本电脑上的 Windows 10 上运行的 hyper-v VM(这是一个 Ubuntu 19.10 - 快速创建)上编辑代码。VM 使用 hyper-v 的默认开关进行网络连接。VS-Code 远程开发插件允许编辑 ssh 配置文件 (C:\Users\username\ssh\config),这使得连接到 VM 变得容易。这是我的 ssh 配置的样子:
Host hypervubuntu
HostName 172.18.10.76
User my_UbuntuVM_username
我的 hyper-v 默认开关的设置(看起来它设置为使用静态 IP,但实际上每次重新启动 Windows 后此设置都会更改):
问题在于,在每次 Windows 重新启动时,VM 的 IP 地址(以及 hyper-v 的默认开关)都会更改,需要编辑 ssh 配置以允许 VS-Code 再次连接到 VM。IP 的更改还会导致更多问题,例如需要重新启动 VM 并在每个新的 ssh 连接上确认“新”主机的真实性。
我尝试在 VM 的网络设置中设置静态 IP,但这似乎不会持续存在,因为它们在每次重新启动 VM 后都变回“自动 (DHCP)”。
正如在另一篇文章中所建议的那样,我尝试创建一个带有静态 IP 的新虚拟交换机,因为 Hyper-V 的默认交换机似乎并不意味着具有静态 IP。但这是我根本无法工作的地方。
即使在重新启动 Windows 或 VM 后,必须配置哪些部分才能使 VS-Code 顺利重新连接?
免责声明:我的网络技能水平 == noob :\
编辑:
在我的 Hyper-V Ubuntu 19.10 桌面虚拟机中设置静态 IP 从@AlexKrauss 得到很好的回答后,我需要执行的步骤:
一、找到并打开网络配置文件
cd /etc/netplan/
sudo nano 01-network-manager-all.yaml
二、替换它的内容如下
network:
version: 2
renderer: networkd
ethernets:
eth0:
addresses:
- 192.168.0.2/24
gateway4: 192.168.0.1
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
dhcp4: no
三、应用和检查的更改
sudo netplan apply
ifconfig -a
四。调整 VSCode 使用的 ssh 配置中的 IP 地址
Host hypervubuntu
HostName 192.168.0.2
User my_UbuntuVM_username
我遇到了同样的问题,并找到了Microsoft 的分步指南,用于设置带有 NAT 的内部交换机,并将 VM 连接到它。
它由 PowerShell 中的以下步骤组成
这使用 192.168.0.0/24 作为虚拟交换机的子网,其中 192.168.0.1 是主机的 IP,充当网关。
现在,VM 可以连接到 Hyper-V 管理器中的新交换机。
请注意,与默认交换机不同,它没有通过 DHCP 自动配置网络,因此在 VM 内部,您必须在 VM 中配置静态 IP(例如 192.168.0.2)。
你现在要做的就是
你就完成了!