Вопрос или проблема
Я использую Ubuntu Server 24.04.1 LTS и сталкиваюсь с проблемами, пытаясь сделать все “правильным” образом для Ubuntu.
Во-первых, я пытаюсь заставить работать systemd-resolved:
- Я конкретно хочу использовать systemd-resolved и сохранить кэширование. Я также хочу продолжать работать в режиме заглушки.
- Если это вообще возможно, я хочу избежать разрывов символических ссылок или изменения существующих файлов. Я предпочел бы добавлять конфигурации в виде drop-in, где это возможно.
- Серверы имен, которые я указал через
netplan
, появляются в/run/systemd/resolve/resolv.conf
, но/run/systemd/resolve/stub-resolv.conf
является символической ссылкой на/etc/resolv.conf
. resolvectl query google.com
работает как ожидается и кэширует ответы.host google.com
не работает и возвращаетошибка связи к 127.0.0.53#53: время ожидания истекло
.systemctl status systemd-resolved
показывает, что сервис работает со статусом “обработка запросов”.lsof -i :53
показываетsystemd-resolve
на127.0.0.53
и127.0.0.54
tcp + udp, но только TCP-записи имеют “(LISTEN)” рядом с ними.
Во-вторых, я пытаюсь полностью отключить ipv6:
- Я установил несколько значений в
/etc/sysctl.d/local.conf
, но это, похоже, не влияет ни на что после перезагрузки. networkctl status
показывает мою сеть в состоянииroutable
, но вpartial
онлайн-состоянии.
Не знаю, что я делаю не так, но у меня ощущение, что это самая трудная установка Linux, с которой мне когда-либо приходилось бороться.
/etc/netplan/99-ip.yaml
network:
version: 2
ethernets:
eno1:
dhcp4: false
dhcp6: false
addresses:
- 192.168.1.137/24
routes:
- to: default
via: 192.168.1.254
nameservers:
addresses: [9.9.9.11,149.112.112.11]
/etc/sysctl.d/local.conf
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.all.forwarding=0
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1
net.ipv6.conf.eno1.disable_ipv6=1
Ответ или решение
Для решения вопросов, связанных с работой системы systemd-resolved
в Ubuntu Server 24.04.1 LTS, а также для отключения IPv6, необходимо рассмотреть несколько аспектов. Ниже приведены пошаговые рекомендации, которые помогут вам достичь желаемых результатов, сохранив при этом правильность конфигурации системы.
Настройка systemd-resolved
-
Проверка состояния systemd-resolved: Убедитесь, что служба
systemd-resolved
активна и работает корректно. Используйте команду:systemctl status systemd-resolved
Это покажет вам текущее состояние, включая любые ошибки.
-
Проверка конфигурации имен серверов: Ваша конфигурация в
/etc/netplan/99-ip.yaml
выглядит верно. Убедитесь, что вы применили изменения:sudo netplan apply
Это обязательный шаг после изменения файла настройки.
-
Проверка конфигурации resolv.conf: Ваша система использует
/run/systemd/resolve/stub-resolv.conf
, который является символической ссылкой на/etc/resolv.conf
. Это нормально для работы в отладочном режиме. Проверьте содержимое этого файла:cat /etc/resolv.conf
Убедитесь, что он правильно указывает на
127.0.0.53
. -
Настройка drop-in конфигурации:
Если вы хотите изменить опции конфигурации дляsystemd-resolved
, можно создать файл drop-in:sudo mkdir -p /etc/systemd/system/systemd-resolved.service.d sudo nano /etc/systemd/system/systemd-resolved.service.d/override.conf
Добавьте необходимые настройки, а затем перезапустите службу:
sudo systemctl daemon-reload sudo systemctl restart systemd-resolved
-
Проверка кеша DNS: Используйте команду
resolvectl query google.com
для проверки, работает ли кеширование DNS. Если запрос проходит, то система настроена правильно.
Отключение IPv6
-
Настройка sysctl: Убедитесь, что изменения, которые вы внесли в файл конфигурации
/etc/sysctl.d/local.conf
, правильно применяются. После редактирования файла выполните:sudo sysctl -p /etc/sysctl.d/local.conf
Это применит изменения без перезагрузки.
-
Проверка состояния интерфейса: Используйте команду:
networkctl status
Если сетевой интерфейс находится в состоянии "параметры" (partial), это может указывать на то, что система не применяет изменения. Убедитесь, что вы не используете IPv6 в конфигурации Netplan.
-
Перезагрузка: Иногда изменения не будут применены до перезапуска машины. Убедитесь, что вы перезагрузили сервер после всех изменений конфигурации:
sudo reboot
-
Диагностика: После перезагрузки проверьте наличие IPv6 адресов на интерфейсе с помощью:
ip addr show eno1
Убедитесь, что IPv6 адреса отсутствуют.
Заключение
Следуя указанным выше шагам, вы сможете привести в порядок работу systemd-resolved
и отключить IPv6 на вашем сервере Ubuntu 24.04.1 LTS. При этом старайтесь избегать изменения стандартных конфигурационных файлов и используйте механизмы drop-in, чтобы сохранить целостность системы. Если проблемы сохраняются, обратите внимание на сообщения в логах, которые могут дать дополнительные подсказки о причинах неполадок.