How to Turn Your Android Phone into a USB Ethernet Adapter for a PC (No Root)

13 min read Learn step‑by‑step how to share your Android phone’s internet connection with a PC over USB without rooting, using the open‑source gnirehtet tool. October 11, 2026 11:30 How to Turn Your Android Phone into a USB Ethernet Adapter for a PC (No Root)

Before you start

Using a USB cable to give a computer internet access is often called reverse tethering. It is especially handy when the PC has no Wi‑Fi adapter, the Wi‑Fi network is unreliable, or you simply prefer the stability of a wired connection. The method described here works on Android 5.0 (Lollipop) and newer, requires no root access, and relies on the open‑source gnirehtet utility.

  • Android device: any phone or tablet with a functional data connection (mobile or Wi‑Fi) and a USB‑C or micro‑USB port.
  • PC: Windows 10/11, macOS 10.13+, or a recent Linux distribution.
  • USB cable: a data‑capable cable (charging‑only cables will not work).
  • ADB (Android Debug Bridge) installed on the PC. ADB is part of the Android SDK Platform‑Tools package.
  • At least 200 MB of free storage on the Android device for the small gnirehtet client APK.

If you have never used ADB before, the official Platform‑Tools download page provides a zip file for all major OSes. Extract the zip to a convenient folder – you will reference this folder in the steps that follow.

Note: The process does not require any third‑party apps from the Play Store, which means you stay away from ad‑laden utilities that claim to “share Wi‑Fi over USB”.

Step 1: Prepare your Android device

  1. Enable Developer options if you haven’t already:

    • Open Settings → About phone.
    • Tap Build number seven times. You’ll see a toast saying “You are now a developer!”.
  2. Turn on USB debugging:

    • Go to Settings → System → Developer options (or directly Developer options on some OEM skins).
    • Find USB debugging and toggle it on. Confirm any security prompt.
  3. Set the default USB mode to File Transfer / MTP (or “Charging” if the dialog appears, you can change it later). This ensures the PC can see the device for ADB communication.

Warning: Leaving USB debugging enabled all the time can be a security risk if you connect the phone to an untrusted computer. Disable it after you finish reverse tethering if you are concerned.

Step 2: Install gnirehtet on your PC

gnirehtet (pronounced “reverse‑tether”) is a lightweight Java‑based tool that creates a virtual Ethernet interface on the PC and forwards traffic through the Android device via ADB. Follow the steps for your operating system.

2.1 Download the binaries

  1. Open a web browser on the PC and go to the GitHub releases page for gnirehtet. Choose the latest stable release.
  2. Download the archive that matches your OS:
    • gnirehtet‑windows‑vX.Y.Z.zip for Windows
    • gnirehtet‑mac‑vX.Y.Z.tar.gz for macOS
    • gnirehtet‑linux‑vX.Y.Z.tar.gz for Linux
  3. Extract the archive to a folder you can access easily, e.g., C:\gnirehtet on Windows or ~/gnirehtet on macOS/Linux.

2.2 Verify Java runtime

gnirehtet’s server component runs on Java. Most modern systems already have a JRE, but you can verify by opening a terminal (or Command Prompt) and typing:

java -version

If you see a version line (e.g., openjdk version "11.0.12"), you are good. If not, install the latest OpenJDK from your OS’s package manager or from AdoptOpenJDK.

Step 3: Install the gnirehtet client on Android

The client is a tiny APK that runs in the background and forwards traffic. It does not require root because it uses the adb forward mechanism.

  1. Connect the Android phone to the PC with the USB cable.
  2. Open a command prompt (Windows) or terminal (macOS/Linux) and navigate to the gnirehtet folder you extracted earlier.
    cd C:\gnirehtet   # Windows example
  3. Run the following command to install the client APK on the phone:
    adb install -r gnirehtet.apk

    The -r flag tells ADB to replace any existing version, which is useful if you repeat the tutorial.

  4. If the command returns Success, the client is ready. If you see an error like device unauthorized, check the phone’s screen for a dialog asking to trust the computer and tap Allow.
Tip: You can keep the gnirehtet folder on your desktop for quick access. Adding it to your system PATH lets you run gnirehtet from any directory.

Step 4: Start reverse tethering

