У меня есть Odroid C2 - одноплатный компьютер с минимальной 18.04 для ARM. Первоначально он использовал NetworkManager + systemd-resolved для управления сетевыми подключениями, но поскольку я использую только Ethernet и всегда подключен к одной и той же сети, я нахожу это немного излишним, поэтому я отключил их оба и перешел на Netplan. Вот мой /etc/netplan/02-networkd.yaml:
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: yes
Как видите, это простая конфигурация DHCP. Вот результат использования этой конфигурации:
# netplan ip leases eth0
ADDRESS=10.0.0.4
NETMASK=255.255.255.0
ROUTER=10.0.0.1
SERVER_ADDRESS=10.0.0.1
T1=7200
T2=12600
LIFETIME=14400
DNS=10.0.0.1
NTP=10.0.0.1
DOMAINNAME=vault
CLIENTID=fff75f76ac00020000ab11a7b5e398b7e20ac7
IP-адрес и все параметры интерфейса установлены правильно. Единственная проблема у меня с DNS. Я обнаружил, что netplan не обновляет /etc/resolve.conf
, даже если в нем содержится вся обязательная информация.
Есть ли способ заставить Netplane обновлять / конфигурировать /etc/resolve.conf
с помощью DNS-информации, которую он получает от DHCP без использования NetworkManager или разрешенной? Вот дополнительная информация:
# ls -lA /etc/resolv.conf
-rw-r--r-- 1 root root 20 Apr 21 00:13 /etc/resolv.conf
# cat /etc/resolv.conf
nameserver 10.0.0.1
search vault
Это продуманное проектное решение, согласно которому netplan делегирует управление конфигурацией решателя системному разрешению. В netplan не поддерживается непосредственное управление /etc/resolv.conf на основе ответов на запросы dhcp. Действительно, systemd-networkd ожидает передачи этой информации в systemd-разрешения, и netplan полагается на такое поведение.
Я вижу его много. Пользователи удалили символьную ссылку для/etc/resolv.conf и поместили рукописный файл там. Существует на самом деле три различных места, к которым относится эта символьная ссылка, и я дам Вам наиболее распространенный...
В terminal
...
cd /etc
# каталог изменения
sudo mv resolv.conf resolv.conf.BAK
# переименуйте текущий resolv.conf как файл резервной копии
sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf
# воссоздайте стандартную символьную ссылку
Примечание: вручную не редактируйте/etc/resolv.conf!
Вы пробовали статические настройки
Простое редактирование в /etc/NetworkManager/NetworkManager.conf и отключение systemd-resolved.service (как в этом ответе https://askubuntu.com/a / 907249/719422 ). Но это само по себе, хотя и существенно, не гарантирует защищенного решения.
сделать это как SuperUser:
echo nameserver 8.8.8.8> /etc/resolv.conf chattr -e /etc/resolv.conf chattr + i /etc/resolv.conf
Похоже, существует большая путаница между resolvconf, systemd-resolved и /etc/resolv.conf. Вот мои 2 цента:
Ubuntu 18.04 использует systemd-resolved для разрешения имен. Как правильно заметил @slangasek, netplan делегирует разрешение имен в systemd-resolved. Чтобы systemd-resolve работал правильно, файл /etc/resolv.conf должен указывать на /run/systemd/resolve/stub-resolv.conf.
Однако, если в системе также установлен пакет resolvconf, символическая ссылка /etc/resolv.conf будет ошибочно указывать на /run/resolvconf/resolv.conf. Это приведет к ошибкам разрешения имен, например. Ошибка «Временный сбой в разрешении имени». Ручное редактирование /etc/resolv.conf не рекомендуется. Самое простое решение — удалить пакет resolvconf. Это сбросит символическую ссылку, и все будет хорошо (вам может потребоваться перезагрузка или, по крайней мере, перезапуск службы с разрешением systemd).