Wla*_*lad 3 ssh hyper-v virtual-machine ubuntu visual-studio-code
我正在使用 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
Run Code Online (Sandbox Code Playgroud)
我的 hyper-v 默认开关的设置(看起来它设置为使用静态 IP,但实际上此设置在每次重新启动 Windows 后都会更改):

问题是在每次 Windows 重新启动时,VM(以及 hyper-v 的默认交换机)的 IP 地址发生变化,需要编辑 ssh 配置以允许 VS-Code 再次连接到 VM。IP 的更改还会导致进一步的问题,例如需要重新启动 VM 以及在每个新的 ssh 连接上确认“新”主机的真实性。
我已经尝试在 VM 的网络设置中设置静态 IP,但这似乎不会持续存在,因为它们在每次重新启动 VM 后都改回“自动(DHCP)”。
正如另一篇文章中所建议的那样,我尝试创建一个带有静态 IP 的新虚拟交换机,因为 Hyper-V 的默认交换机似乎并不意味着具有静态 IP。但这是我根本无法工作的地方。
即使在 Windows 或 VM 重新启动后,必须配置哪些部分才能使 VS-Code 顺利重新连接?
免责声明:我的网络技能水平 == 菜鸟:\
编辑:
在@AlexKrauss 给出了很好的答案后,我需要执行的步骤是在我的 Hyper-V Ubuntu 19.10 桌面虚拟机中设置静态 IP:
一、定位并打开网络配置文件
cd /etc/netplan/
sudo nano 01-network-manager-all.yaml
Run Code Online (Sandbox Code Playgroud)
二、替换它的内容如下
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
Run Code Online (Sandbox Code Playgroud)
三、应用和检查的更改
sudo netplan apply
ifconfig -a
Run Code Online (Sandbox Code Playgroud)
四、调整了 VSCode 使用的 ssh 配置中的 IP 地址
Host hypervubuntu
HostName 192.168.0.2
User my_UbuntuVM_username
Run Code Online (Sandbox Code Playgroud)
我遇到了同样的问题,并找到了Microsoft 的分步指南,用于设置带有 NAT 的内部交换机并将 VM 连接到它。
它由 PowerShell 中的以下步骤组成
New-VMSwitch -SwitchName "SwitchName" -SwitchType Internal
Get-NetAdapter // (note down ifIndex of the newly created switch as INDEX)
New-NetIPAddress -IPAddress 192.168.0.1 -PrefixLength 24 -InterfaceIndex <INDEX>
New-NetNat -Name MyNATnetwork -InternalIPInterfaceAddressPrefix 192.168.0.0/24
Run Code Online (Sandbox Code Playgroud)
这使用 192.168.0.0/24 作为虚拟交换机的子网,其中 192.168.0.1 是主机的 IP,充当网关。
现在,VM 可以连接到 Hyper-V 管理器中的新交换机。
请注意,与默认交换机不同,没有通过 DHCP 进行自动网络配置,因此在 VM 内部,您必须在 VM 中配置静态 IP(例如,192.168.0.2)。
| 归档时间: |
|
| 查看次数: |
3422 次 |
| 最近记录: |