Benutzer-Werkzeuge

Webseiten-Werkzeuge


huawei_e3372
  • LTE-Stick
  • funktioniert unter Linux
    • das Gerät kann in 2 Modi arbeiten (jeweils einer ist zu einem Zeitpunkt nur aktiv)
      • als Speicher (darauf sind die Treiber für Windows zu finden)
      • oder als Netzwerkkarte (das ist das was man will)
      • umgeschaltet werden kann per usb_modeswitch
        • viele Linux-Distributionen haben eingebaute udev-Regeln die das automatisch machen
  • das Gerät funktioniert als Netzwerkkarte und simuliert einen NAT-Router zum Mobilfunknetz
    • es agiert also NICHT als Modem
    • wenn es im richtigen Modus ist (lsusb listet es als 12d1:14dc → ansonsten muss man modeswitch nutzen)
    • Treiber ist cdc_ether
    • es erscheint eine Netzwerkkarte per Default mit einer IP im Bereich 192.168.8.x (in der Regel 100)
    • die IP des „Gateways“ ist per Default 192.168.8.1
      • wird standardmäßig als Default-Gateway automatisch eingetragen
  • die Konfigurationsoberfläche ist per 192.168.8.1 erreichbar
  • der Stick kann auch noch mehr IP-Adressen vergeben (und damit ein ganzes Netzwerk mit dem Mobilfunk verbinden)
    • der Adressbereich ist anpassbar (192.168.x.x - die ersten beiden Oktets sind fix)

Troubleshooting

Problem Lösung
Verbindung wird ohne Datenübertragung nach kurzer Zeit getrennt Der Stick hat ein Timeout nach dem er sich (wenn keine Daten übertragen werden) vom Mobilfunknetz trennt.
Bei einigen Versionen? lässt sich dieser unter Settings → Mobile Connection erhöhen, bei anderen Versionen? gibt es diese Schaltfläche nicht.
Grundsätzlich lässt er sich aber bis auf 24 Stunden erhöhen, in dem man das über die Web-API des Sticks macht, mit folgendem Script:

#!/bin/bash
  
DATA=`curl http://192.168.8.1/api/webserver/SesTokInfo`
SESSION_ID=`echo "$DATA" | grep "SessionID=" | cut -b 10-147`
TOKEN=`echo "$DATA" | grep "TokInfo" | cut -b 10-41`

curl http://192.168.8.1/api/dialup/connection -H "Cookie: $SESSION_ID" -H "__RequestVerificationToken: $TOKEN" --data '<?xml version="2.0" encoding="UTF-8"?><request><RoamAutoConnectEnable>0</RoamAutoConnectEnable><MaxIdelTime>86400</MaxIdelTime><ConnectMode>0</ConnectMode><MTU>1500</MTU><auto_dial_switch>1</auto_dial_switch><pdp_always_on>0</pdp_always_on></request>'
Das Script ist von hier geklaut: https://blog.idorobots.org/entries/hacking-huawei-e3372-hilink..html

Web-API

  • Nicht alle Einstellungen sind über die Weboberfläche erreichbar
  • außerdem ist die Weboberfläche nicht einfach scriptbar
    • man benötigt eine Session-ID und einen Token

Über diesen Call + folgende Befehle bekommt man die notwendige Session-ID und das Token:

DATA=`curl http://192.168.8.1/api/webserver/SesTokInfo`
SESSION_ID=`echo "$DATA" | grep "SessionID=" | cut -b 10-147`
TOKEN=`echo "$DATA" | grep "TokInfo" | cut -b 10-41`

Hier ein Beispiel für einen Call:

curl http://192.168.8.1/api/dialup/connection -H "Cookie: $SESSION_ID" -H "__RequestVerificationToken: $TOKEN" --data '<?xml version="2.0" encoding="UTF-8"?><request><RoamAutoConnectEnable>0</RoamAutoConnectEnable><MaxIdelTime>86400</MaxIdelTime><ConnectMode>0</ConnectMode><MTU>1500</MTU><auto_dial_switch>1</auto_dial_switch><pdp_always_on>0</pdp_always_on></request>'

huawei_e3372.txt · Zuletzt geändert: 2022/08/29 19:38 von root