How do I set pre-computed keys in firewall DD-WRT?

USB Tethering med Android i DD-WRT

20/10/2022

Rating: 4.08 (14288 votes)

USB Tethering med Android på din DD-WRT Router

At omdanne din DD-WRT-udstyrede router til et kraftcenter for internetdeling via din Android-telefon er en attraktiv mulighed for mange. Denne guide vil dykke ned i de nødvendige trin for at opnå USB tethering, så du kan dele din mobildataforbindelse på tværs af dit hjemmenetværk. Vi vil dække alt fra grundlæggende opsætning til mere avancerede konfigurationer og fejlfinding, så du kan få mest muligt ud af denne funktionalitet.

How do I set pre-computed keys in firewall DD-WRT?
Indholdsfortegnelse

Forudsætninger og Grundlæggende Tjek

Før du kaster dig ud i opsætningen, er det vigtigt at sikre, at din router og telefon er klar til opgaven. Dette inkluderer at have den rette DD-WRT-firmwareversion og at din telefon er forberedt til USB tethering.

Nødvendige DD-WRT Kernel Moduler

For at USB tethering kan fungere, skal din DD-WRT-firmware indeholde specifikke kernel moduler. De vigtigste er cdc_ether.ko og rndis_host.ko. Disse moduler er afgørende for, at routeren kan genkende og kommunikere med din telefon som en netværksenhed.

Sådan tjekker du, om modulerne er til stede:

  1. Log ind på din DD-WRT router via Telnet eller SSH.
  2. Kør kommandoen: ls /lib/modules/$(uname -r)/ | grep usbnet. Du bør se usbnet.ko listet.
  3. Kør derefter: ls /lib/modules/$(uname -r)/ | grep cdc_ether. cdc_ether.ko skal vises.
  4. Kør til sidst: ls /lib/modules/$(uname -r)/ | grep rndis_host. rndis_host.ko skal også vises.

Hvis et eller flere af disse moduler mangler, kan det være nødvendigt at finde en større DD-WRT-firmwareversion, der inkluderer dem, eller i værste fald overveje en alternativ firmware som OpenWRT (hvis din router understøttes).

Forberedelse af din Android-telefon

Din telefon skal konfigureres til at tillade USB tethering:

  • USB-kabel: Brug et USB-kabel, som du ved fungerer til dataoverførsel.
  • Udviklerindstillinger: Aktiver Udviklerindstillinger på din telefon ved at trykke 7 gange på 'Build-nummer' under 'Om telefonen'.
  • Standard USB-konfiguration: I Udviklerindstillinger skal du finde 'Standard USB-konfiguration' og sætte den til 'USB tethering'.
  • Skærmlås: Deaktiver midlertidigt skærmlås (PIN, mønster osv.) på din telefon. Dette er nødvendigt for, at USB tethering kan aktiveres automatisk under routerens opstart.

Opsætning af USB Tethering i DD-WRT

Når du har bekræftet forudsætningerne, kan du begynde selve opsætningen på din DD-WRT router.

Grundlæggende Routerkonfiguration

  1. Nulstil Routeren: Det anbefales at nulstille din router til fabriksindstillingerne for at undgå konflikter med eksisterende indstillinger. Husk at tage backup af dine nuværende indstillinger, hvis du har lavet brugerdefinerede konfigurationer.
    • Gå til Administration -> Backup for at gemme dine indstillinger.
    • Gå til Administration -> Factory Defaults og vælg den relevante nulstillingsmulighed.
  2. WAN-indstillinger:
    • Gå til Setup -> Basic Setup.
    • Sæt 'WAN Connection Type' til Automatic DHCP.
    • Indstil 'MTU' manuelt til en værdi mellem 1200 og 1428 (f.eks. 1400). Dette kan hjælpe med at forhindre forbindelsesproblemer.
    • Indstil din tidszone korrekt.
    • Klik Save & Apply.
  3. Aktiver USB Support:
    • Gå til Services -> USB.
    • Sørg for, at 'Core USB Support' er aktiveret.
    • Klik Save & Apply.

