У меня есть ОС Linux (Rasbian), работающий на Raspberry Pi 2+, и она использует USB-Stick Huawei E3372s 4G / LTE для подключения к Интернету.
Все мои исходящие соединения работают отлично (режим USB Huawei изменен с помощью usb_modeswitch-ruleing и Udev / rules.d), но я не могу получить какое-либо входящее соединение с Raspi. Входящий просто не работает .
Я не могу получить никаких пакетов или соединений, которые я отслеживал в реальном времени и из журналов, используя инструменты, предоставляемые дистрибутивами пакета Raspbian.
Я уже подтвердил с моим провайдером 4G, что расширенный сервис, который позволяет двусторонний трафик активировать, перезагружать и так много своих знаний, в мою подписку 3G / 4G, отлично работает с их конца, но я не могу получить никаких пакетов с Распи.
Huawei E3372s (в отличие от большинства старых палочек, которые используют набор номера, например wvdial
) использует систему CDC_ETH, которая создает в сети устройство типа Ethernet (ETH1 в данном случае) и должно работать в этом случае безупречно.
Я очистил, заново создал, протестировал, модифицировал, повторно очистил и снова выполнил все необходимые задачи с помощью IPTables, проверил, модифицировал и протестировал Route несколько раз, а также подтвердил, что нет известных блокирующих систем, препятствующих подключению через USB-Stick Huawei , но я до сих пор не могу получить даже Ping для моей системы, хотя есть полностью функциональные службы.
Я также проверил более простые и простые области, такие как хосты, разрешающие / запрещающие правила, и им не повезло. Это не имя APN, так как все настройки с внутренней конфигурацией Huawei установлены правильно, используя его веб-интерфейс.
Однако я случайно столкнулся с случайными форумами, что решение Huawei CDC_ETH может иметь недостатки, связанные с входящими соединениями с его драйвером.
В этот момент я нахожусь в отчаянном состоянии, пытаясь выяснить, почему я не могу получать входящие соединения.
Если у кого-либо из вас есть проблемы с входящим соединением Debian / Rasbian / Linux с Huawei E3372s или родственным продуктом USB 3G / 4G, которые используют CDC_ETH и нашли решение этой проблемы, вам будут очень благодарны любые советы и помощь.
Вам не требуется обновление прошивки, но вам нужен режим, который вы нашли, и дозвонщик, которого вы не нашли. Следующие конфигурационные файлы, взятые из NVDC Stuff Networking, Virtualization и Data Center Stuff, могут работать из коробки. Если вы не используете их как шаблон и настраиваете, пока он не начнет работать:
/etc/usb_modeswitch.conf
DefaultVendor=0x12d1 DefaultProduct=0x14fe TargetVendor= 0x12d1 TargetProduct= 0x1506 MessageContent="55534243123456780000000000000011062000000100000000000000000000"
/etc/wvdial.conf
[Dialer Defaults] Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 Init3 = AT+CGDCONT=1,"IP","internet.t-mobile.cz" Stupid Mode = 1 ISDN = 0 Modem Type = Analog Modem New PPPD = yes Phone = *99***# Modem = /dev/gsmmodem Username = { } Password = { } Baud = 9600
/dev/gsmmodem
в /dev/ttyUSB2
, то есть модем. Наберите внешний мир. Обратите внимание, что вы должны делать это каждый раз:
wvdial >/dev/null 2>&1 &
Добавьте в локальную среду сценариев запуска вашей системы следующее:
MODEM_STORAGE="12d1:14fe" MODEM_MODEM="12d1:1506" # 0 = storage, 1= modem MODEM_MODE=0 check_modem_mode () { echo -n "Checking modem presence... " lsusb | grep --quiet "$MODEM_STORAGE" if [ $? -eq 0 ]; then MODEM_MODE=0 echo "OK: modem in mass storage mode" else lsusb | grep --quiet "$MODEM_MODEM" if [ $? -eq 0 ]; then MODEM_MODE=1 echo "OK: modem in modem mode" else echo "ERROR: modem not found" exit 1 fi fi } set_modem_mode () { while [ $MODEM_MODE -eq 0 ] do echo -n "Setting modem mode... " usb_modeswitch -s 15 -I -H -c /etc/usb_modeswitch.conf >/dev/null 2>&1 lsusb | grep --quiet "$MODEM_MODEM" if [ $? -eq 0 ]; then MODEM_MODE=1 echo "OK" else echo "FAILED" fi done }
Как я объяснил в предыдущем сообщении , GSM-модем всегда имеет две или более части, в случае с этой моделью 3 части.
Пули 1 и 2 управляются через конфигурационный файл etc/modeswitch.conf
. 12d1
– это MAC-адрес поставщика, так сказать. Используя локальный скрипт, создается другой MAC-адрес. 12:D1:14:FE
, заканчивается как запоминающее устройство, а 12:D1:15:06
заканчивается модемом. Если вы не используете локальный скрипт, usb_modeswitch -s 15 -I -H -c /etc/usb_modeswitch.conf
Примечание. По умолчанию, т.е. без каких-либо режимов, Linux видит только устройство хранения, поэтому OP не может видеть или использовать PPP Dialer или Wireless Device .
После включения модема с помощью режима modewitch, wvdial или одной из многих замен, он контролирует доступ к внешнему миру. С модемом в режиме модема вы, наконец, увидите результат, похожий на:
wwan0 Link encap:Ethernet HWaddr 58:2c:80:13:93:13 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) ppp0 Link encap:Point-to-Point Protocol inet addr:10.83.249.176 PtP:10.64.64.64 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:4265 errors:0 dropped:0 overruns:0 frame:0 TX packets:6699 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:506706 (494.8 KiB) TX bytes:600991 (586.9 KiB)
при выпуске ifconfig
Я думаю, это проблема NAT. Даже если ISP не использует NAT-соединения, Huawei использует NAT для интерфейса eth1
.
Huawei имеет в основном два режима:
Существует много учебных пособий по изменению между двумя режимами путем прошивки другой прошивки. Однако, поскольку вы можете создать свой модем во время этого процесса, я воздерживаюсь от публикации конкретной ссылки.
В моем случае я обнаружил, что это то, что мне нужно для конфигурации usb_modeswitch
cat /etc/usb_modeswitch.d/huawei_e3372.conf # modeswitch config file for the huawei e3372 DefaultVendor=0x12d1 DefaultProduct=0x1f01 TargetVendor= 0x12d1 TargetProduct= 0x14dc MessageContent="55534243123456780000000000000011062000000100000000000000000000"
С помощью этой команды запустить и заставить модем работать.
sudo usb_modeswitch -s 15 -I -H -c /etc/usb_modeswitch.d/huawei_e3372.conf