我注意到,如果您没有启用密码的身份验证(使用串行控制台),更改虚拟机(装有 Ubuntu)的网络接口会破坏网络并让您陷入困境。
- 我正在创建一个新的虚拟机(Ubuntu 18.04)。
- 配置服务器
- 然后我决定更换网络接口(从已关闭的虚拟机)
- 它已经有我想要的 IP(静态)
- 它有所需的安全组
- 以及内部 DNS 条目
- 我停止新的虚拟机,连接新的接口,分离初始接口并重新启动。
- VM 启动正常,但我无法再 ssh。
我在日志中发现以下内容:
[ 12.038253] cloud-init[928]: 2018-07-16 14:21:49,325 - stage.py[警告]: 无法重命名设备:[nic not present] 无法将 mac=00:0d:3a:2d:b0:71 重命名为 eth0,不可用。
那么云初始化脚本没有正确处理这个问题还是我做错了什么?
答案1
我已经在我的 Azure 环境中进行了测试。很可能特定的 Ubuntu Server 版本不允许交换网络接口。我将网络接口从虚拟机网络-连接或分离网络接口在 Azure 门户中。
假设有 3 台虚拟机:
vma is Ubuntu Server 17.10 which has a nic-a;
vmb is Ubuntu Server 18.04 LTS which has a nic-b;
vmc is Ubuntu Server 16.04 LTS which has a nic-c.
如果我将 nic-a 连接到 vmb,则我无法通过 PUTTY 使用 ssh 连接到 vmb。
如果我将 nic-a 连接到 vmc,我可以使用相同方式成功连接到 vmc。
如果我将 nic-b 连接到 vma,则我无法通过 PUTTY 使用 ssh 连接到 vma。
如果我将 nic-b 连接到 vmc,我可以使用相同方式成功连接到 vmc。
如果我将 nic-c 连接到 vmb,则我无法通过 PUTTY 使用 ssh 连接到 vmb。
如果我将 nic-c 连接到 vma,则我无法通过 PUTTY 使用 ssh 连接到 vma。
似乎只有 Ubuntu Server 16.04 ssh 在交换网卡后才可以工作。另外,可能是因为网络计划影响。从此博客,你可以看到
Netplan 处理 YAML 并为 NetworkManager 或 systemd-network 系统渲染器生成所需的配置。从 Ubuntu 17.10 Artful 开始,Netplan 取代 ifupdown 成为默认配置实用程序。
此外,我建议在https://askubuntu.com/主要面向 Ubuntu 用户和开发者。