Reverse Tether Android Over USB Using ADB (No Root)

17 min read Learn how to share your PC’s internet connection with an Android phone via USB using ADB, without rooting. Step‑by‑step guide for Windows, macOS and Linux. October 14, 2026 05:30 How to Reverse Tether Android Over USB Using ADB (No Root)

Sometimes you need internet on your Android device but Wi‑Fi isn’t available, the hotspot data plan is exhausted, or you’re working on a locked‑down network that only allows wired connections. A reliable way to solve this is reverse tethering – using your computer’s active network connection and routing it to the phone over a USB cable. The method described here relies only on the Android Debug Bridge (ADB) and works on any device that can enable USB debugging, without requiring root access.

Why reverse tethering works

ADB provides a low‑level channel between the PC and the Android device. By creating a reverse port forwarding rule, the PC can act as a gateway for the phone’s traffic. The phone sees the PC as a network interface (usually usb0) and routes its data through it. Because the traffic travels over the USB cable, it is fast, encrypted by the USB protocol, and does not consume mobile data.

Before you start

  • USB cable: Use a good quality data cable; charging‑only cables won’t work.
  • Computer with an active internet connection: Ethernet, Wi‑Fi or any other working connection.
  • Android device (Android 5.0+ recommended): The steps are the same for most manufacturers, though menu wording may differ slightly.
  • Administrative rights on the PC: Required to install drivers (Windows) and to enable network sharing.
If you plan to use this setup frequently, keep the PC on a power source and consider disabling sleep mode for the network adapter.

Step 1 – Install ADB on your computer

ADB is part of the Android SDK Platform‑Tools. You only need the tiny Platform‑Tools package, not the full SDK.

  1. Download the latest Platform‑Tools zip from the official Android developer site (developer.android.com).
  2. Extract the zip to a folder you can remember, e.g., C:\adb on Windows or ~/adb on macOS/Linux.
  3. Add the folder to your system PATH so you can run adb from any terminal.
    • Windows: Search for “Edit the system environment variables”, open the dialog, click Environment Variables…, edit the Path variable and add the full path to the Platform‑Tools folder.
    • macOS/Linux: Add export PATH=$PATH:~/adb to your ~/.bash_profile or ~/.zshrc, then run source ~/.bash_profile (or the equivalent).
  4. Open a new terminal window and verify the installation with adb version. You should see something like Android Debug Bridge version 1.0.41.

Step 2 – Enable USB debugging on the Android device

USB debugging opens the ADB channel. The steps are almost identical across Android versions.

  1. Open Settings → About phone.
  2. Locate Build number and tap it seven times. You’ll see a toast saying “You are now a developer!”.
  3. Return to the main Settings screen; a new entry Developer options appears.
  4. Enter Developer options and toggle USB debugging on. Confirm any security prompt.
  5. Connect the phone to the PC with the USB cable. On the phone, you may see a dialog “Allow USB debugging?”. Check “Always allow from this computer” and tap OK.
Do not enable USB debugging on a device you share with untrusted people. It grants the connected computer full command‑line access to the phone.

Step 3 – Prepare the PC’s network sharing

The exact steps differ per operating system. All three methods create a Internet Connection Sharing (ICS) bridge that forwards traffic from the PC’s primary network adapter to the USB interface that ADB will expose.

Windows 10/11

  1. Open Control Panel → Network and Sharing Center → Change adapter settings.
  2. Identify the adapter that provides internet (e.g., Wi‑Fi or Ethernet) and the adapter that will be created by ADB (it appears as Remote NDIS based Internet Sharing Device after the first ADB command).
  3. Right‑click the internet‑providing adapter, choose Properties, then the Sharing tab.
    • Check Allow other network users to connect through this computer’s Internet connection.
    • From the drop‑down, select the Remote NDIS based Internet Sharing Device.
  4. Click OK. Windows will now route traffic to the USB interface.

macOS (Catalina, Big Sur, Monterey)

  1. Open System Preferences → Sharing.
  2. Enable Internet Sharing (but do not check the box yet).
  3. In the “Share your connection from” dropdown, select the active network interface (e.g., Wi‑Fi).
  4. In the “To computers using” list, tick USB Ethernet. If you do not see this option, it will appear after the first ADB reverse‑tether command.
  5. Now check the box next to Internet Sharing. Confirm the popup that appears.
    macOS may create a virtual interface called en5 (or similar) for the USB connection.

Linux (Ubuntu/Debian based)

Linux requires a few command‑line steps, but the principle is the same: enable IP forwarding and set up NAT (Network Address Translation) from the primary interface to the USB interface (usb0).

# Enable IP forwarding
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward

# Replace eth0 with your actual internet interface name
# Replace usb0 with the interface that appears after the first ADB command
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o usb0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i usb0 -o eth0 -j ACCEPT
You may need to install iptables-persistent to keep the rules after a reboot.

Step 4 – Start the reverse‑tether session with ADB

