Skip to content

Repository files navigation

Linksy PhoneNet 📱⚡

Effortless reverse USB tethering for Linux.
Share your laptop's Wi-Fi internet connection to your Android phone over a USB cable — no root required.

License: MIT Node.js Platform


The Problem & The Solution

Most laptop Wi-Fi cards (particularly Intel iwlwifi and similar single-radio chips) cannot run in Access Point (AP / hotspot) mode while remaining connected to a Wi-Fi network. In practice, attempting to activate an nmcli or GUI hotspot drops the laptop's existing wireless connection. The reliable wireless-radio-free solution is reverse USB tethering: your laptop stays connected to Wi-Fi, and shares that connection with your Android device over a standard USB cable using a VPN-style bridge. Linksy PhoneNet wraps adb and gnirehtet into a friendly, single-command CLI experience that handles dependency installation, binary resolution, phone detection, and daemon management with zero manual file hunting.


Installation

One-line Setup

npx linksy-phonenet setup

Or install globally via npm

npm install -g linksy-phonenet
linksy-phonenet setup

linksy-phonenet setup will:

  1. Detect your Linux distribution.
  2. Check for adb (Android Debug Bridge) and offer to install it automatically via your package manager (dnf, apt, pacman, or zypper) if missing.
  3. Inspect your Wi-Fi interface capabilities (iw list) and let you know if your hardware supports concurrent hotspot mode.
  4. Dynamically resolve and download the latest Gnirehtet release from GitHub directly into ~/.linksy/gnirehtet/.
  5. Set permissions and prepare everything for one-word commands.

Daily Usage

You can use either the direct shortcut commands or the subcommand style:

Direct Shortcuts

Command Description
phonenet-on Start reverse tethering immediately in background
phonenet-off Stop reverse tethering and disconnect tunnel
phonenet-status Check tethering state and phone connection
phonenet-doctor Run diagnostic troubleshooting checks

Subcommands (phonenet or linksy-phonenet)

Command Description
phonenet on / linksy-phonenet on Start reverse tethering (pass -f for foreground)
phonenet off / linksy-phonenet off Stop reverse tethering
phonenet status Display Gnirehtet install, connected phone, and tethering state
phonenet doctor Run 4-step diagnostic checks with actionable fix suggestions
phonenet uninstall Clean up ~/.linksy/ binaries and temporary files

Example Workflow

# 1. Plug in your Android phone via USB
# 2. Turn on tethering
phonenet-on

# 3. Unlock phone and accept the VPN prompt on screen
# Enjoy shared high-speed internet!

# 4. Check connection status
phonenet-status

# 5. Turn off when finished
phonenet-off

Supported Distributions (v1)

Linksy v1 supports Linux with automatic package manager detection for:

  • Fedora / RHEL / CentOS Stream (dnf)
  • Ubuntu / Debian / Linux Mint (apt)
  • Arch Linux / Manjaro (pacman)
  • openSUSE (zypper)

Manual fallback instructions are provided if your package manager is unrecognized.


Diagnostics (linksy doctor)

If your phone is not connecting, run:

linksy doctor

Linksy doctor checks:

  1. Is adb installed and on your system PATH?
  2. Is the gnirehtet binary present and executable in ~/.linksy/?
  3. Is a physical Android phone detected via USB?
  4. Is USB debugging authorized (i.e. RSA key accepted on the phone screen)?

For any failed step, doctor provides an immediate, copy-pasteable fix.


Hardware Testing Checklist

For verifying Linksy on real hardware:

  • Prerequisites: USB cable with data support (not charge-only), Android phone (Android 5.0+).
  • USB Debugging: On your phone, go to SettingsAbout phone → tap Build number 7 times. Go to Developer options → toggle USB debugging ON.
  • Plug In: Connect phone to laptop via USB.
  • Verify Device: Run adb devices. You should see <serial> device or <serial> unauthorized.
  • Run Doctor: Run linksy doctor to confirm all 4 checks pass.
  • Start Tethering: Run linksy on.
  • Authorize on Phone: Tap OK on the "Connection request" (Gnirehtet VPN prompt) on your phone.
  • Test Connectivity: Turn off Cellular Data and Wi-Fi on your phone. Open a browser on the phone and verify internet access works!
  • Stop: Run linksy off and confirm the VPN closes.

Roadmap (Out of Scope for v1)

The following features are planned for future versions:

  • macOS & Windows platform support
  • Fallback to Bluetooth reverse tethering
  • System tray / desktop GUI app
  • iOS reverse tethering support

Credits & Acknowledgements

Linksy is a UX wrapper and workflow orchestrator. It builds upon these open-source tools:


License

MIT License © 2026 Linksy Contributors

About

Reverse USB tethering CLI for Linux - share laptop Wi-Fi with Android without root

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages