Con la llegada de android 2.2 froyo y su tethering oficial a través de usb o wifi se ha echo muy popular poder compartir la conexión 3G de los móviles con android
hoy les traigo algo opuesto, como poder tener conexión en el teléfono a través de usb, resulta que tengo un htc g1 con android 2.1 (probé tambien la 2.2 pero no me funcionaba el gps)
tengo en el trabajo conexión por cable, no hay wifi entonces me vi obligado a intentar darle conexión por USB a mi G1, lo que hice es lo siguiente:
Requisitos:
android rooteado
alguna aplicación para hacer tethering USB
android eclair 2.1 (cyanogen mod 5) y froyo 2.2 tienen ya estas características.
GNU/Linux por supuesto (en windows no se si funcione me da igual)
Lo e probado en Debian Squeeze (testing) con Gnome debe funcionar tambien en otros escritorios com kde
conectar el móvil con USB
Habilitar el tethering USB ahí veremos que nuestro Networkmanager detecta el teléfono y creo una nueva interfaz de red llamada usb0
Podemos ver la interfaz y su dirección ip con ifconfig como root
Al final se puede observar usb0 con la ip 192.168.77.128
vamos al teléfono y abrimos un terminal como root y escribimos el comando netcfg
Si observan ahí están las interfaces de red que tiene nuestro móvil android, específicamente la interfaz tether tiene ya una ip en el mismo rango que nuestar pc es decir podemos hacer un ping desde y hacia el dispositivo, recomiendo la opcion -c de ping para q no se quede haciendo pings sin terminar
Ping desde el PC al móvil
De igual manera podrán hacer desde el terminal al PC
ahora nos toca agregar en el móvil como puerta de enlace la ip de nuestra máquina que es 192.168.77.128
con este comando
Ahora nos falta solo compartir la conexión de internet desde nuestar pc
es decir darle acceso a usb0 para que pueda salir a internet por eth0
esto lo hacemos con iptables en nuestro PC
Podrían grabar en un archivo y ejecutar como script es mas cómodo
lo anterior sirve no solo para el móvil sino también para que otras maquinas puedan compartir la conexiion de internet.
Ahora si vamos al móvil tendremos ya navegación a través de nuestra red local.
hoy les traigo algo opuesto, como poder tener conexión en el teléfono a través de usb, resulta que tengo un htc g1 con android 2.1 (probé tambien la 2.2 pero no me funcionaba el gps)
tengo en el trabajo conexión por cable, no hay wifi entonces me vi obligado a intentar darle conexión por USB a mi G1, lo que hice es lo siguiente:
Requisitos:
android rooteado
alguna aplicación para hacer tethering USB
android eclair 2.1 (cyanogen mod 5) y froyo 2.2 tienen ya estas características.
GNU/Linux por supuesto (en windows no se si funcione me da igual)
Lo e probado en Debian Squeeze (testing) con Gnome debe funcionar tambien en otros escritorios com kde
conectar el móvil con USB
Habilitar el tethering USB ahí veremos que nuestro Networkmanager detecta el teléfono y creo una nueva interfaz de red llamada usb0
Podemos ver la interfaz y su dirección ip con ifconfig como root
root@deb-tonny:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:23:24:03:a4:99
inet addr:172.16.9.1 Bcast:172.16.15.255 Mask:255.255.248.0
inet6 addr: fe80::223:24ff:fe03:a499/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:25548582 errors:0 dropped:0 overruns:0 frame:0
TX packets:12884943 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:38066518704 (35.4 GiB) TX bytes:893259029 (851.8 MiB)
Memory:f0500000-f0520000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:3855 errors:0 dropped:0 overruns:0 frame:0
TX packets:3855 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:614719 (600.3 KiB) TX bytes:614719 (600.3 KiB)
usb0 Link encap:Ethernet HWaddr 6e:e0:ea:5b:14:c5
inet addr:192.168.77.128 Bcast:192.168.77.255 Mask:255.255.255.0
inet6 addr: fe80::6ce0:eaff:fe5b:14c5/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:9 errors:0 dropped:0 overruns:0 frame:0
TX packets:103 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:880 (880.0 B) TX bytes:27201 (26.5 KiB)
Al final se puede observar usb0 con la ip 192.168.77.128
vamos al teléfono y abrimos un terminal como root y escribimos el comando netcfg
$su
#netcfg
lo UP 127.0.0.1 255.0.0.0 0x00000049
dummy0 DOWN 0.0.0.0 0.0.0.0 0x00000082
rmnet0 DOWN 0.0.0.0 0.0.0.0 0x00001002
rmnet1 DOWN 0.0.0.0 0.0.0.0 0x00001002
rmnet2 DOWN 0.0.0.0 0.0.0.0 0x00001002
usb0 UP 0.0.0.0 0.0.0.0 0x00001043
tether UP 192.168.77.254 255.255.255.0 0x00001043
Si observan ahí están las interfaces de red que tiene nuestro móvil android, específicamente la interfaz tether tiene ya una ip en el mismo rango que nuestar pc es decir podemos hacer un ping desde y hacia el dispositivo, recomiendo la opcion -c de ping para q no se quede haciendo pings sin terminar
Ping desde el PC al móvil
root@deb-tonny:~# ping -c 3 192.168.77.254
PING 192.168.77.254 (192.168.77.254) 56(84) bytes of data.
64 bytes from 192.168.77.254: icmp_req=1 ttl=64 time=0.785 ms
64 bytes from 192.168.77.254: icmp_req=2 ttl=64 time=0.675 ms
64 bytes from 192.168.77.254: icmp_req=3 ttl=64 time=0.675 ms
--- 192.168.77.254 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.675/0.711/0.785/0.060 ms
De igual manera podrán hacer desde el terminal al PC
ahora nos toca agregar en el móvil como puerta de enlace la ip de nuestra máquina que es 192.168.77.128
con este comando
route add default gw 192.168.77.128 dev tether
Ahora nos falta solo compartir la conexión de internet desde nuestar pc
es decir darle acceso a usb0 para que pueda salir a internet por eth0
esto lo hacemos con iptables en nuestro PC
iptables -F
iptables -t nat -F
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -A FORWARD -s 192.168.77.0/0 -i usb0 -p tcp --dport 80 -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -s 172.16.77.254 -j MASQUERADE
Podrían grabar en un archivo y ejecutar como script es mas cómodo
lo anterior sirve no solo para el móvil sino también para que otras maquinas puedan compartir la conexiion de internet.
Ahora si vamos al móvil tendremos ya navegación a través de nuestra red local.