Инструкция для неопытного пользователя )))
NetworkManager - снесен, за ненадобностью, слишком просто, управляется etcnet система SimplyLinux 10
### Создание подключения к сети через usb модем смартфона ###
### AltLinux p10 systemd
# При подключении usb модема смартфона в системе создается ссылка на устройство /sys/class/net/enp0s20f0u11
watch 'ls -l /sys/class/net | grep -i usb'
lrwxrwxrwx 1 root root 0 дек 5 08:57 enp0s20f0u11 -> ../../devices/pci0000:00/0000:00:14.0/usb1/1-11/1-11:1.0/net/enp0s20f0u11
lsusb
Bus 001 Device 014: ID 21c8:2d21 Motorola
Чтобы изменить имя интерфейса с enp0s20f0u11 на usb0, можно использовать правило udev. Для этого необходимо создать файл с правилами udev в директории /etc/udev/rules.d/
Создайте файл с именем, например, 99-usb0.rules, touch /etc/udev/rules.d/99-usb0.rules и добавьте в него следующее содержимое nano /etc/udev/rules.d/99-usb0.rules:
ACTION=="add", SUBSYSTEM=="net", ATTRS{idVendor}=="21c8", ATTRS{idProduct}=="2d21", NAME="usb0"
Этот файл определяет правило, которое будет применено при добавлении нового сетевого интерфейса. Правило проверяет, что интерфейс принадлежит устройству с идентификатором производителя (idVendor) 21c8 и идентификатором продукта (idProduct) 2d21, что соответствует вашему модему Motorola. Если это условие выполнено, правило присваивает интерфейсу имя "usb0".
tree /sys/class/net/
/sys/class/net/
├── ether0 -> ../../devices/pci0000:00/0000:00:1e.0/0000:02:00.0/net/ether0
├── ether1 -> ../../devices/pci0000:00/0000:00:1c.0/0000:01:00.0/net/ether1
├── lo -> ../../devices/virtual/net/lo
└── usb0 -> ../../devices/pci0000:00/0000:00:1d.7/usb2/2-4/2-4:1.0/net/usb0
udevadm info -p /sys/class/net/usb0 | grep -i model
E: ID_MODEL=Moto
E: ID_MODEL_ENC=Moto
E: ID_MODEL_ID=2d21
# Для установления сети создаем каталог mkdir /etc/net/ifaces/usb0 с файлом options
# который содержит следующие данные
tree /etc/net/ifaces/usb0
/etc/net/ifaces/usb0
└── options
nano /etc/net/ifaces/usb0/options
BOOTPROTO=dhcp
TYPE=eth
CONFIG_IPV4=yes
DISABLED=no
ONBOOT=no #автозапуск on или yes
# Запуск и остановка работы интерфейса
ifup usb0
ifdown usb0
Автозапуск и настройка dhcp интерфейса с помощью unit systemd
заменить в /etc/net/ifaces/usb0/options строку BOOTPROTO=dhcp на BOOTPROTO=none
# cat /etc/udev/rules.d/99-usb0.rules
ACTION=="add", SUBSYSTEM=="net", ATTRS{idVendor}=="21c8", ATTRS{idProduct}=="2d21", NAME="usb0", RUN+="/usr/bin/systemctl start usb0-modem.service"
ACTION=="remove", SUBSYSTEM=="net", ATTRS{idVendor}=="21c8", ATTRS{idProduct}=="2d21", RUN+="/usr/bin/systemctl stop usb0-modem.service"
# cat /etc/systemd/system/usb0-modem.service
[Unit]
Description=USB Modem Connection
After=network-online.target
Wants=network-online.target
Requires=network-online.target
Before=network-online.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/sbin/dhcpcd usb0
ExecStop=/sbin/dhcpcd -k usb0
[Install]
WantedBy=multi-user.target
Этот unit файл делает следующее:
• [Unit] секция описывает unit и его зависимости от network-online.target. Это гарантирует, что сетевое подключение будет доступно.
• [Service] секция определяет тип unit (oneshot - запускается один раз), указывает, что он должен оставаться активным после завершения (RemainAfterExit=yes), и указывает команды для запуска и остановки dhcpcd.
• [Install] секция указывает, что unit должен быть запущен при загрузке системы.
Включите service:
systemctl enable usb0-modem.service
Перезагрузите systemd:
systemctl daemon-reload
Теперь при подключении модема systemd должен автоматически запускать dhcpcd для интерфейса usb0, и при отключении модема - останавливать его.