Что было. На Ubuntu Server 20.04 пользователь задал статический адрес через netplan, чтобы адрес не менялся. После netplan apply подключиться по SSH не удалось; при этом с самой машины ping 8.8.8.8 работал, а имена сайтов не разрешались. В конфигурации были адрес /24, шлюз, публичные DNS и интерфейс eth0.
На что указали участники.
- Имя интерфейса. Современные Ubuntu называют сетевые карты
enp0s3,ens18,enp3s0и подобно, а неeth0. Настройка для несуществующего интерфейса молча не применяется к реальному, и машина остаётся с тем, что выдал DHCP или без адреса вообще. Проверка:ip -br link. - Отступы YAML. Netplan строг к пробелам; ошибка отступа делает часть блока невидимой.
sudo netplan --debug applyпокажет, что именно прочитано. - Шлюз и маска. Шлюз должен лежать в той же подсети, что адрес; иначе маршрута по умолчанию не будет, а «пинг по адресу работает» будет верно только внутри локальной сети.
- DNS через systemd-resolved. Если имена не разрешаются, а адреса пингуются, смотрите
resolvectl status: в netplan серверы имён задаются в секцииnameservers, и они должны попасть в конфигурацию именно того интерфейса, который поднялся. - Сам SSH и брандмауэр.
systemctl status sshиsudo ufw status: смена адреса не меняет правила, но если правило было привязано к старому адресу, доступ пропадёт.
Альтернатива, которую предложили. Не трогать конфигурацию гостя, а закрепить адрес за MAC-адресом машины в настройках DHCP-сервера или панели. Так нет конфликтов адресов и нет риска остаться без доступа после опечатки.
Безопасный способ применить изменения. sudo netplan try применяет настройки на 120 секунд и откатывает их, если вы не подтвердите; при обрыве SSH конфигурация вернётся сама. И держите открытой консоль виртуальной машины из панели управления.
Статус. Подтверждения автора в обсуждении нет; советы участников совпадают с документацией.
Настройка сети описана в документации Ubuntu Server.