Manuel Indlæsning af Moduler og Opsætning

Nu skal vi manuelt indlæse de nødvendige USB-moduler og konfigurere netværksinterfacet.

  1. Forbind din telefon: Tilslut din Android-telefon til routerens USB-port med det forberedte USB-kabel. Sørg for, at telefonen er tændt og ulåst.

    Bemærk: USB tethering bør nu aktiveres automatisk på telefonen. Ignorer eventuelle pop-up-meddelelser på telefonen.

    How do I set pre-computed keys in firewall DD-WRT?

  2. Telnet/SSH ind i routeren:
    • Åbn en Telnet- eller SSH-klient (f.eks. PuTTY).
    • Forbind til din routers IP-adresse (typisk 192.168.1.1).
  3. Indlæs modulerne: Indtast følgende kommandoer én efter én og tryk Enter efter hver:
    insmod usbnet.ko insmod cdc_ether.ko insmod rndis_host.ko

    Disse kommandoer indlæser de nødvendige drivere i routerens kerne. For at verificere, at de kører, kan du bruge kommandoen lsmod og lede efter usbnet, cdc_ether og rndis_host.

  4. Konfigurer USB-interfacet:
    ifconfig usb0 up udhcpc -i usb0

    ifconfig usb0 up aktiverer USB0-interfacet, og udhcpc -i usb0 starter en DHCP-klient for at hente en IP-adresse fra din udbyder via telefonen.

  5. Test internetforbindelsen: Fra Telnet/SSH-prompten kan du nu prøve at pinge en ekstern server:
    ping google.com

    Hvis du kan pinge succesfuldt, er forbindelsen etableret. Tryk Ctrl+C for at stoppe ping.

Konfiguration af Firewall og Routing

For at tillade enheder på dit lokale netværk at bruge internetforbindelsen via USB tethering, skal vi konfigurere firewallen og routingreglerne.

NAT og Forwarding

Disse kommandoer opsætter Network Address Translation (NAT) og tillader trafikken at blive videresendt mellem dit lokale netværk (br0) og USB-interfacet (usb0).

iptables -t nat -A POSTROUTING -o usb0 -j MASQUERADE iptables -A FORWARD -i br0 -j ACCEPT

MSS Clamping (Vigtigt!)

Mange mobiludbydere har specifikke MTU-krav, der kan forårsage problemer med visse typer trafik (f.eks. webbrowsing). MSS clamping hjælper med at løse dette ved at justere TCP Maximum Segment Size.

iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

Fejlfinding af 'Ingen internet' problemer: Hvis enheder på dit netværk kan forbinde til Wi-Fi, men ikke får internetadgang, er MSS clamping ofte løsningen. Symptomet kan være, at telefonen rapporterer 'Ingen internet' periodisk.

Does DD-WRT have CDC_ether and RNDIS_host?
This guide assumes that the build you downloaded and flashed of DD-WRT, has the modules cdc_ether.ko and rndis_host.ko, which are not present on some builds (regardless of build size) but required for USB tethering.

Skjule Tethering (Valgfrit)

Nogle mobiludbydere forsøger at registrere og begrænse USB tethering. Du kan forsøge at skjule trafikken ved at ændre TTL (Time To Live) værdien på pakkerne. Værdien '65' er et almindeligt udgangspunkt, men kan variere.

iptables -t mangle -I POSTROUTING -o $(get_wanface) -j TTL --ttl-set 65 iptables -t mangle -I PREROUTING -i $(get_wanface) -j TTL --ttl-set 65

$(get_wanface) vil dynamisk identificere dit WAN-interface, som i dette tilfælde er usb0.

Gør Konfigurationen Permanent (Startup Script)

