Обычно, когда удаленная машина пытается подключиться к вашему серверу postfix, postfix будет пытаться чтобы выполнить поиск адреса в DNS и сообщить об этом в файле
, например,
connect from 66-220-155-155.outmail.facebook.com[66.220.155.155]
или
connect from mail-it0-x249.google.com[2607:f8b0:4001:c0b::249]
. Теперь, если IP-адрес не может быть правильно преобразован в имя, вместо этого он сообщает unknown
:
например
connect from unknown[42.119.145.220]
connect from unknown[192.3.220.210]
connect from unknown[39.52.115.55]
Теперь в вашем случае соединение с 195.22.126.189. Если мы попытаемся найти это, мы получим ошибки DNS, и поэтому postfix
просто сообщает unknown
.
Просмотр последовательностей «подключение / отключение» для серверов является нормальным явлением в Интернете; это могут быть спамеры, бот-боты, неправильно настроенные серверы, инструменты сканирования ... Мой личный сервер, который только обрабатывает почту, видел 10 из них за последние 4 часа.
События Ethernet up/down (и многое другое) сообщаются ядром через сокет netlink. Вы просматриваете сообщения с помощью ip monitor
, который, предположительно, можно использовать в сценарии оболочки, чтобы избежать опроса.
Я также обнаружил, что в Debian, по крайней мере, есть пакет для netplug, который является демоном, который слушает сообщения netlink, а затем запускает сценарий оболочки на добавление, повышение и понижение соединения. Затем ваш сценарий оболочки может использовать systemctl
для запуска/остановки ваших устройств.
(Предположительно, Network Manager и systemd-networkd также прослушивают эти события, и, возможно, есть способ подключить к ним сценарий, но, похоже, вы их не используете)
.Этот вопрос о ServerFault указывает, что решение будет таким же простым, как добавление одной строки в раздел [Install]
вашей пользовательской службы:
[Install]
WantedBy=<the appropriate device unit>.device
Если, с другой стороны, вы хотите, чтобы ваша служба запускалась, когда сетевое подключение вашей системы находится в сети, независимо от типа сетевого подключения , см. man systemd.special
и прочтите инструкции для использование network-online.target
специфично для вашей версии systemd. Для версии systemd в моей системе рекомендуется добавить это в вашу службу:
[Unit]
Wants=network-online.target
After=network-online.target
... но я думаю, что видел здесь разные инструкции для разных версий systemd, поэтому сначала проверьте man systemd.special
вашего дистрибутива.