Now that the PC is ready to share its connection, we tell ADB to create the USB network interface on the phone and forward traffic.

  1. Open a terminal (Command Prompt on Windows, Terminal on macOS/Linux).
  2. Verify that the device is detected:
    adb devices
    You should see a line with the device’s serial number and the word device.
  3. Run the reverse‑tether command. The command creates a virtual network interface rndis0 on the phone and forwards all traffic to the PC’s shared network.
    adb shell "su -c 'setprop sys.usb.config rndis,adb'"
    Explanation: The setprop call changes the USB configuration to rndis (USB Ethernet) while keeping ADB active. On non‑rooted devices the su -c part is ignored; the command still works because Android allows the change for debugging builds.
  4. On the phone, pull down the notification shade. You should see a new notification “USB for network”. Tap it and select “USB tethering”. If the option is already checked, you’re good to go.
  5. At this point the phone should obtain an IP address from the PC (usually something like 192.168.137.2 on Windows). Verify by opening Settings → Network & internet → Wi‑Fi (the Wi‑Fi toggle will be off) → scroll to the bottom where the USB network appears, then tap it to see the IP.
Do not disconnect the USB cable while the interface is active; doing so may leave the phone without any network and could cause apps to crash.

Step 5 – Verify the connection

Open a browser on the phone and navigate to any website. If the page loads, reverse tethering is successful. For a more technical check:

# On the phone, open a terminal emulator (or use ADB shell)
adb shell
# Inside the shell, run:
netcfg | grep usb
# Expected output similar to:
usb0    UP      192.168.137.2/24

If the usb0 (or rndis0) interface shows UP and an IP address, the link is working.

Step 6 – Optional: Make reverse tethering start automatically

Manually running the ADB command each time can be tedious. You can automate it with a small script.

Windows batch file

@echo off
adb devices | findstr /i "device" >nul
if errorlevel 1 (
  echo No device detected. Connect your phone and try again.
  pause
  exit /b 1
)
adb shell "setprop sys.usb.config rndis,adb"

macOS/Linux shell script

#!/bin/bash
if ! adb get-state 2>/dev/null | grep -q device; then
  echo "Device not found. Connect your phone via USB."
  exit 1
fi
adb shell "setprop sys.usb.config rndis,adb"

Save the script, make it executable (chmod +x scriptname), and run it whenever you need the connection.

Troubleshooting

  • Device not listed in adb devices
    • Ensure USB debugging is enabled and the phone shows the “Allow USB debugging?” prompt.
    • Install the appropriate OEM USB driver (Windows). Manufacturers often provide drivers on their support pages.
    • Try a different USB port or cable; some ports disable data transfer when in power‑only mode.
  • No internet after enabling USB tethering
    • Confirm that the PC’s Internet Connection Sharing (ICS) is active and bound to the correct virtual adapter.
    • On Windows, check the Remote NDIS based Internet Sharing Device has an IP address (usually 192.168.137.1).
    • On macOS, verify the USB Ethernet interface appears in ifconfig and has an IP.
  • DNS resolution fails (websites load but names do not resolve)
    • Manually set DNS on the phone: Settings → Network & internet → Advanced → Private DNS → set to dns.google or 1.1.1.1.
    • Alternatively, add a DNS server to the PC’s shared network configuration.
  • Battery drains quickly
    • USB tethering keeps the radio active; keep the phone plugged in to avoid rapid discharge.
    • If you only need occasional access, disable the USB tethering toggle after you finish.
  • Android shows “USB for network” but the phone still reports “No internet”
    • Restart the PC’s sharing service (disable/enable Internet Connection Sharing).
    • Re‑run the ADB command to re‑initialize the RNDIS interface.

When reverse tethering isn’t possible

If your device refuses to switch to RNDIS mode, or the manufacturer disables USB Ethernet, you have two fallback options that still avoid rooting:

  • Use a third‑party reverse‑tether app such as gnirehtet. It bundles a small VPN client on the phone and a helper binary on the PC.
  • Use a Wi‑Fi hotspot from the PC. Windows 10/11 and macOS can share their wired connection over Wi‑Fi, which the phone can then join. This method consumes Wi‑Fi spectrum but avoids the USB‑only limitation.

Security and privacy considerations

Because the phone’s traffic now traverses the PC, any network monitoring tools on the PC can see the data. Ensure the PC is trusted and has up‑to‑date security software. The USB link itself is encrypted at the hardware level, but the data is not end‑to‑end encrypted unless you use HTTPS or a VPN on the phone.

Wrap‑up

Reverse tethering with ADB gives you a quick, root‑free way to give an Android device internet access through a wired PC connection. By following the steps for your operating system, you can set up a reliable link, verify it works, and troubleshoot the most common hiccups. The method is especially handy for developers testing network‑dependent apps on devices without mobile data, for travelers stuck in Wi‑Fi‑restricted environments, or for anyone who simply wants to conserve a mobile data plan.

User Comments (0)

Add Comment
We'll never share your email with anyone else.