В составе базовых служб systemd имеется служба systemd-networkd, позволяющая унифицировать процедуры настройки сетевой конфигурации в разных современных операционных системах Linux. Функционал systemd-networkd доступен в systemd версии 210 и выше.
systemctl --version
Файлы *.link в обязательном порядке создавать необходимости нет. Они нужны лишь в тех случаях, когда мы хотим каким-либо образом изменить физические параметры интерфейсов.
nano /etc/systemd/network/90-nic1-port0.link
[Match] MACAddress=00:15:5d:b5:f4:01 [Link] Name=nic1-port0 |
Если мы изменили имя интерфейса с помощью *.link-файла, то при последующей настройке этого интерфейса в *.network-файле в параметре Name должно фигурировать именно изменённое имя интерфейса. То есть не eth0 а nic1-port0
nano /etc/systemd/network/80-lan0-dhcp.network
[Match] Name=eth0 [Network] DHCP=ipv4 LinkLocalAddressing=no |
[Match] Name=nic1-port0 [Network] DHCP=ipv4 LinkLocalAddressing=no |
[Match] Name=eth* [Network] DHCP=ipv4 DHCP=ipv6 |
Опция LinkLocalAddressing поможет избежать появления в системе IPv6 адреса, если есть желание отключить IPv6 в системе полностью.
nano /etc/systemd/network/50-lan0-static.network
[Match] Name=enp8s0 [Network] Description=Local network Address=192.168.1.20/24 Gateway=192.168.1.1 DNS=192.168.1.1 192.168.2.1 Domains=sub1.holding.com sub2.holding.com LinkLocalAddressing=no |
mv /etc/network/interfaces /etc/network/interfaces.save
systemctl enable systemd-networkd
systemctl start systemd-networkd
После этого изменения сразу всупают в силу.
journalctl -u systemd-networkd.service
|
networkctl list
|
networkctl status
apt install systemd-resolved -y
ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
systemctl enable --now systemd-resolved
systemctl restart systemd-networkd
resolvectl status
rm -f /etc/resolv.conf
echo "nameserver 8.8.8.8" > /etc/resolv.conf
echo "nameserver 8.8.4.4" >> /etc/resolv.conf