Come impostare il tethering inverso tramite USB?


125
  1. Il mio telefono HTC G2 è rootato ed esegue Cyanogenmod 7
  2. Non ho un piano dati.
  3. A volte voglio connettere il telefono a Internet quando non c'è il Wi-Fi, aggiornare le app Market, eseguire il backup dei messaggi SMS su Gmail, sincronizzare i nuovi contatti da Gmail, ecc. Cose che non posso fare con la modalità di archiviazione di massa USB.
  4. Ho un computer Windows 7 Professional collegato a Internet, ma non mi è consentito configurare una rete Wi-Fi ad hoc. (Se lo faccio, se ne accorgeranno e mi daranno la caccia.)

Esiste un modo per il telefono di accedere a Internet tramite la connessione USB al computer? In tal caso, come lo installo?


Questo appare come una soluzione parziale: forum.xda-developers.com/showthread.php?t=1371345
endolith

Risposte:


46

Di recente ho scoperto SimpleRT che funziona molto bene con Linux (e apparentemente anche con OSX). Abilita semplicemente il debug USB sul tuo dispositivo (non è richiesto il root), installa l'APK collegato da quella pagina sul tuo dispositivo e collegalo al tuo PC tramite USB, quindi esegui il binario sul tuo PC.

Configurerà la connessione come tunnel VPN ( tun0per impostazione predefinita) e il dispositivo dovrebbe richiedere di (a) consentire a SimpleRT di creare / supervisionare la connessione VPN e (b) di eseguirla quando il dispositivo è configurato come particolare accessorio USB (che è ciò che fa il binario).

Il progetto non include un binario pre-costruito, quindi ne ho caricato uno che ho creato per Ubuntu .


Di seguito è riportato un metodo manuale che dovrebbe funzionare su Linux o Windows: http://blog.mathieu.carbou.me/post/60454997009/reverse-usb-tethering-with-android-2-2

PASSO 1:

Per Windows: installare i driver USB da Android SDK

Per Linux: niente da fare

PASSO 2:

Su Nexus One: collega il cavo USB e attiva il tethering USB. Dovresti vedere su Linux o Windows una nuova interfaccia di rete.

PASSAGGIO 3:

Su computer Linux, imposta un bridge:

# usb0 is the new network interface
# eth0 is the main interface connected to internet (or a gateway)

sudo ifconfig eth0 0.0.0.0  
sudo ifconfig usb0 0.0.0.0  
sudo brctl addbr br0  
sudo brctl addif br0 eth0  
sudo brctl addif br0 usb0  
sudo ifconfig br0 up  
sudo dhclient br0

Consulta https://help.ubuntu.com/community/NetworkConnectionBridge per configurare i bridge

Su Windows, Bridge le 2 interfacce di rete

PASSAGGIO 4:

Configura l'interfaccia usb0 del tuo telefono. Devi opzioni:

  1. Dal tuo computer, esegui:

    ./adb shell netcfg usb0 dhcp
  2. O in un terminale di root sul telefono, digitare:

    su
    netcfg usb0 dhcp

Ora dovresti essere in grado di connetterti a Internet sul tuo telefono usando la connessione Internet del tuo computer.

Prova a fare un ping www.google.com per essere sicuro!

PASSO 5:

Per disattivare il tethering inverso, prima di tutto disimballare le interfacce sul computer:

sudo ifconfig eth0 down  
sudo ifconfig usb0 down  
sudo ifconfig br0 down  
sudo brctl delbr br0  
sudo ifconfig eth0 up  
sudo dhclient eth0

Quindi sul tuo telefono, deseleziona l'opzione Tethering USB!

Puoi anche usare Windows per creare una rete WiFi (usando Connectify ) e connettere il tuo dispositivo a quello: http://www.nexusoneforum.net/forum/nexus-one-faq-how-tos/3133-reverse-tether-getting -Internet-your-phone.html


3
Nel mio telefono, "netcfg usb0 dhcp" dovrebbe essere "netcfg rdnis0 dhcp"
diyism,

