Отключение переименования udev для USB-тетеринга Android с использованием случайных MAC-адресов

Вопрос или проблема

У меня есть резервное подключение 4G через старый телефон на Android, подключенный по USB.

Ранее это работало нормально как интерфейс usb0.

С момента обновления до Debian 12 устройство переименовывается во что-то совершенно случайное и каждый раз разное, когда оно подключается. Это портит /etc/network/interfaces и мой скрипт iptables.

# grep -a renamed  /var/log/syslog
2023-06-27T11:30:09.891759+01:00 calleva kernel: [    1.117331] r8169 0000:02:00.0 enp2s0: переименован из eth0
2023-06-27T11:30:09.891773+01:00 calleva kernel: [    1.144188] r8169 0000:03:00.0 enp3s0: переименован из eth1
2023-06-27T11:30:09.891903+01:00 calleva kernel: [    2.997299] rndis_host 2-1.6:1.0 enx720b8e586e43: переименован из usb0
2023-06-27T11:30:09.892058+01:00 calleva kernel: [    5.010330] rt2800pci 0000:01:00.0 wlp1s0: переименован из wlan0
2023-06-27T11:30:09.892071+01:00 calleva kernel: [    5.325336] rtl8192cu 1-1.4:1.0 wlx08beac0a6c1d: переименован из wlan0
2023-06-27T12:27:13.975350+01:00 calleva kernel: [ 3429.810797] rndis_host 2-1.6:1.0 enx9657a45d9349: переименован из usb0
2023-06-29T22:24:16.219329+01:00 calleva kernel: [212048.668218] rndis_host 2-1.6:1.0 enx5edf49046a6d: переименован из usb0
2023-06-29T22:27:16.975407+01:00 calleva kernel: [212229.420430] rndis_host 2-1.6:1.0 enxea7010e4b5e5: переименован из usb0
2023-06-29T22:53:13.186625+01:00 calleva kernel: [213785.614002] rndis_host 2-1.6:1.0 enx76f12e43a7a6: переименован из usb0

Я считаю, что есть две проблемы:

  • что-то под названием udev переименовывает устройства, и
  • телефон на Android генерирует случайные MAC-адреса из-за ‘защитной’ ерунды.

На телефоне нет доступных настроек. Поэтому: как можно остановить эту ерунду с udev?

Пока я на этом: я заметил, что после редактирования /etc/network/interfaces и выполнения ifup интерфейс становится UNKNOWN, а не UP. В чем дело?!

enx76f12e43a7a6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 1000

Пробовал добавить

SUBSYSTEM=="net", ACTION=="add", ATTRS{product}=="XT1700", NAME="hp"

в новый файл в `/etc/udev/rules.d`.

Переместил файл с содержимым

SUBSYSTEM=="net", ACTION=="add", ATTRS{product}=="XT1700", NAME="hp"

из /etc/udev/rules.d/hp в /etc/udev/rules.d/99-persistent-net.rules.
(Я подозреваю, что если файл имеет ‘неправильное’ имя, то он не работает — кто знает.)

Запустил

# udevadm control --reload-rules
# udevadm trigger

и снова подключил устройство, и теперь интерфейс называется hp, и это, пох parece, стабильно.

Ответ или решение

Для решения проблемы с переименованием сетевого интерфейса при подключении USB-модема на Android и возникновения случайных MAC-адресов, следуйте следующим шагам:

1. Отключение переименования udev

Переименование интерфейса, скорее всего, происходит из-за правил udev, которые отвечают за привязку имен к интерфейсам. Вы уже предприняли шаги, чтобы создать правило, но важно удостовериться, что оно правильно настроено и применено. Вам потребуется создать или изменить файл в директории /etc/udev/rules.d.

  1. Создайте файл 99-usb-net.rules в директории /etc/udev/rules.d/:

    sudo nano /etc/udev/rules.d/99-usb-net.rules
  2. Внутри файла добавьте следующую строку, адаптируя ATTRS{product} к вашему устройству (вы можете определить его, используя команду lsusb):

    SUBSYSTEM=="net", ACTION=="add", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="yyyy", NAME="usb0"

    Замените xxxx и yyyy на идентификаторы вашего устройства, которые можно найти с помощью lsusb.

  3. Сохраните и закройте файл.

  4. Перезагрузите правила udev:

    sudo udevadm control --reload-rules
    sudo udevadm trigger

2. Отключение генерации случайных MAC-адресов на Android

Если ваше Android-устройство генерирует случайные MAC-адреса, это может быть связано с настройками самого устройства. К сожалению, в большинстве случаев невозможно полностью отключить эту функцию. Попробуйте следующее:

  • Убедитесь, что у вас установлены все обновления для Android.
  • Проверьте настройки USB-тетумирования на телефоне. Иногда может помочь отключение опции, связанной с безопасностью, если такая имеется (например, "Безопасный режим").

Если данный подход не доступен, единственным способом будет обойти это с помощью статического IP-адреса в ваших сетевых настройках после подсоединения устройства к ПК.

3. Проблема с состоянием "UNKNOWN"

Если интерфейс отображается как "UNKNOWN", это может быть связано с тем, что сетевой интерфейс не получил корректную конфигурацию сети. Убедитесь, что в файле /etc/network/interfaces настроены все необходимые параметры для этого интерфейса. Например:

auto hp
iface hp inet dhcp

Или если вы используете статическую конфигурацию:

auto hp
iface hp inet static
    address 192.168.1.2
    netmask 255.255.255.0
    gateway 192.168.1.1

После внесения изменений обязательно перезагрузите сетевые службы, например, с помощью:

sudo ifdown hp && sudo ifup hp

Или просто перезагрузите систему.

Заключение

Следуя вышеуказанным шагам, вы сможете остановить переименование интерфейса с помощью udev и настроить системы для работы с вашим Android-устройством без проблем. Убедитесь, что вы тщательно настроили файлы правил и параметры сети. Если возникнут дополнительные проблемы, возможно, стоит просмотреть логи (/var/log/syslog) для диагностики.

Оцените материал
Добавить комментарий

Капча загружается...