Now the actual network sharing begins. The gnirehtet server creates a virtual Ethernet adapter on the PC (named gnirehtet0 on Linux/macOS or a network interface on Windows) and forwards all traffic to the Android device.

  1. On the PC, execute the server script:
    gnirehtet run

    On Windows, you may need to use gnirehtet.exe run. The command will output something like:

    Waiting for device...
    Device connected: XYZ123
    Starting VPN on device...
    VPN started, forwarding traffic.
  2. After a few seconds, your PC should acquire an IP address on the new interface. Verify by running:
ipconfig /all   # Windows
ifconfig -a    # macOS/Linux

Look for an interface named gnirehtet0 (Linux/macOS) or a network adapter with a description containing “gnirehtet”. It will typically have an IP like 192.168.42.2.

  1. Open a web browser on the PC and navigate to any website. If the page loads, the reverse tether is working.

If you see a “No internet” message, proceed to the troubleshooting section.

Alternative: Using a graphical front‑end

Some users prefer a point‑and‑click experience. The same GitHub project ships a small GUI wrapper for Windows and macOS called gnirehtet-gui. The steps are identical, except you launch gnirehtet-gui.exe and press the Start button. The GUI shows connection status and lets you stop the tunnel with a single click.

Troubleshooting

Reverse tethering can fail for a handful of common reasons. Below is a decision tree you can follow.

1. PC does not see the gnirehtet interface

  • ADB connection problem: Run adb devices. If the device is listed as unauthorized, re‑authorize the PC on the phone.
  • USB mode: Ensure the phone is in File Transfer / MTP mode, not just Charging. Some OEMs hide the mode selector in the notification shade after plugging in.
  • Driver issue (Windows): Install the Google USB driver or use the generic “Android ADB Interface” driver from Device Manager.

2. Internet works on the phone but not on the PC

  • VPN conflict: If the phone already has a VPN active (e.g., a corporate VPN), gnirehtet’s built‑in VPN may be blocked. Disable other VPN apps and try again.
  • Data‑saving mode: Some manufacturers (e.g., Samsung’s “Data Saver”) restrict background traffic. Turn off data saver while using reverse tether.
  • Firewall: Windows Defender or third‑party firewalls may block the virtual adapter. Add an inbound/outbound rule allowing traffic on the gnirehtet0 interface.

3. Connection drops after a few minutes

  • Power‑saving: Android may suspend the USB tethering service when the screen turns off. Keep the phone awake by enabling Developer options → Stay awake (Screen will never sleep while charging).
  • Battery optimisation: Exclude gnirehtet from battery optimisation (Settings → Apps → gnirehtet → Battery → “Not optimized”).

Advanced tweaks and optional configurations

Once the basic tunnel works, you can fine‑tune the experience.

  • Static IP on PC: Assign a fixed address (e.g., 192.168.42.10) to the gnirehtet interface via the OS network settings. This helps scripts that expect a stable IP.
  • Proxy for the PC: If you need HTTP/HTTPS proxying, configure the PC’s proxy settings to point to 127.0.0.1:8080 and run a local proxy (e.g., tinyproxy) on the Android device via Termux. This is an advanced scenario and outside the scope of this tutorial.
  • Split‑tunnelling: gnirehtet forwards all traffic. To keep some traffic local (e.g., LAN devices), you can add static routes on the PC that bypass the gnirehtet0 interface.

Safety, privacy, and data‑usage considerations

Reverse tethering routes all PC traffic through your phone’s network connection. Keep the following in mind:

  • Data caps: Mobile carriers often enforce strict data limits. Monitor usage on the phone (Settings → Network & internet → Data usage) or set a warning threshold.
  • Security: The tunnel is encrypted between the PC and the phone because it uses ADB’s USB transport. However, the traffic then leaves the phone over the cellular network unencrypted unless you use HTTPS or a VPN on the phone itself.
  • Battery impact: Keeping the phone awake and the cellular radio active will drain the battery faster. Plug the phone into a charger while reverse tethering for prolonged sessions.

Wrap‑up

By following the steps above you have turned an ordinary Android phone into a functional USB Ethernet adapter for your PC, all without rooting or installing any paid software. The solution is lightweight, reversible, and works across Windows, macOS, and Linux. Should you need to stop sharing, simply close the terminal window running gnirehtet run or press the Stop button in the GUI. Remember to disable USB debugging if you don’t need it afterwards, and keep an eye on your mobile data consumption.

This workflow is ideal for developers who need a quick internet connection on a headless laptop, travelers with limited Wi‑Fi options, or anyone who prefers a wired‑like experience without buying extra hardware.

User Comments (0)

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