3
Sul mio cyanogenmod 13, netcfg non può essere trovato :(
maf-soft

1
netcfg rimane mancante da LineageOS. Potresti invece aver bisogno di busybox. android.stackexchange.com/questions/141900/…
Camille Goudeseune

Durante l'esecuzione sudo ifconfig usb0 0.0.0.0 sto ricevendo SIOCSIFADDR: nessun dispositivo USB0: ERRORE durante il recupero dei flag di interfaccia: nessun dispositivo del genere
user1917769

@ user1917769 Dovrai capire come il tuo dispositivo nomina l'interfaccia USB se è diversa.
Matteo Leggi

19

Ci sono alcune possibilità in più - ma tutte quelle che conosco richiedono un dispositivo rooted.

Utilizzando il Reverse Tether app

Innanzitutto, c'è un'app chiamata Reverse Tether disponibile gratuitamente sul Play Store (è una prova limitata, che limita il tempo in cui puoi essere connesso - ma almeno puoi testare in questo modo se il tuo dispositivo è completamente supportato; la versione completa è circa 5 USD). Secondo un articolo su AndroidAuthority , l'installazione dovrebbe essere facile come 1-2-3: collega il cavo USB, avvia l'app, lascia che si configuri automaticamente (è disponibile anche la configurazione manuale) - e il gioco è fatto. Puoi anche lasciarti chiedere di connetterti quando trova una connessione USB.

Metodi manuali usando Wifi

Lo so, questo non è USB - ma per completezza (e dare alternative) ho pensato di aggiungere anche questi:

armeggiare con il sistema e rattoppare

Sono disponibili anche diversi metodi manuali (e descritti ad esempio in XDA ) - ma sono per lo più tecnicamente complessi e si aspettano che tu patch i file di sistema; non per l'utente di tutti i giorni, ma piuttosto per gli appassionati di tecnologia.

Terminale e via

Tuttavia, un altro buon metodo dovrebbe coinvolgere solo 3 linee nel terminale, ed è descritto in un post qui , per connettersi a una rete Wifi ad hoc. Fondamentalmente, dovrebbe andare così:

su
ifconfig wlan0 up
iwconfig mode auto;
iwconfig wlan0 essid "your SSID" channel 11 mode auto
ifconfig wlan0 10.0.0.x netmask 255.255.255.0

manipolando alcuni file di configurazione

Un altro metodo abbastanza semplice è anche descritto qui e prevede la modifica del wpa_supplicant.conffile una volta (aggiunta manuale della rete Wifi ad hoc).

Metodo Easy-Peasy

Devo dire davvero? Usa un router Wifi. Ci sono anche dei piccoli "Router di viaggio" in giro per meno di 50 USD. E poi connetti il ​​tuo telefono come lo usi per connetterlo ad altre reti Wifi ...


7

Hey! c'è un'app per questo

Inoltro porta Usb Android
http://www.codeproject.com/kb/android/usbportforwarding.aspx

Sono un po 'confuso su come usarlo, per favore informa se lo fai funzionare perfettamente.


1
Ciò a quanto pare richiede un proxy diverso dal computer stesso e supporta solo la navigazione Web?
endolith,

1
Dice che utilizza la porta 8080, che non si limita necessariamente alla navigazione web, vero? Pensavo che Market potesse usarlo, tuttavia Market usa il post 5228.
Steve,

3

So che questa è una risposta anche più tardi, ma vale la pena menzionarla.

Non è necessario il rooting!

Nessuna installazione di app necessaria! * Il che non è nemmeno possibile se non si dispone di un'altra connessione Internet.

C'è un progetto chiamato gnirehtet .

  1. Installa adb sul PC host (Windows / Linux / Mac)
  2. Scarica il file zip gnirehtet sull'host
  3. Decomprimilo
  4. Esegui il comando

Questo è tutto! Per maggiori informazioni, leggi il file readme di gnirehtet sul loro sito web.

* = Dietro le quinte installerà un file apk sul tuo dispositivo tramite la connessione USB.


Qui è disponibile solo una risposta non commerciale a pieno titolo multipiattaforma. Anche Google Play si collega (Android 9 Pie).
cdlvcdlv,

2

Ho trovato un buon strumento per il tethering inverso sul forum degli sviluppatori di xda. Si chiama Android Reverse Tethering . Funziona con Windows e richiede un telefono rootato.
Funziona bene sul mio HTC Desire HD con MIUI v4.


Sto usando questo software che funziona perfettamente su duosgts7562 mt galaxy. Sono in grado di utilizzare tutte le cose relative a Internet tramite il tethering inverso.
Jasser,

Per utilizzare YouTube e altre app simili è necessario fare clic sul pulsante Installa hack, quindi si è pronti per partire.
Jasser,

2

Passaggi di tethering inverso per Android:

Nota: funziona solo su un telefono Android rootato.

  1. Collega il dispositivo Android tramite USB.
  2. Abilita tethering USB. Per fare ciò, vai su Impostazioni → Altro ... → Tethering e hotspot mobile → Tethering USB .

  3. Sul computer host, la connessione tethering USB potrebbe essere rilevata dal gestore della rete.
    Il suo nome sarà simile a "Connessione cablata 2" (o 3).
    È necessario modificare "IPV4 / Metodo" su "Condiviso con altri computer".

3.1. Senza il gestore della rete, dovrai farlo manualmente:

    $ sudo ifconfig usb0 10.42.0.1 netmask 255.255.255.0 
    $ echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward

Ora, come spiegato qui alla fine di Step1 è necessario modificare iptablescon sudo iptables -t nat -A POSTROUTING -j MASQUERADE. Ma ... preferisci consentire al gestore della rete di farlo, se possibile.

  1. Sul dispositivo Android, è possibile emettere questi comandi utilizzando un terminale con sulì, o dal computer host utilizzando ADB:

    $ adb shell su -c "netcfg rndis0 dhcp"
    

    Se non ottiene l'indirizzo IP o se stai utilizzando un'applicazione che è auspicabile un indirizzo IP statico come l'app "Webkey per Android", assegnalo manualmente:

    $ adb shell su -c "ifconfig rndis0 10.42.0.2 netmask 255.255.255.0"
    $ adb shell su -c "route add default gw 10.42.0.1 dev rndis0"
    

Ora Internet funzionerebbe nel telefono Android.

Per controllare, sul adb shellterminale Android o, provare il comando ping www.google.com.

Per me funziona.


1
Il netcfg del mio dispositivo sembra essere più limitato e la versione manuale del passaggio 4 non riesce: no such action '10.42.0.2' usage: netcfg [<interface> {dhcp|up|down}]
Matthew Leggi

1
@MatthewLeggi il comando è sbagliato, in realtà ifconfig rndis0 10.42.0.2 netmask 255.255.255.0, tra l'altro, vedere tutte le interfacce è netcfgsolo. istruzioni simili sono dettagliate qui
Aquarius Power,

2

Per dispositivi non rootati

So che questa è una risposta tardiva, ma poiché tutte le risposte esistenti suggeriscono che il tethering inverso USB è possibile solo se il tuo dispositivo è rootato o ha il supporto di sistema per il tethering inverso, penso che varrebbe la pena sottolineare che c'è un'altra opzione:

Stavo cercando una soluzione di tethering inverso che funzionasse sui miei dispositivi non root e con un MacBook, ma non riuscivo a trovare nulla. Alla fine, ho iniziato a sviluppare la mia soluzione. Il risultato è un'app che funziona su dispositivi che eseguono Android 4.0 o versioni successive sul lato client e tutti i principali sistemi operativi desktop sul lato host.

L'app NoRoot di ReverseTethering

L'app è disponibile su Google Play: ReverseTethering NoRoot


1
Non riuscivo a collegarmi su Windows o Ubuntu, ma sembrava funzionare su OSX.
Matteo Leggi il

@MatthewRead Inviami un'e-mail e farò del mio meglio per aiutarti a farlo funzionare su Windows e Ubuntu.
FD_
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.