1

Вот проблема, которую я пытаюсь решить: у меня есть беспроводное устройство, я хотел бы, чтобы оно действовало как клиент в определенный момент и как точка доступа в другой момент.

Я настроил NetworkManager, используя два профиля, один для клиента, другой для точки доступа. Все работает, пока я переключаюсь вручную.

Проблемы начинаются, когда я пытаюсь привязать эти два профиля к системным устройствам. Я хотел бы иметь возможность связать профиль NetworkManager с модулем systemd. Я также написал модуль, используя простые команды nmcli, но всякий раз, когда я запускаю модуль, соединение увеличивается, а затем падает.

Вот блок:

[Service]
type=oneshot
ExecStart=nmcli con up Connection2
ExecStop=nmcli con down Connection2

Вот что журнал показывает с устройства:

Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)

Вот что journalctl показывает из модуля NetworkManager (усечено):

<info> Activation (wlan0) successful, device activated.
<info> (wlan0): device state change: activated -> deactivating (reason 'user-requested') [100 11
<info> NetworkManager state is now DISCONNECTING
<info> (wlan0): device state change: deactivating -> disconnected (reason 'user-requested') [110
<info> (wlan0): deactivating device (reason 'user-requested') [39]
<info> Removing DNS information from /sbin/resolvconf
<info> NetworkManager state is now DISCONNECTED

Может кто-нибудь указать мне правильный способ сделать это? Также я хотел бы избежать подхода "ifupdown" и использовать NetworkManager (или systemd-networkd). У меня не было успеха с последним, так как я не могу найти простой способ установить режим устройства. Спасибо.

1 ответ1

1

Для блоков Oneshot обычно требуется RemainAfterExit=yes , в противном случае они немедленно "деактивируются" и запускают команду ExecStop.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .