Я переключаюсь с Debian ifupdown
на systemd-networkd
, и это в основном работает нормально. Один из пропущенных моментов заключается в том, что при каждом изменении сети я хочу звонить killall -ARLM tinc
, чтобы моя VPN работала своевременно.
Есть systemd
или systemd-networkd
предоставляют такую функциональность? Как бы я использовал это?
systemd
events
systemd-networkd
Иоахим Брейтнер
источник
источник
Tinc должен быть обновлен как системный модуль вместо отправки прямых сигналов. Для достижения этого нужно , чтобы настроить их единичные файлы , которые будут прикованы с соответствующими
Require=
,Before=
иAfter=
строк в[Unit]
разделе. Также убедитесь, что вы установили правильныйWantedBy=
для сетевых служб. (то есть.WantedBy=
{network.target
,network-online.target
,network-pre.target
} вместоmulti-user.target
)Это позволяет выполнить
systemctl restart systemd-networkd.service
перезагрузку вашей сети. В сочетании сsystemd-resolvd
,udev
/dbus
(плюс,wpa_supplicant@nic.service
когда на Wi-Fi) и сеть просто работает.Обязательно прочитайте статьи о переходе на systemd-networkd и зависимости от устройства . Это также способ отправки сигналов на ваши
systemd.service
устройства с помощьюsystemctl kill
команды, как описано в руководстве systemd для администраторов.источник
systemctl kill
для доставки сигнала. Но я не вижу, как вызвать это при изменении конфигурации сети.network.target
затемnetwork-online.target
запустить этот модуль. так простоtinc.service
включатьRequires=systemd-networkd.service
иWantedBy=network-online.target
затем , когда Systemd-networkd пинает , что поднимет Nic и тун интерфейс, установить IP - адрес, а затем сигнализировать tinc для запуска или перезапуска в случае необходимости.case "$2" in up|connectivity-change) if /usr/bin/nm-online -qx; then systemctl reload autossh.service fi;; esac
В настоящее время это невозможно. Однако вы можете использовать только
systemd-networkd-wait-online.service
в качестве зависимости от загрузки для перенастройки Tinc. По моему опыту Tinc будет быстро реагировать на изменения в конфигурации сети. По крайней мере, в Linux он может использовать rtnetlink для прослушивания изменений интерфейсов.источник