Reverse Tethering won't work for me - is it because my phone isn't rooted? I've been trying most of the day to reverse tether my phone (Motorola Droid X on Verizon ub the USA), in this case to an Ubuntu VM running on a Windows 7 host via VMWare Workstation. I've followed the instructions in questions like these and everyone seems to quote the exact same blog post, which appears to be the gospel on the topic.

Problem is that I can't get it to work. Everything works right up until the command:

./adb shell netcfg usb0 dhcp


Which produces the response

action 'dhcp' failed (Permission denied)


I can't seem to find much of anything on this error message which makes me think: the phone isn't allowing me to do this. Not sure if it's the carrier or the manufacturer or what but I'm basically being told "no"

Is it because the phone isn't rooted? My workplace actually has a policy against that so I haven't done it. If not, does anyone have idea what I'm doing wrong?
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.