Вопрос или проблема
У меня есть резервное подключение 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
.
-
Создайте файл
99-usb-net.rules
в директории/etc/udev/rules.d/
:sudo nano /etc/udev/rules.d/99-usb-net.rules
-
Внутри файла добавьте следующую строку, адаптируя
ATTRS{product}
к вашему устройству (вы можете определить его, используя командуlsusb
):SUBSYSTEM=="net", ACTION=="add", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="yyyy", NAME="usb0"
Замените
xxxx
иyyyy
на идентификаторы вашего устройства, которые можно найти с помощьюlsusb
. -
Сохраните и закройте файл.
-
Перезагрузите правила 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
) для диагностики.