Compartilhe sua internet do Linux para Android com o Gnirehtet: Guia Completo!

No passado, realizar o tethering reverso do Linux para um dispositivo Android exigia o uso de configurações complexas de tabelas IP, conexões em ponte e outras ferramentas intrincadas. No entanto, com o esforço dedicado de um desenvolvedor, essa tarefa se tornou muito mais simples.

Conheça o Gnirehtet! Este programa experimental opera como um serviço em segundo plano, estabelecendo um sistema funcional de tethering reverso via USB. Isso permite que você compartilhe a conexão de internet do seu computador Linux com seu dispositivo Android.

Observação Importante: Antes de prosseguir com este guia, certifique-se de que seu dispositivo Android tenha acesso root. Sem privilégios de root, várias operações cruciais para o Gnirehtet não funcionarão corretamente.

Obter acesso root em dispositivos Android está mais fácil do que nunca, e há diversos tutoriais detalhados disponíveis para muitos modelos. Consulte os fóruns XDA para mais informações.

Instalação das Ferramentas do Android

O tethering reverso com o Gnirehtet se baseia nas ferramentas de desenvolvimento do Android. Antes de continuar, você precisará instalá-las no seu sistema Linux. Felizmente, a maioria das distribuições Linux simplificou esse processo. Abra o terminal e siga as instruções relevantes para o seu sistema:

Ubuntu
sudo apt install android-tools
Debian
sudo apt-get install android-tools
Arch Linux
sudo pacman -S android-tools
Fedora
sudo dnf install android-tools
OpenSUSE
sudo zypper in android-tools
Linux Genérico

O Google oferece excelente suporte para a plataforma Linux, disponibilizando o kit de ferramentas SDK do Android. Para instalá-lo no seu sistema, acesse a página oficial. Extraia o arquivo baixado e siga as instruções fornecidas!

Instalando o Gnirehtet

O Gnirehtet está disponível no Github. O código-fonte pode ser baixado e compilado, mas é mais fácil acessar a página de releases e baixar uma versão pré-compilada. Lá você encontrará versões em Java e Rust. Para maior praticidade, recomendamos a versão em Rust, pois dispensa a instalação do Java Runtime Environment.

Aviso: Caso opte pela versão em Java, será necessário instalar o Java Runtime Environment no seu Linux.

Para baixar a versão mais recente do Gnirehtet, abra o terminal e utilize o comando wget:

wget https://github.com/Genymobile/gnirehtet/releases/download/v2.2.1/gnirehtet-rust-linux64-v2.2.1.zip

Ou para baixar a versão Java:

wget https://github.com/Genymobile/gnirehtet/releases/download/v2.2.1/gnirehtet-java-v2.2.1.zip

Após o download do Gnirehtet, utilize a ferramenta de descompactação para extrair o conteúdo do arquivo ZIP:

unzip gnirehtet-rust-linux64-v2.2.1.zip

ou

unzip gnirehtet-java-v2.2.1.zip

Abra o gerenciador de arquivos, navegue até a pasta “Gnirehtet”, copie o arquivo gnirehtet.apk para seu dispositivo Android e realize a instalação.

Abra o terminal e utilize o comando cd para entrar na pasta do Gnirehtet que você acabou de extrair:

cd ~/gnirehtet-*

Configurando o Android para Tethering

O Gnirehtet requer algumas configurações adicionais no sistema operacional Android. Comece abrindo as “Configurações” do seu aparelho. Vá em “Sobre o Telefone” e toque no número da versão repetidamente até que uma mensagem “Você agora é um desenvolvedor” seja exibida.

Em seguida, vá para as opções do desenvolvedor e ative a depuração “USB”.

Abra o terminal e inicie o servidor ADB:

su -

ou

sudo -s
adb start server

Desbloqueie seu dispositivo Android e marque a opção “sempre aceitar” as conexões ADB. Volte ao terminal e encerre o servidor ADB:

adb kill-server

Utilizando o Gnirehtet

O Gnirehtet cria uma conexão entre seu computador Linux e o dispositivo Android por meio de um cabo USB. Para iniciar a conexão, abra um terminal e obtenha um shell de root:

su -

ou

sudo -s

Com acesso root, o aplicativo Gnirehtet poderá interagir com o sistema Linux e se comunicar com o dispositivo Android via ADB. Agora, inicie a conexão:

./gnirehtet autorun

Ao iniciar a conexão, um pedido de conexão VPN será exibido no seu dispositivo Android. Desbloqueie-o e aceite a conexão.

Após aceitar a conexão VPN, o Gnirehtet começará a rotear a conexão de internet via USB diretamente para seu dispositivo Android.

Reconectando

Cabo USB podem se desconectar ocasionalmente. Se isso acontecer enquanto o Gnirehtet estiver em execução, a conexão será interrompida. Felizmente, o programa oferece um recurso para restaurar a conexão rapidamente.

Para restaurar a conexão, abra um terminal e obtenha um shell root com su ou execute com sudo:

cd ~/gnirehtet-*

Dentro da pasta do Gnirehtet, execute o programa com a flag restart. Isso reiniciará o sistema de tethering reverso.

sudo ./gnirehtet restart

Assim que o comando for concluído, desbloqueie o dispositivo Android e aceite a conexão VPN novamente para finalizar o processo de reinicialização.

Encerrando a Conexão

A conexão de tethering reverso pode ser interrompida quando desejado. Para isso, abra um novo terminal (deixe o terminal com a conexão em execução aberto) e execute:

cd ~/gnirehtet-*
sudo ./gnirehtet stop

Em algumas ocasiões, o comando stop pode não encerrar a conexão de tethering reverso corretamente. Nesses casos, será necessário forçar o encerramento do Gnirehtet.

Para encerrar o Gnirehtet à força, encontre o ID do processo com o comando pidof e interrompa o programa com o comando kill:

pidof ./gnirehtet
sudo kill -9 processnumber