У меня есть соответствующий сетевой файл с включенным DHCP.
$ cat /etc/systemd/network/20-dhcp.network
[Match]
Name=enp3*
[Network]
DHCP=ipv4
[DHCP]
UseDomains=true
У меня есть соответствующий/etc/resolv.conf также. Я не использую systemd-resolvd демона (и это не может иметь никакого отношения к нему, потому что я действительно пытался использовать его, но не помог так или иначе). Какие-либо идеи, почему клиент DHCP должен быть выполнен вручную для получения его работа?
Оказалось, что у меня было два сетевых файла. Я следовал за дугой Linux systemd-networkd документация ( https://wiki.archlinux.org/index.php/systemd-networkd#Wireless_adapter) и создал один сетевой файл:
/etc/systemd/network/25-wireless.network
[Match]
Name=wlp2s0
[Network]
DHCP=ipv4
И это работает.
Из чтения man systemd.network
звучит так, как будто файлы .network
в /etc/systemd/network
управляются systemd-networkd
. Если файлы не читаются, возможно, вы не используете эту часть systemd
.
Например, на рабочем столе Ubuntu 16.04 я вижу, что systemd-networkd
не используется:
systemctl status systemd-networkd
● systemd-networkd.service - Сетевая служба загружена: загружена (/ lib / systemd / system / systemd-networkd.service; отключено; предустановка поставщика: включена) Активна: неактивна (неактивна) Документы: man: systemd-networkd.service (8)
Вместо этого служба NetworkManager
бежит. Таким образом, DHCP-клиент будет настроен через NetworkManager в этом случае, или NetworkManager должен быть остановлен и отключен, а systemd-networkd
должен быть запущен и включен.
На всякий случай люди не знают - systemd-networkd
теперь содержит его собственную встроенную реализацию клиента DHCP, таким образом, никакие внешние клиенты DHCP не были бы запущены, если они не настроены в другом месте.
Конфигурацией управляют много конфигурационных файлов, как описано в systemd-networkd странице справочника. С конфигурацией сети Ubuntu18.04 (/{lib,etc,run}/netplan/*.yaml
) теперь управляется netplan, который генерирует конфигурационные файлы для systemd-networkd (/{lib,etc,run}/systemd/network/
).
Конкретно операцией клиента DHCP управляют в systemd.network файле конфигурации - это может быть включено в [NETWORK]
раздел файла конфигурации с помощью DHCP
директива (это принимает значение по умолчанию к "нет"), и настроенный [DHCP]
раздел.