For at disse indstillinger skal aktiveres automatisk, hver gang routeren starter, skal de tilføjes til startup-scriptet.

  1. Gå til Administration -> Commands.
  2. I feltet 'Startup' skal du indsætte følgende kommandoer:
    # Indlæs nødvendige moduler insmod usbnet.ko insmod cdc_ether.ko insmod rndis_host.ko # Aktiver og start DHCP på USB-interfacet ifconfig usb0 up udhcpc -i usb0 # Giv tid til at forbinde (juster om nødvendigt) sleep 5 # Firewall og routing regler iptables -t nat -A POSTROUTING -o usb0 -j MASQUERADE iptables -A FORWARD -i br0 -j ACCEPT iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu # Valgfri TTL ændring for at skjule tethering iptables -t mangle -I POSTROUTING -o $(get_wanface) -j TTL --ttl-set 65 iptables -t mangle -I PREROUTING -i $(get_wanface) -j TTL --ttl-set 65
  3. Klik på Save Startup.

Opsummering og Fejlfinding

Tabel over Kommandoer

Her er en oversigt over de centrale kommandoer brugt i denne guide:

FormålKommando
Indlæs USB netværksmodulerinsmod usbnet.ko
insmod cdc_ether.ko
insmod rndis_host.ko
Aktiver USB interfaceifconfig usb0 up
Start DHCP klientudhcpc -i usb0
Opsæt NATiptables -t nat -A POSTROUTING -o usb0 -j MASQUERADE
Tillad forwardingiptables -A FORWARD -i br0 -j ACCEPT
MSS Clampingiptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
Skjul Tethering (TTL)iptables -t mangle -I POSTROUTING -o $(get_wanface) -j TTL --ttl-set 65

Almindelige Problemer og Løsninger

  • Moduler mangler: Som nævnt tidligere, tjek din firmwareversion. Overvej en anden build eller OpenWRT.
  • Telefonen genkendes ikke: Prøv et andet USB-kabel eller en anden USB-port på routeren. Sørg for, at telefonen er ulåst og USB tethering er aktiveret i dens indstillinger.
  • Ingen internet på klienter: Dobbelttjek dine iptables-regler, især MSS clamping. Genstart routeren og telefonen.
  • Ustabile forbindelser: Kan skyldes dårlig mobildækning, telefonens hardware eller begrænsninger fra mobiludbyderen. Prøv at justere MTU-værdien.

Avanceret: Kompilering af Kernel Moduler

Hvis din DD-WRT-firmware absolut mangler de nødvendige moduler, og du er teknisk anlagt, kan du kompilere dem selv. Dette er en avanceret proces, der kræver opsætning af et build-miljø.

Processen involverer typisk:

  1. Download og opsætning af det korrekte toolchain for din routers CPU-arkitektur.
  2. Download af DD-WRT's Linux-kerne kildekode.
  3. Konfiguration af kernen til at inkludere CONFIG_USB_USBNET=m, CONFIG_USB_NET_CDCETHER=m, og CONFIG_USB_NET_RNDIS_HOST=m.
  4. Kompilering af modulerne (cdc_ether.ko og rndis_host.ko).
  5. Manuel indlæsning af de kompilerede moduler eller inkludering i firmwaren.

Dette kræver betydelig teknisk viden og er uden for rammerne af denne grundlæggende guide. Det er ofte nemmere at finde en passende firmware eller bruge en router med bedre understøttelse af USB tethering ud af boksen.

Konklusion

At sætte USB tethering op med din Android-telefon på en DD-WRT-router kan give dig en fleksibel og ofte omkostningseffektiv internetløsning. Selvom det kan kræve lidt fejlfinding, giver denne guide dig de nødvendige trin til at etablere og vedligeholde forbindelsen. Husk altid at gemme dine indstillinger og være opmærksom på din mobildataforbruger, da der kan være begrænsninger fra din udbyder.

Hvis du vil læse andre artikler, der ligner USB Tethering med Android i DD-WRT, kan du besøge kategorien Teknologi.

Go up