¿Cómo configurar el anclaje inverso a través de USB?

125
  1. Mi teléfono HTC G2 está rooteado y ejecuta Cyanogenmod 7
  2. No tengo un plan de datos.
  3. A veces quiero conectar el teléfono a Internet cuando no hay Wi-Fi, actualizar las aplicaciones de Market, hacer una copia de seguridad de los mensajes SMS a Gmail, sincronizar nuevos contactos desde Gmail, etc. Cosas que no puedo hacer con el modo de almacenamiento masivo USB.
  4. Tengo una computadora con Windows 7 Professional conectada a Internet, pero no puedo configurar una red Wi-Fi ad-hoc. (Si lo hago, se darán cuenta y me perseguirán).

¿Hay alguna forma de que el teléfono acceda a Internet a través de la conexión USB a la computadora? Si es así, ¿cómo lo configuro?

endolito
fuente
Esto parece una solución parcial: forum.xda-developers.com/showthread.php?t=1371345
endolith

Respuestas:

46

Recientemente descubrí SimpleRT que funciona muy bien con Linux (y aparentemente también con OSX). Simplemente habilite la depuración USB en su dispositivo (no se requiere root), instale el APK vinculado desde esa página en su dispositivo y conéctelo a su PC a través de USB, y luego ejecute el binario en su PC.

Configurará la conexión como un túnel VPN ( tun0de forma predeterminada) y su dispositivo debe solicitarle que (a) permita que SimpleRT cree / supervise la conexión VPN, así como (b) si debe ejecutarla cuando el dispositivo está configurado como accesorio USB particular (que es lo que hace el binario).

El proyecto no incluye un binario precompilado, así que he subido uno que construí para Ubuntu .


A continuación se muestra un método manual que debería funcionar en Linux o Windows: http://blog.mathieu.carbou.me/post/60454997009/reverse-usb-tethering-with-android-2-2

PASO 1:

Para Windows: instale controladores USB desde Android SDK

Para Linux: nada que hacer

PASO 2:

En Nexus One: conecte el cable USB y active la conexión USB. Debería ver en Linux o Windows una nueva interfaz de red.

PASO 3:

En una computadora Linux, configure un puente:

# 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 puentes

En Windows, puentee las 2 interfaces de red

PASO 4:

Configure la interfaz usb0 de su teléfono. Tienes que opciones:

  1. Desde su computadora, ejecute:

    ./adb shell netcfg usb0 dhcp
  2. O en un terminal raíz de su teléfono, escriba:

    su
    netcfg usb0 dhcp

Ahora debería poder conectarse a Internet en su teléfono utilizando la conexión a Internet de su computadora.

¡Intente hacer un ping en www.google.com para estar seguro!

PASO 5:

Para cerrar la conexión inversa, primero deshaga las interfaces en su computadora:

sudo ifconfig eth0 abajo  
sudo ifconfig usb0 abajo  
sudo ifconfig br0 abajo  
sudo brctl delbr br0  
sudo ifconfig eth0 arriba  
sudo dhclient eth0

Luego, en tu teléfono, desmarca la opción USB Tethering.

También puede usar Windows para crear una red WiFi (usando Connectify ) y conectar su dispositivo a eso: http://www.nexusoneforum.net/forum/nexus-one-faq-how-tos/3133-reverse-tether-getting -internet-your-phone.html

