我在Hyper-V建立了一个Ubuntu Server 24.04,采用默认的虚拟网络交换机能够访问外网,通过家里的路由器能够看到为他分配了一个内部ip,安装openssh-server后能够使用<internal-ip>:22进行ssh连接。但是每次大约过了2小时后,ssh连接就会中断,然后查看ifconfig就会发现此时的ip变成和宿主机一样了,reboot或在Hyper-V里强制关机再启动都无法分配到新ip,但是外网访问正常。此问题暂时未解决,考虑到没有影响外网访问就没深究。
另外,这样每次通过路由DHCP分配动态internal-ip,配置ssh客户端的时候就很麻烦。既然是局域网内部使用的,那其实没有必要通过路由分配的ip进行ssh,给虚拟机加一个虚拟内部交换机搞一个固定ip就好了。
首先在Hyper-V的虚拟交换机管理器里添加一个新的虚拟交换机,类型为内部。

然后到“控制面板\网络和 Internet\网络连接”找到新建的连接,更改TCP/IPv4属性。

然后将这个虚拟交换机添加到Ubuntu虚拟机上。

进入Ubuntu Server进行配置。这台机器是通过cloud-init初始化的netplan,所以保险起见(防止cloud-init还原成初始化配置)我们要修改2个地方:
/etc/netplan/50-cloud-init.yaml
/etc/cloud/cloud.cfg.d/90-installer-network.cfg
#sudo cat /etc/cloud/cloud.cfg.d/90-installer-network.cfg
network:
ethernets:
eth0:
dhcp4: true
eth1:
dhcp4: false
addresses:
- 10.10.10.2/24
version: 2
Code language: PHP (php)
这里的10.10.10.2/24是和连接配置的10.10.10.1在同一网段。
sudo netplan --debug apply
#rebootCode language: CSS (css)
然后就可以通过新的内部ip 10.10.10.2进行ssh了。

发表回复