Tethering is one of the most beneficial features in the smartphones which lets you share the internet access on your device with a PC or other smartphone or tablet. You can use this feature either using a wired connection such as in USB tethering where you need to plug in your smartphone with internet access to a PC to share the data connection while the other method and the most popularly used method is wireless tethering where you can share data connection of your device with other devices via a WiFi connection. In both the cases, the smartphone acts as the modem to share data but what if you want to use your PC’s internet connection on your smartphone when there is no WiFi modem with you?
Nowadays most of the public places and offices had cut-off WiFi modems to safeguard their data from hackers and other intrusions. Moreover, sometimes we come across situations where our WiFi antenna blew off or we have a wired broadband connection which servers only via LAN cables. In these situations, we have to rely on 3G connection on our smartphones which won’t be as fast and stable as a WiFi connection which make your browsing experience hectic. However, we have a technique where you can share the internet connection of your PC on your smartphone which is the exact opposite to traditional tethering, hence the name Reverse Tethering.
Some of you might already gave this concept a try but was not unsuccessful and for some of you it’s entirely new, so today we are going to show you a manual technique to use the internet connection of your PC on your smartphone using USB reverse tethering technique. The manual process may be a bit unfriendly to new users, but it’s fairly simple and consistent than any reverse tethering app. So if you’re ready, here we go on some interesting guide:
- Your device’s USB drivers installed on your PC.
- A working internet connection on your PC.
- A rooted Android smartphone.
- USB Debugging enabled on your smartphone → Click here
- Terminal Emulator app installed on your smartphone → Click here to download
- Busy box installed (optional)
In this method, we will show you how to share your PC’s internet connection on your smartphone on Windows, Linux and MAC OS X operating systems. Kindly use the applicable instructions on your PC.
For Windows users:
- Connect your Android device to PC by using a USB cable and make sure the driver are properly installed and the device is device is detected.
- Enable USB tethering on your device which can be found under tethering and portable hotspot settings of your device.
- Open Network Connections on your PC. Right-click on the active internet connection you have and select Properties. In sharing tab, click Allow other network users to connect option and select your USB connection from the drop-down menu below.
- Click OK and you’ll see your network is shared with your device and you can find an IP address for your device in the properties of your USB connection.
- Now all you need to do is to allow the data packets to travel in the reverse direction i.e from your PC to Android device. To do this, we have to type few commands on your device.
For Linux users:
- On GUI Linux machines, network manager will establish a network connection automatically once the device is connected. However, if you’re using Linux CLI, type the below commands to configure the network on your PC.
- Run the following commands as root user or use sudo to gain root temporarily:
ifconfig usb0 10.42.0.1 netmask 255.255.255.0
Replace the usb0 with the device’s USB network adapter which should be usb0 by default when you have no other USB devices.
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -F
iptables -t nat -A POSTROUTING -j MASQUERADE
CLI Linux users can skip the next steps in PC configuration.
- Click on network manager applet at the top right of your screen, select Edit Connections. In Wired tab, choose the new established USB connection and click edit.
- In IPv4 Settings tab, choose Shared to other computers as the preferable method and save it. Network Manager will reestablish the connection and assign to your PC an IP address on this USB network connection, default: 10.42.0.1.
For MAX OS X users:
- Install driver HoRNDIS on your PC. Once the device is connected, you will be notified about a new network interface. Click Network Preferences in the dialog to add it to known interfaces list and apply the changes bu clicking Apply button.
- Now open System Preferences and open network settings. Now you’ll see a new network interface in the interfaces list corresponding to your USB connection, provided you have installed the drivers in step 1 properly.
- Make sure that Configure IPV4 is set as using DHCP in the network preferences.
- Navigate back to the system preferences, click sharing and select internet sharing. Choose the Internet connection in Share your connection from, and choose your USB connection interface into computers using.
- Now your MAC PC will assign an IP address to your USB connection interface which by default is 192.168.2.1.
Configure DHCP on your Android device
Method 1: Automatic DHCP
In this method, the DHCP is configured so that an IP address is automatically assigned to the device every time you use USB reverse tethering. Follow the below procedure to configure automatic DHCP on your device.
- Open terminal emulator app on your device and type the following command:
This might trigger a SuperSU request on your device, so grant permissions when asked. Once permissions are granted, the $ symbol should change to # in the command window.
- Type the following command to configure automatic NCP using dhcp configuration which assigns the IP address dynamically.
netcfg rndis0 dhcp
Replace the rndis0 with the USB interface on your device. It is usually rndis0 or usb0, but to make sure verify it with the below command:
- Now you should be able to use your PC’s internet on your smartphone.
Method 2: Manually configure IP address
In this method, an IP address is statically assigned to the device. However, you should take care that there is no IP clash during this process.
- On Linux PC’s, if automatic DHCP doesn’t work for you, use the follow commands o your Android device:
ifconfig rndis0 10.42.0.2 netmask 255.255.255.0
route add default gw 10.42.0.1 dev rndis0
- If the route in the previous command fails, use this alternative command:
busybox route add default gw 10.42.0.1 dev rndis0
- For Windows PC, use the same above commands, replace 10.42.0.2 by 192.168.137.2 (192.168.0.2 for Windows XP), replace 10.42.0.1 by 192.168.137.1 (192.168.0.1 for Windows XP)
- For Mac PC, replace 10.42.0.2 by 192.168.2.2, replace 10.42.0.1 by 192.168.2.1
Some Google apps like Playstore, Gmail might not work with this method as they need either a 3G connection or WiFi to work, so we will fake your PC’s network as 3G network to make things work. Use the following fix if you’re having troubles with these apps.
- Temporarily enable your 3G connection.
- Type the following command in terminal emulator:
ifconfig rmnet0 0.0.0.0
Replace the rmnet0 with the device’s 3G interface which may be ppp0, rmnet0…. Use below command to identify the 3G interface:
- After this fix, your Android device will see the PC’s internet as the 3G connection which makes all the apps work.
That’s it. Such a long post, right?
Leave your valuable feedback regarding the guide in the comments below.
I’ve done all the steps, 7 times tapping, getting “developer” and all, but nothing is happening
hello.. only the ‘fake 3g connection’ not done.. only built in browser works.. please help
I cant see the android usb option.
Hi nice tutorial. Thanks. I followed same. I got inter nrt to mobile wget and all other commands are working inside the mobile. But chrome and apps are not working. Anything more I need to do
I have done all the steps given above but not success-ed.
I have Moto G3 2015 rooted with android 5.1.1
Any other solution for reverse tethering
tutorial is really great but i am stuck at the last step. the thing is i use internet by connecting my internet dongle (reliance netconnect broadband+) to my laptop (OS Windows 8). i was able to connect my phone as per your instructions but i still could not make my data packets go from laptop to phone (Android 4.2.1 rooted with Kinguser). The browsers don’t load anything nor do they give error stating ‘no internet connection’. Its like an infinite loop. I doubt i might have made some mistake while assigning the IP (Yes i used the manual method as the automatic didn’t work). i used the same IPs that you suggested. Any help would be appreciated.