Matthew Read
fuente
3
En mi teléfono, "netcfg usb0 dhcp" debería ser "netcfg rdnis0 dhcp"
diyism
3
En mi cyanogenmod 13, no se puede encontrar netcfg :(
maf-soft
1
netcfg sigue faltando en LineageOS. Es posible que necesite busybox en su lugar. android.stackexchange.com/questions/141900/…
Camille Goudeseune
Al ejecutar sudo ifconfig usb0 0.0.0.0 , obtengo SIOCSIFADDR: No existe tal dispositivo usb0: ERROR al obtener indicadores de interfaz: No
existe
@ user1917769 Tendrás que descubrir cómo su dispositivo nombra la interfaz USB si es diferente.
Matthew leyó el
19

Hay algunas posibilidades más, pero todas las que conozco requieren un dispositivo rooteado.

Uso de la Tether Reverse App

Primero, hay una aplicación llamada Reverse Tether disponible de forma gratuita en Play Store (es una versión de prueba limitada, que restringe el tiempo que puede estar conectado, pero al menos puede probar de esta manera si su dispositivo es totalmente compatible; la versión completa es alrededor de USD 5). De acuerdo con un artículo de AndroidAuthority , la configuración debería ser tan fácil como 1-2-3: conecte el cable USB, inicie la aplicación, deje que se configure automáticamente (la configuración manual también está disponible) y listo. También puede dejar que le pida que se conecte cuando encuentre una conexión USB.

Métodos manuales usando Wifi

Lo sé, esto no es USB, pero para completar (y dar alternativas) pensé que también podría agregar estos:

jugando con el sistema y parcheando

También hay disponibles varios métodos manuales (y descritos, por ejemplo, en XDA ), pero en su mayoría son técnicamente complejos y esperan que parches los archivos del sistema; no para el usuario de todos los días, sino para el fanático de la tecnología.

Terminal y listo

Sin embargo, otro buen método debería incluir 3 líneas en el terminal, y se describe en una publicación aquí , para conectarse a una red Wifi ad-hoc. Básicamente, debería ir así:

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 algún archivo de configuración

Aquí también se describe otro método bastante sencillo , que consiste en editar el wpa_supplicant.confarchivo una vez (agregar manualmente su red Wifi ad-hoc).

Método Easy-Peasy

¿Necesito decir realmente? Utiliza un enrutador Wifi. Incluso hay algunos pequeños "enrutadores de viaje" por menos de USD 50. Y luego conecta tu teléfono como lo usas para conectarlo a otras redes Wifi ...

Izzy
fuente
7

¡Oye! Hay una aplicación para eso

Reenvío de puerto USB de Android
http://www.codeproject.com/kb/android/usbportforwarding.aspx

Estoy un poco confundido sobre cómo usarlo, por favor informe si logra que funcione perfectamente.

LifeH2O
fuente
1
Aparentemente, esto requiere un proxy que no sea la computadora en sí, y solo admite la navegación web.
endolith
1
Dice que usa el puerto 8080, que no necesariamente lo restringe a la navegación web, ¿verdad? Pensé que Market podría usar esto, sin embargo, Market usa la publicación 5228.
Steve
3

Sé que esta es una respuesta incluso posterior, pero vale la pena mencionarla.

¡No se necesita enraizamiento!

¡No es necesaria la instalación de la aplicación! * Lo cual ni siquiera es posible si no tienes otra conexión a Internet.

Hay un proyecto llamado gnirehtet .

  1. Instale adb en la PC host (Windows / Linux / Mac)
  2. Descargue el archivo zip gnirehtet al host
  3. Descomprimirlo
  4. Ejecuta el comando

¡Eso es! Para obtener más información, lea el archivo Léame de gnirehtet en su sitio web.

* = Detrás de escena instalará un archivo apk en su dispositivo a través de la conexión USB.

ffonz
fuente
Solo la respuesta no comercial multiplataforma de trabajo completo aquí. Incluso Google Play se conecta (Android 9 Pie).
cdlvcdlv
2

Encontré una buena herramienta para el anclaje inverso en el foro xda-developers. Se llama Android Reverse Tethering . Funciona con Windows y requiere un teléfono rooteado.
Funciona bien en mi HTC Desire HD con MIUI v4.

Ebrahim Byagowi
fuente
Estoy usando este software, funciona perfectamente bien en mt galaxy s duosgts7562. Puedo usar todas las cosas relacionadas con Internet a través de la inmovilización inversa.
Jasser
Para usar youtube y otras aplicaciones similares, debe hacer clic en el botón de instalación de pirateo y luego está listo para comenzar.
Jasser
2

Pasos de anclaje inverso de Android:

Nota: solo funciona en un teléfono Android rooteado.

  1. Conecte el dispositivo Android a través de USB.
  2. Habilita la conexión USB. Para hacerlo, vaya a Configuración → Más ... → Anclaje a red y zona activa móvil → Anclaje a red USB .

  3. En la máquina host, el administrador de red puede detectar la conexión de enlace USB.
    Su nombre será algo así como "Conexión por cable 2" (o 3).
    Debe editar su "IPV4 / Método" en "Compartido con otras computadoras".

3.1. Sin el administrador de red, deberá hacerlo manualmente:

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

Ahora, como se explica aquí al final del Paso 1 , debe modificar iptablescon sudo iptables -t nat -A POSTROUTING -j MASQUERADE. Pero ... prefiera permitir que el administrador de red lo haga si es posible.

  1. En el dispositivo Android, puede emitir estos comandos utilizando un terminal suallí o desde su máquina host utilizando ADB:

    $ adb shell su -c "netcfg rndis0 dhcp"
    

    Si no obtiene la dirección IP, o si está utilizando alguna aplicación que desea una dirección IP estática como la aplicación "Webkey for Android", asígnela 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"
    

Ahora internet estaría funcionando en el teléfono Android.

Para verificar, en adb shello terminal de Android, pruebe el comando ping www.google.com.

Esto funciona para mi.

DreamCoder
fuente
1
El netcfg de mi dispositivo parece ser más limitado y la versión manual del paso 4 falla: no such action '10.42.0.2' usage: netcfg [<interface> {dhcp|up|down}]
Matthew Read
1
@MatthewRead el comando es incorrecto, en realidad ifconfig rndis0 10.42.0.2 netmask 255.255.255.0, por cierto, ver todas las interfaces está netcfgsolo. instrucciones similares se detallan aquí
Aquarius Power
2

Para dispositivos no enraizados

Sé que esta es una respuesta tardía, pero como todas las respuestas existentes sugieren que el anclaje inverso USB solo es posible si su dispositivo está rooteado o tiene soporte del sistema para el anclaje inverso, creo que valdría la pena señalar que hay una opción más:

Estaba buscando una solución de anclaje inverso que funcionara en mis dispositivos no rooteados y con un MacBook, pero no pude encontrar nada. Finalmente, comencé a desarrollar mi propia solución. El resultado es una aplicación que funciona en dispositivos con Android 4.0 o superior en el lado del cliente, y todos los principales sistemas operativos de escritorio en el lado del host.

La aplicación ReverseTethering NoRoot

La aplicación está disponible en Google Play: ReverseTethering NoRoot

FD_
fuente
1
No pude lograr que esto se conectara en Windows o Ubuntu, pero parecía funcionar en OSX.
Matthew leyó el
@MatthewRead Envíame un correo electrónico y daré lo mejor para ayudar a que funcione en Windows y Ubuntu.
FD_