GNU/Linux >> Linux Esercitazione >  >> Linux

Android - Come si configura il pass-through Internet (reverse-tether) su Linux?

Quanto segue funziona per un po', ma solo per il browser.

Quando colleghi il telefono tramite USB e scegli Internet pass-through, dovresti ottenere un nuovo dispositivo RNDIS (usb0 o usb1). Per Ubuntu, modifica /etc/network/interfaces e aggiungi le seguenti righe:

iface usb0 inet dhcp
iface usb1 inet dhcp

Questo assegnerà automaticamente un IP quando il dispositivo viene aggiunto. Se un indirizzo di rete non viene assegnato automaticamente a usb0 o usb1, devi farlo manualmente.

Quindi devi configurare NAT sul tuo computer Linux. Qualcosa come:

sudo iptables -A POSTROUTING -t nat -j MASQUERADE
sudo echo 1 > /proc/sys/net/ipv4/ip_forward 

Hai anche bisogno di un server DNS:

sudo apt-get install bind9

Funziona per alcuni minuti, ma dopo un po' il telefono smette di cercare HTC Sync e si disconnette.

Per i telefoni rooted

Puoi connetterti in modo permanente se hai un telefono rootato (fre3vo ha funzionato per me). Esegui quanto segue con adb.

Abilita la modalità USB per rete e adb:

adb shell echo 6 > /sys/devices/platform/msm_hsusb/usb_function_switch

Assegna un IP al dispositivo usb0 sul telefono:

adb shell ifconfig usb0 192.168.99.5 netmask 255.255.255.0 up

Aggiungi un percorso predefinito. L'IP dovrebbe essere l'IP assegnato a usb0 in linux:

adb shell route add default gw 192.168.99.1 dev usb0

Imposta il server DNS. Questo è il server DNS aperto di Google, ma può essere l'IP del tuo computer Linux se hai un server DNS:

adb shell setprop net.dns1 8.8.8.8

A ha creato questo piccolo bash per automatizzare tutto. Basta collegare il telefono in modalità di ricarica al computer ed eseguire questo bash.

#!/bin/bash
/opt/android-sdk-update-manager/platform-tools/adb shell 'echo 6 > /sys/devices/platform/msm_hsusb/usb_function_switch'
sleep 1
/opt/android-sdk-update-manager/platform-tools/adb shell ifconfig usb0 192.168.99.5 netmask 255.255.255.0 up
sleep 1
/opt/android-sdk-update-manager/platform-tools/adb shell setprop net.dns1 8.8.8.8

get_ip ()
{
ifconfig usb0 | grep inet | awk '{print $2}' | sed 's/addr://' | grep .
}

echo "waiting for IP on computer usb0"
while [[ `get_ip` < 192 ]];do sleep 2; done
ip=`get_ip`
echo "IP adress is $ip "
/opt/android-sdk-update-manager/platform-tools/adb shell route add default gw $ip dev usb0
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Linux
  1. Come impostare la tua variabile $PATH in Linux

  2. Come impostare o modificare il nome host del sistema in Linux

  3. Come trovare quale shell stai usando su Linux

  4. Come impostare la variabile $ Path in Linux

  5. rbash – Imposta la shell con restrizioni in Linux

Come impostare o modificare il nome host in Linux

Come impostare la pianificazione dei torrent su Linux

Come utilizzare il terminale Linux in Android

Come installare Kali Linux nel telefono Android

Come impostare o modificare il nome host su Linux

Come modificare una shell utente in Linux