Reverse Tethering won't work for me - is it because my phone isn't rooted?
Yes, you need root:

$ netcfg usb0 dhcp
netcfg usb0 dhcp
action 'dhcp' failed (Permission denied)
$ su
su
# netcfg usb0 dhcp
netcfg usb0 dhcp

action 'dhcp' failed (Network is down) &lt;-- I used 'netcfg usb0 down' from another terminal here
#


The only way I've personally seen to accomplish this without root is to basically have some sort of proxy server-esque application on your computer that communicates with an app on your phone using ADB's port forwarding. It's not especially reliable from what I've tested out (we were looking for a solution like this for a client at work), but you can give it a shot. You can take a look at this app/thread on XDA, or this CodeProject page for a start, although I'm not sure that either of them provides truly transparent internet passthrough.