Eu tenho um HTC Desire S que tem a opção de conectar através de usb e usar a conexão de internet do computador. Isso funciona bem no Windows, mas estou lutando para configurá-lo no Ubuntu. Quando conecto e seleciono o acesso à Internet no menu usb, o dispositivo usb1 é criado e posso executar ping no endereço IP. Eu tentei várias configurações do iptables e defini o nat, mas não tenho certeza se estou fazendo certo ou se precisa haver alguma configuração adicional ...
Obrigado por qualquer ajuda.
linux
internet
reverse-tether
cinza azulado
fonte
fonte
Respostas:
O seguinte funciona por um tempo, mas apenas para o navegador.
Ao conectar o telefone via usb e escolher a passagem pela Internet, você deve obter um novo dispositivo RNDIS (usb0 ou usb1). Para o ubuntu, edite o / etc / network / interfaces e adicione as seguintes linhas:
Isso atribuirá um IP automaticamente quando o dispositivo for adicionado. Se um endereço de rede não for atribuído automaticamente a usb0 ou usb1, você deverá fazê-lo manualmente.
Então você precisa configurar o NAT no seu computador Linux. Algo como:
Você também precisa de um servidor DNS:
Isso funciona por alguns minutos, mas depois de um tempo o telefone desiste de procurar o HTC Sync e se desconecta.
Para telefones com root
Você pode se conectar permanentemente se tiver um telefone raiz (o fre3vo funcionou para mim). Execute o seguinte com adb.
Ative o modo usb para rede e adb:
Atribua um IP ao dispositivo usb0 no telefone:
Adicione uma rota padrão. O IP deve ser o IP atribuído a usb0 no linux:
Defina o servidor DNS. Este é o servidor DNS aberto do Google, mas pode ser o IP do seu computador Linux se você tiver um servidor DNS:
fonte
phoneip=$(arp -n | grep usb | awk '{print $1}') echo -n -e "\x00\x02\x00\x00" | nc $phoneip 6000 > /dev/null
O valor hexadecimal de00 02 00 00
é tudo o que ele está procurando.netsh interface ip show config
para ver todos os nomes de interface enetsh interface ip show config name="Local Area Connection #2"
obter apenas essa interface, ondeLocal Area Connection #2
está o nome do novo adaptador. Você pode renomear isso por conveniência.A fez essa pequena festança para automatizar tudo. Basta conectar o telefone no modo de carregamento ao computador e executar este bash.
fonte
Como eu mesmo não tenho acesso à máquina Linux, não posso testar esta solução, mas você pode tentar as etapas descritas aqui (tradução do Google para o russo) .
Comentários à tradução:
Boa sorte!
fonte
Ok, aqui está exatamente o que eu fiz, nenhum enraizamento da HTC desejado:
Instalação bind9 e NAT etc ...
note: 1: se você apenas fizer sudo echo 1> / proc / sys / net / ipv4 / ip_forward, receberá um erro de permissão, então aqui está um script para o processo 2: Você pode tornar as tabelas de ip mais específicas sobre como ele faz as coisas, adicionando parâmetros para dispositivos específicos.
agora conecte seu telefone e selecione 'Internet Pass Through'
aguarde o dispositivo aparecer:
ifconfig
verifique também em:arp
Descobri que era necessário desconectar o dispositivo e conectá-lo novamente para que ele apareça no arp; as coisas não funcionarão corretamente se o arp não mostrar o dispositivo.
O dispositivo fica aguardando que o HTC Sync envie uma mensagem para que você precise zombar da mensagem do HTC Syncs:
Posso escrever uma versão disso usando o D-Bus, para que a última parte seja executada automaticamente quando o dispositivo estiver conectado, etc.
Ok, aqui está o meu trabalho em andamento, eu não consegui encontrar nada 'genérico' no d-bus, então optei por uma solução de hack usando o udev. Isso não é perfeito, por exemplo, o comando é executado duas vezes, então eu vou ter que ver se consigo filtrar os parâmetros correspondentes um pouco melhor, também adicionar um tempo limite no último script, apenas colocar e ver se consigo substituir o arp por algo um pouco melhor, digamos procurando em / proc
here.s meu arquivo .rules em /etc/udev/rules.d Criei
Você pode chamá-lo como quiser, mas NÃO O INICIE COM UM NÚMERO, para que seja executado por último.
Adicione o seguinte ao arquivo como sudo usando um editor de sua escolha, etc ....
Basicamente, se você não vê esses 3 'r's,
Então você precisará de mais dois arquivos, um para encadear o outro, já que o RUN do udev bloqueará todo o resto (mesmo que tenha sido executado por último !!) ... hmm ... de qualquer maneira:
Eu criei os arquivos no meu diretório pessoal por enquanto "/ home / olli /" ... então lembre-se de substituir o bit '/ home / olli /' por onde você criar os arquivos:
então, para mim, CD para o meu diretório pessoal.
crie um arquivo chamado
contendo o seguinte:
torná-lo executável
crie outro arquivo chamado
contendo o seguinte
Torne executável:
Espero ter uma boa versão arrumada assim que pos. (provavelmente amanhã).
fonte
Para tethering reverso de USB com Android e Linux sem enraizamento, veja minha resposta aqui
fonte