Incus - восстановление пропавшего доступа к сети
LXC
1
Сообщения
1
Posters
8
Просмотры
-
Почему в контейнере интернет / apt может не работать
В обычной системе (не в контейнере) всё обычно работает «из коробки», потому что там сеть настраивается автоматически.
В контейнере всё немного по-другому:
- Контейнер получает интернет через хост-машину (компьютер, на котором запущен Incus).
- DNS (то, что превращает google.com в IP-адрес) тоже должен приходить от хоста.
- Очень часто в новых Debian/Ubuntu внутри контейнера включается штука под названием systemd-resolved — она пытается сама настроить DNS, но в контейнере у неё это получается плохо или вообще не получается.
- В итоге в файле
/etc/resolv.confоказывается либо пусто, либо только строкаnameserver 127.0.0.53, либо вообще ничего полезного → интернет не работает, apt update зависает или очень медленно идёт.
Это одна из самых частых проблем у новичков с контейнерами.
Самый простой и надёжный способ исправить (для большинства случаев)
Зайдите в контейнер и выполните эти 4 команды подряд:
# 1. Отключаем систему, которая мешает systemctl disable --now systemd-resolved # 2. Удаляем старый (неправильный) файл rm -f /etc/resolv.conf # 3. Создаём нормальный файл с публичными DNS-серверами echo "nameserver 8.8.8.8" > /etc/resolv.conf echo "nameserver 1.1.1.1" >> /etc/resolv.conf # 4. (опционально) Защищаем файл от перезаписи chattr +i /etc/resolv.confПосле этого сразу попробуйте:
ping 8.8.8.8 ping google.com apt updateДолжно заработать почти мгновенно.
Почему именно эти DNS-сервера
- 8.8.8.8 → Google Public DNS
- 1.1.1.1 → Cloudflare DNS
Они быстрые, надёжные, находятся по всему миру и почти никогда не падают.
Что будет после перезагрузки контейнера?
Если вы не поставили
chattr +i, то после перезапуска контейнера файл/etc/resolv.confможет снова стать неправильным.Тогда просто повторите команды 1–3 заново (или сделайте маленький скрипт, который запускается при старте).
Короткая памятка (скопируйте и сохраните)
# Быстрый фикс DNS в контейнере Debian/Ubuntu systemctl disable --now systemd-resolved rm -f /etc/resolv.conf echo "nameserver 8.8.8.8" > /etc/resolv.conf echo "nameserver 1.1.1.1" >> /etc/resolv.conf # Чтобы не слетало после перезагрузки: chmod 644 /etc/resolv.conf # Проверка ping google.com apt updateТеперь интернет должен работать стабильно.