Android reverse tethering on linux

In this guide i will a demonstrate a way to connect your android phone to the internet using just the usb cable. This will only work on rooted phones with a terminal emulator installed.

Step 1:
Connect your android phone to the linux box via USB and then go to Settings > Wireless & networks > Tethering & portable hotspot and enable USB tethering.

Step 2:
Disable any wi-fi or 3g connection from your android phone.

Step 3:
On your linux box, run the following command as root.

ifconfig usb0 192.168.42.135 up

Step 4:
Install and run a firewall program called firestarter and enable internet connection sharing for usb0 as shown below.

Step 5:
Run your android terminal emulator and execute the following commands.

su
ifconfig usb0 192.168.42.130 up
busybox ifconfig usb0 192.168.42.130 up
route add -net default gw 192.168.42.135 usb0
busybox route add -net default gw 192.168.42.135 usb0

Step 6:
Enjoy!