Here's a diagram of what I'm talking about.

Android -> USB -> PC/Server -> Internet.

The PC/Server has an Internet connection and is running Windows 2003. Android is connected to the PC/Server through a USB connection.

  1. Start the Routing and Remote Access Wizard.
  2. Right click on the Server, and select Configure and Enable Remote and Routing Access (Be sure to check that Remote and Routing Access is enabled in Services)
  3. In the Remote and Routing Access Setup Wizard, select Network Address Translation, and select the network card that is connected to the Internet and Finish the wizard.
  4. On the Android phone, check the USB tethering under Wireless & networks, Tethering & portable hotspot. After enabling the USB tethering on the Android phone, I named the new network connection Android-USB.
  5. Open up a Terminal window in Android.
  6. Run su (need root access)
  7. Check the IP address assigned to the PC on the Android-USB connection. In my case, this is 192.168.42.5.
  8. On the Android phone, route add default gw 192.168.42.5 dev usb0
  9. setprop net.dns1 192.168.0.1 (or whatever is your gateway on your PC/Server)
  10. ping 192.168.0.1 (the gateway on the PC/Server)