Вопрос или проблема
Сервер Ubuntu, похоже, не получает настройки DNS от службы DHCP на моем маршрутизаторе.
root@dios:/etc/netplan# cat 01-netcfg.yaml
сеть:
версия: 2
рендерер: networkd
Ethernet:
enp3s0:
dhcp4: true
Он получает свой IP-адрес от DHCP-сервера, но настройки DNS, похоже, отсутствуют.
root@dios:/run/systemd/network# nslookup www.google.com
root@dios:/run/systemd/network# nslookup www.google.com 192.168.2.1
Сервер: 192.168.2.1
Адрес: 192.168.2.1#53
Неавторитетный ответ:
Имя: www.google.com
Адрес: 142.250.80.68
Имя: www.google.com
Адрес: 2607:f8b0:4006:80c::2004
Мой компьютер с Windows работает нормально, что заставляет меня думать, что проблема с моим сервером Ubuntu.
Я пытался вручную установить настройки DNS в файле netplan:
сеть:
версия: 2
рендерер: networkd
Ethernet:
enp3s0:
dhcp4: true
dhcp4-overrides:
use-dns: false
nameservers:
addresses: [192.168.2.1, 8.8.8.8]
Но это тоже не помогло.
Где я ошибаюсь?
Оказалось, что служба Systemd-Resolved была отключена. Я не знаю, почему или как, но это так. Я включил ее, и все работает плавно.
Ответ или решение
Ваша проблема с тем, что сервер Ubuntu не получает настройки DNS от DHCP, может иметь несколько причин. Судя по вашему описанию, вы уже проверили конфигурацию Netplan и убедились, что DHCP работает, поскольку сервер получает IP-адрес. Однако, похоже, что настройки DNS не применяются должным образом.
-
Проверка службы systemd-resolved: Как вы уже выяснили, служба
systemd-resolved
была отключена. Эта служба отвечает за управление резолверами DNS и предоставляет настройки DNS для различных интерфейсов. Вы можете проверить состояние службы с помощью следующей команды:systemctl status systemd-resolved
Если она отключена, вы можете активировать её так:
sudo systemctl enable systemd-resolved sudo systemctl start systemd-resolved
После этого проверьте, получает ли ваш сервер DNS-настройки из DHCP. Вы можете сделать это с помощью команды:
resolvectl status
-
Конфигурация Netplan: Ваша конфигурация Netplan выглядит корректной, однако стоит убедиться, что параметр
dhcp4-overrides
правильно настроен. Если вы хотите, чтобы система использовала DNS-серверы, предоставленные DHCP, убедитесь, что вы не используете параметрuse-dns: false
. Затем примените изменения с помощью следующей команды:sudo netplan apply
-
Проверка файла resolv.conf: Убедитесь, что файл
/etc/resolv.conf
правильно перенаправляет DNS-запросы наsystemd-resolved
. Если служба активна, файл должен содержать строку:nameserver 127.0.0.53
Если в файле указаны другие DNS-серверы, это может привести к путанице. Если необходимо, то используйте команду:
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
-
Тестирование после изменений: После выполнения вышеуказанных шагов проверьте, работает ли резолвинг DNS:
nslookup www.google.com
Если всё сделали правильно, но проблема все еще не решена, рассмотрите возможность:
- Проверки состояния вашего DHCP-сервера на маршрутизаторе, чтобы убедиться, что он действительно передает DNS-серверы.
- А также проверьте прошивку маршрутизатора на наличие обновлений, которые могут исправить возможные баги.
Следуя данным рекомендациям, вы сможете наладить работу DNS на вашем сервере Ubuntu.