Como configurar o tethering reverso via USB?


125
  1. Meu celular HTC G2 está enraizado e executando o Cyanogenmod 7
  2. Eu não tenho um plano de dados.
  3. Às vezes, quero conectar o telefone à Internet quando não há Wi-Fi, atualizar aplicativos do Market, fazer backup de mensagens SMS no Gmail, sincronizar novos contatos do Gmail etc. Coisas que não consigo fazer no modo de armazenamento em massa USB.
  4. Eu tenho um computador com Windows 7 Professional conectado à Internet, mas não tenho permissão para configurar uma rede Wi-Fi ad-hoc. (Se eu fizer isso, eles vão perceber e me caçar.)

Existe uma maneira de o telefone acessar a Internet através da conexão USB com o computador? Se sim, como faço para configurá-lo?


Este parece ser uma solução parcial: forum.xda-developers.com/showthread.php?t=1371345
endolith

Respostas:


46

Eu descobri recentemente o SimpleRT, que funciona muito bem com o Linux (e aparentemente também com o OSX). Basta ativar a Depuração USB no seu dispositivo (sem necessidade de raiz), instalar o APK vinculado a partir dessa página no seu dispositivo e conectá-lo ao seu PC via USB, e depois executar o binário no seu PC.

Ele configurará a conexão como um túnel VPN ( tun0por padrão) e seu dispositivo solicitará que você (a) permita que o SimpleRT crie / supervisione a conexão VPN e (b) execute-a quando o dispositivo estiver configurado como um acessório USB específico (que é o que o binário faz).

O projeto não inclui um binário pré-criado, então eu enviei um que eu criei para o Ubuntu .


Abaixo está um método manual que deve funcionar no Linux ou Windows: http://blog.mathieu.carbou.me/post/60454997009/reverse-usb-tethering-with-android-2-2

PASSO 1:

Para Windows: instale drivers USB do Android SDK

Para Linux: nada a ver

PASSO 2:

No Nexus One: conecte o cabo USB e ative o Tethering USB. Você deve ver no linux ou no Windows uma nova interface de rede.

ETAPA 3:

No computador Linux, configure uma ponte:

# 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

Consulte https://help.ubuntu.com/community/NetworkConnectionBridge para configurar pontes

No Windows, faça a ponte das 2 interfaces de rede

PASSO 4:

Configure a interface usb0 do seu telefone. Você tem as opções:

  1. No seu computador, execute:

    ./adb shell netcfg usb0 dhcp
  2. Ou em um terminal raiz no seu telefone, digite:

    su
    netcfg usb0 dhcp

Agora você deve conseguir se conectar à Internet no seu telefone usando a conexão com a Internet do seu computador.

Tente fazer um ping em www.google.com para ter certeza!

PASSO 5:

Para desligar o tethering reverso, primeiro desinstale as interfaces no seu computador:

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

Em seguida, no seu telefone, desmarque a opção Tethering USB!

Você também pode usar o Windows para criar uma rede WiFi (usando o Connectify ) e conectar seu dispositivo a isso: http://www.nexusoneforum.net/forum/nexus-one-faq-how-tos/3133-reverse-tether-getting -internet-your-phone.html


3
No meu telefone, "netcfg dhcp usb0" deve ser "netcfg rdnis0 dhcp"
diyism

