Старт сетевого интерфейса при загрузке с использованием systemd

Материал из Webko Wiki
Перейти к навигации Перейти к поиску

Постоянная конфигурация при загрузке с использованием systemd

Для начала создайте конфигурационный файл службы systemd, при этом замените интерфейс на ваше имя сетевого интерфейса:

/etc/conf.d/net-conf-интерфейс
address=192.168.1.2
netmask=24
broadcast=192.168.1.255
gateway=192.168.1.1

Создайте скрипт для запуска сети:

usr/local/bin/net-up.sh
#!/bin/bash
ip link set dev "$1" up
ip addr add ${address}/${netmask} broadcast ${broadcast} dev "$1"

[[ -z ${gateway} ]] || { 
  ip route add default via ${gateway}
}

Скрипт для остановки сети:

/usr/local/bin/net-down.sh
#!/bin/bash
ip addr flush dev "$1"
ip route flush dev "$1"
ip link set dev "$1" down

Сделайте оба скрипта исполняемыми:

# chmod +x /usr/local/bin/net-{up,down}.sh

Файл службы systemd:

/etc/systemd/system/network@.service
[Unit]
Description=Network connectivity (%i)
Wants=network.target
Before=network.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device

[Service]
Type=oneshot
RemainAfterExit=yes
EnvironmentFile=/etc/conf.d/net-conf-%i
ExecStart=/usr/local/bin/net-up.sh %i
ExecStop=/usr/local/bin/net-down.sh %i

[Install]
WantedBy=multi-user.target

Включите и запустите юнит network@интерфейс, указав ваше имя интерфейса.