Wireless ADB When Your Network Fights You

How to connect ADB over Wi-Fi using a one-time USB handshake, even when a VPN or firewall blocks the direct connection.

WORDS: 280 | CODE BLOCKS: 2 | EXT. LINKS: 0

Wireless ADB keeps timing out if you run a VPN or something like Cloudflare WARP. The issue is that these tools route all traffic through a tunnel and block direct peer-to-peer connections on your local network.

The fix is a one-time USB handshake to tell the device to listen on TCP before you go wireless.


Step 1: USB handshake

Connect your device via USB (USB debugging must be on). Then run:

bash
1adb tcpip 5555

This restarts the ADB daemon on your phone in TCP mode, listening on port 5555. Once it confirms, unplug the cable.

Step 2: Find the device IP

On the device: Settings > About phone > Status > IP address

It will be something like 192.168.x.x or 10.0.x.x. Use exactly what you see here, not what your router shows.

Step 3: Connect

bash
1adb connect 192.168.x.x:5555

You should see connected to 192.168.x.x:5555. Done.


Why the USB step is necessary

Connecting wirelessly without it fails because the VPN blocks the initial TCP handshake. The USB connection is a direct physical link, not subject to your network’s routing rules. Running adb tcpip 5555 over USB puts the device into listening mode first, so when you connect wirelessly, the device is already ready.


Useful commands once connected

Command What it does
adb devices List connected devices
adb install <path.apk> Install an APK
adb uninstall <package> Uninstall an app
adb shell Open a shell on the device
adb logcat Stream system logs
adb reverse tcp:4001 tcp:4001 Forward device port to your machine (for local dev servers)
adb push <local> <remote> Copy file to device
adb pull <remote> <local> Copy file from device
adb disconnect <ip>:<port> Disconnect a specific device
adb disconnect Disconnect all