3
No meu cyanogenmod 13, o netcfg não pode ser encontrado :(
maf-soft

1
O netcfg permanece ausente do LineageOS. Você pode precisar do busybox. O que você está
esperando?

Na corrida sudo ifconfig usb0 0.0.0.0 eu estou ficando SIOCSIFADDR: No such usb0 dispositivo: Erro ao obter bandeiras de interface: Nenhum tal dispositivo
user1917769

@ user1917769 Você terá que descobrir como o seu dispositivo nomeia a interface USB, se for diferente.
Matthew Leia

19

Existem mais possibilidades - mas todas elas que conheço exigem um dispositivo enraizado.

Usando o aplicativo Reverse Tether

Primeiro, há um aplicativo chamado Reverse Tether disponível gratuitamente na Play Store (é uma avaliação limitada, que restringe o tempo em que você pode se conectar - mas pelo menos você pode testar dessa maneira se o seu dispositivo é totalmente compatível; a versão completa é cerca de USD 5). De acordo com um artigo da AndroidAuthority , a configuração deve ser tão fácil quanto 1-2-3: conecte o cabo USB, inicie o aplicativo, deixe-o configurar automaticamente (a configuração manual também está disponível) - e pronto. Você também pode solicitar que você se conecte quando encontrar uma conexão USB.

Métodos manuais usando Wifi

Eu sei, isso não é USB - mas, para ser completo (e dar alternativas), pensei em adicionar esses itens também:

brincando com o sistema e remendando

Vários métodos manuais também estão disponíveis (e descritos, por exemplo, no XDA ) - mas eles são tecnicamente complexos e esperam que você corrija os arquivos do sistema; não para os usuários do dia-a-dia, mas para os fãs de tecnologia.

Terminal e vá

No entanto, outro método interessante deve envolver apenas três linhas no terminal, e é descrito em um post aqui , para conectar-se a uma rede Wifi ad-hoc. Basicamente, deve ser assim:

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

manipulando algum arquivo de configuração

Outro método bastante fácil também é descrito aqui e envolve a edição do wpa_supplicant.confarquivo uma vez (adição manual da sua rede Wifi ad-hoc).

Método Easy-Peasy

Preciso dizer mesmo? Use um roteador Wifi. Existem até alguns "roteadores de viagem" por menos de US $ 50. E conecte seu telefone como você usa para conectá-lo a outras redes Wi-Fi ...


7

Ei! Há um aplicativo para isso

Encaminhamento de porta USB do Android
http://www.codeproject.com/kb/android/usbportforwarding.aspx

Estou um pouco confuso sobre como usá-lo, por favor, informe se você está funcionando perfeitamente.


1
Aparentemente, isso requer um proxy que não seja o próprio computador e suporta apenas navegação na web?
endolith

1
Ele diz que usa a porta 8080, que não a restringe necessariamente à navegação na web, pois não? Pensei Mercado poderia usar isso, no entanto Mercado usa pós 5228.
Steve

3

Eu sei que esta é uma resposta ainda mais tarde, mas vale a pena mencionar.

Não é necessário fazer o enraizamento!

Nenhuma instalação de aplicativo é necessária! * O que nem é possível se você não tiver outra conexão com a Internet.

Existe um projeto chamado gnirehtet .

  1. Instale o adb no PC host (Windows / Linux / Mac)
  2. Faça o download do arquivo zip do gnirehtet para o host
  3. Descompacte
  4. Execute o comando

É isso aí! Para mais informações, leia o arquivo leia-me do gnirehtet em seu site.

* = Nos bastidores, ele instalará um arquivo apk no seu dispositivo através da conexão USB.


Somente resposta não comercial de trabalho completo em várias plataformas aqui. Até o Google Play se conecta (Android 9 Pie).
cdlvcdlv 26/09

2

Encontrei uma boa ferramenta para tethering reverso no fórum xda-developers. Chama-se Android Reverse Tethering . Funciona com o Windows e requer um telefone raiz.
Funciona bem no meu HTC Desire HD executando o MIUI v4.


Estou usando este software que funciona perfeitamente no mt galaxy s duosgts7562. Sou capaz de usar todas as coisas relacionadas à Internet por meio de tethering reverso.
Jasser

Para usar o youtube e outros aplicativos, você precisa clicar no botão instalar hack e está pronto para começar.
Jasser

2

Etapas de compartilhamento reverso do Android:

Nota: Funciona apenas em um telefone Android com raiz.

  1. Conecte o dispositivo Android via USB.
  2. Ative o compartilhamento USB. Para fazer isso, vá para Configurações → Mais ... → Tethering e ponto de acesso móvel → Tethering USB .

  3. Na máquina host, a conexão do tethering USB pode ser detectada pelo gerente da rede.
    Seu nome será algo como "Conexão com fio 2" (ou 3).
    Você deve editar "IPV4 / Method" para "Shared to other computadores".

3.1 Sem o gerenciador de rede, você precisará fazer isso manualmente:

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

Agora, conforme explicado aqui no final da Etapa 1, você deve modificar iptablescom sudo iptables -t nat -A POSTROUTING -j MASQUERADE. Mas ... prefiro permitir que o gerente de rede faça isso, se possível.

  1. No dispositivo Android, você pode emitir estes comandos usando um terminal com suele ou a partir da sua máquina host usando o ADB:

    $ adb shell su -c "netcfg rndis0 dhcp"
    

    Se ele não obtiver o endereço IP ou se você estiver usando algum aplicativo que seja desejável, como o aplicativo "Webkey para Android", atribua-o 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"
    

Agora a internet estaria funcionando no telefone Android.

Para verificar, pelo adb shellou terminal Android, tente o comando ping www.google.com.

Funciona para mim.


1
O netcfg do meu dispositivo parece ser mais limitado e a versão manual da etapa 4 falha: no such action '10.42.0.2' usage: netcfg [<interface> {dhcp|up|down}]
Matthew Leia

1
@ MatthewLeia que o comando está errado, na verdade ifconfig rndis0 10.42.0.2 netmask 255.255.255.0, aliás, ver que todas as interfaces estão netcfgsozinhas. instruções semelhantes são detalhadas aqui
Aquarius Power

2

Para dispositivos não raiz

Sei que esta é uma resposta tardia, mas como todas as respostas existentes sugerem que o tethering reverso USB só é possível se o dispositivo estiver enraizado ou tiver suporte de sistema para tethering reverso, acho que vale a pena ressaltar que há mais uma opção:

Eu estava procurando por uma solução de amarração reversa que funcionasse nos meus dispositivos não raiz e com um MacBook, mas não consegui encontrar nada. Eventualmente, comecei a desenvolver minha própria solução. O resultado é um aplicativo que funciona em dispositivos com Android 4.0 ou superior no lado do cliente e em todos os principais sistemas operacionais de desktop no host.

O aplicativo ReverseTethering NoRoot

O aplicativo está disponível no Google Play: ReverseTethering NoRoot


1
Não consegui conectar isso no Windows ou no Ubuntu, mas parecia funcionar no OSX.
Mateus Leia

@MatthewRead Envie-me um e-mail e darei o meu melhor para ajudá-lo a funcionar no Windows e no Ubuntu.
FD_ 25/09/16
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.