It works on the browser, but apps don't realize we actually have internet
I've made it work. I can open any website and it works fine.
The problem is that I wanted to use the reverse thethering to upload my smartphone, but every app including YouTube and Google Photos thinks it isn't online and it doesn't even try to make requests to the internet.
You're describing a key limitation of gnirehtet on Android 12+ and especially Android 14, which many users have now reported:
Problem: Browser works, but apps don’t recognize internet Even though:
You can browse websites normally on your phone,
Apps like YouTube, Google Photos, Gmail, etc. say "You're offline" or silently fail.
This happens because:
Apps rely on Android's system network validation Most modern apps no longer check for connectivity themselves. They instead rely on Android’s ConnectivityManager, which:
Checks if the current network is marked as "validated"
If not, apps assume there is no internet and refuse to connect — even if traffic works perfectly.
Why This Happens with Gnirehtet gnirehtet sets up a VPN interface on Android.
But Android expects that VPN to pass a "connectivity check" (usually accessing https://connectivitycheck.gstatic.com/generate_204)
Since gnirehtet doesn’t fake or validate the network — the OS marks it as "offline".
Apps that obey this state (like Google apps) stop trying. How to Fix or Work Around It
- Disable “Private DNS” on your phone Android sometimes blocks Google's own validation checks if DNS over TLS is enabled.
Go to:
Settings → Network & Internet → Private DNS → Off
- Manually open the Gnirehtet app and start the VPN Sometimes the PC doesn’t properly trigger VPN start.
Run this:
gnirehtet relay Then on your phone:
Open the Gnirehtet app from launcher
Tap “Start”
Look for the VPN key icon in the status bar 3. Use “Always-on VPN” Go to:
Settings → Network & Internet → VPN → Gnirehtet → Enable Always-On
This sometimes helps Android validate the VPN properly.
- Use split-tunnel or exclude system apps (Advanced) If you modify the APK, you can configure it to:
Only proxy certain apps through the VPN (exclude YouTube, Photos, etc.)
Or vice versa — only allow Google apps to bypass VPN and talk directly
This requires editing VpnService.Builder with:
builder.addDisallowedApplication("com.google.android.youtube"); 5. Modify system connectivity checks (Root only) If you're rooted, you can:
Replace the URL used for connectivity check (in settings put global captive_portal_server)
Or use Magisk modules to fake network validation
But this is more complex and not recommended unless you're comfortable rooting.