Я только что видел новости о https://www.isc.org/dhcp :
ISC завершила разработку DHCP-клиента ISC в начале 2022 года. Эта реализация клиента больше не поддерживается и больше не должна использоваться в производстве.
Теперь, когда dhclient
похоже, вышел на пенсию, какой DHCP-клиент мне следует использовать?
В частности, я использую Debian 11, и мне нужен DHCP-клиент, которому можно дать указание из командной строки продлить аренду. В настоящее время я делаю это:
sudo dhclient -r
sudo dhclient
Или, для определенного интерфейса, например eth0
:
sudo dhclient -r eth0
sudo dhclient eth0
— РЕДАКТИРОВАТЬ —
Другие обсуждения этого вопроса:
- https://groups.google.com/g/linux.debian.user/c/FSEkTKp3zEg
- https://lists.debian.org/debian-devel/2021/09/msg00407.html
Кажется, они предлагают systemd-networkd
.
debian dhcp dhclient debian-bullseye
кол
1 ответ
Я заменил dhclient DHCP-клиентом systemd-networkd следующим образом:
1. Удалить dhclient
sudo apt purge -y isc-dhcp-client
sudo apt purge -y isc-dhcp-common
2. Запустите systemd-networkd
sudo systemctl start systemd-networkd
sudo systemctl enable systemd-networkd
3. Заставьте systemd-networkd управлять сетевыми интерфейсами, используя собственный DHCP-клиент.
Для каждого интерфейса создайте *.network
файл конфигурации в /etc/systemd/network
Например 05-enp1s0.network
:
[Match]
Name=enp1s0
[Network]
DHCP=yes
После перезапуска Linux или перезапуска systemd-networkd или sudo networkctl reload
, эти интерфейсы будут настроены DHCP-клиентом systemd-networkd. Обновить конфигурации интерфейса легко, например:
sudo networkctl renew enp1s0
Это очень субъективно, но мой первоначальный опыт показывает, что DHCP-клиент systemd-networkd более надежен и реагирует быстрее, чем dhclient. Если я меняю сетевые подключения, что часто происходит в моем случае использования, я получаю хороший опыт plug-n-play.
4. [Optional] Добавьте 8.8.8.8 в качестве основного DNS-сервера.
Включите systemd-разрешение:
sudo systemctl start systemd-resolved
sudo systemctl enable systemd-resolved
В /etc/systemd/resolved.conf
:
[Resolve]
DNS=8.8.8.8
В /etc/nsswitch.conf
добавлять resolve
на первом месте для hosts
:
...
hosts: resolve [!UNAVAIL=return] files dns
...
В настоящее время systemd-resolve
будет работать, но nslookup
по-прежнему будет использовать DNS-сервер, который был записан в /etc/resolv.conf
DHCP-клиентом. Чтобы решить эту проблему, конвертируйте /etc/resolv.conf
в мягкую ссылку на файл resolv.conf, используемый systemd-resolved:
cd /etc
sudo rm resolv.conf
sudo ln -s /run/systemd/resolve/resolv.conf resolv.conf
Этот файл содержит 8.8.8.8 в первой строке и ниже DNS-серверы, собранные DHCP-клиентом с DHCP-серверов подключенных сетей, например:
nameserver 8.8.8.8
nameserver 192.168.1.1
nameserver 192.168.42.129