A simple way to block access to the internet per application
Java C
Latest commit e3b9568 Feb 21, 2017 @M66B 2.70 release

README.md

NetGuard

NetGuard provides simple and advanced ways to block access to the internet - no root required. Applications and addresses can individually be allowed or denied access to your Wi-Fi and/or mobile connection.

Blocking access to the internet can help:

  • reduce your data usage
  • save your battery
  • increase your privacy

NetGuard is the first free and open source no-root firewall for Android.

Features:

  • Simple to use
  • No root required
  • 100% open source
  • No calling home
  • No tracking or analytics
  • Actively developed and supported
  • Android 4.0 and later supported
  • IPv4/IPv6 TCP/UDP supported
  • Tethering supported
  • Multiple device users supported
  • Optionally allow when screen on
  • Optionally block when roaming
  • Optionally block system applications
  • Optionally forward ports, also to external addresses (not available if installed from the Play store)
  • Optionally notify when an application accesses the internet
  • Optionally record network usage per application per address
  • Optionally block ads using a hosts file (not available if installed from the Play store)
  • Material design theme with light and dark theme

PRO features:

  • Log all outgoing traffic; search and filter access attempts; export PCAP files to analyze traffic
  • Allow/block individual addresses per application
  • New application notifications; configure NetGuard directly from the notification
  • Display network speed graph in a status bar notification
  • Select from five additional themes in both light and dark version

There is no other no-root firewall offering all these features.

Requirements:

Downloads:

Usage:

  • Enable the firewall using the switch in the action bar
  • Allow/deny Wi-Fi/mobile internet access using the icons along the right side of the application list

You can use the settings menu to change from blacklist mode (allow all in Settings but block unwanted applications in list) to whitelist mode (block all in Settings but allow favorite applications in list).

  • Red/orange/yellow/amber = internet access denied
  • Teal/blue/purple/grey = internet access allowed

For more screenshots, see here.

Compatibility

The only way to build a no-root firewall on Android is to use the Android VPN service. Android doesn't allow chaining of VPN services, so you cannot use NetGuard together with other VPN based applications. See also this FAQ.

NetGuard can be used on rooted devices too and even offers more features than most root firewalls.

Some Android versions, expecially not updated Samsung Android versions, have a buggy VPN implementation, which results in Android refusing to start the VPN service in certain circumstances, like when there is no internet conncectivity yet (when starting up your device) or when incorrectly requiring manual approval of the VPN service again (when starting up your device).

NetGuard will not work or crash when the package com.android.vpndialogs has been removed or otherwise is unavailable.

Frequently Asked Questions (FAQ)

(0) How do I use NetGuard?

(1) Can NetGuard completely protect my privacy?

(2) Can I use another VPN application while using NetGuard?

(3) Can I use NetGuard on any Android version?

(4) Will NetGuard use extra battery power?

(6) Will NetGuard send my internet traffic to an external (VPN) server?

(7) Why are applications without internet permission shown?

(8) What do I need to enable for the Google Play™ store app to work?

(9) Why is the VPN service being restarted?

(10) Will you provide a Tasker plug-in?

(13) How can I remove the ongoing NetGuard entry in the notification screen?

(14) Why can't I select OK to approve the VPN connection request?

(15) Why won't you support the F-Droid builds?

(16) Why are some applications shown dimmed?

(17) Why is NetGuard using so much memory?

(18) Why can't I find NetGuard in the Google Play™ store app?

(19) Why does application XYZ still have internet access?

(20) Can I Greenify/hibernate NetGuard?

(21) Does doze mode affect NetGuard?

(22) Can I tether / use Wi-Fi calling while using NetGuard?

(24) Can you remove the notification from the status bar?

(25) Can you add a 'select all'?

(27) How do I read the blocked traffic log?

(28) Why is Google connectivity services allowed internet access by default?

(29) Why do I get 'The item you requested is not available for purchase'?

(30) Can I also run AFWall+ on the same device?

(31) Why can some applications be configured as a group only?

(32) Why is the battery/network usage of NetGuard so high

(33) Can you add profiles?

(34) Can you add the condition 'when on foreground'?

(35) Why does the VPN not start?

(36) Can you add PIN or password protection?

(37) Why are the pro features so expensive?

(38) Why did NetGuard stop running?

(39) How does a VPN based firewall differ from a iptables based firewall?

(40) Can you add schedules?

(41) Can you add wildcards?

(42) Why is permission ... needed?

(43) I get 'This app is causing your device to run slowly'

(44) I don't get notifications on access

(45) Does NetGuard handle incoming connections?

(46) Can I get a refund?

(47) Why are there in application advertisements?

(48) Why are some domain names blocked while they are set to be allowed?

(49) Does NetGuard encrypt my internet traffic / hide my IP address?

Support

For questions, feature requests and bug reports, please use this XDA-Developers forum thread

NetGuard is supported for phones and tablets only, so not for other device types like on a television or in a car.

Contributing

Building

Building is simple, if you install the right tools:

The native code is built as part of the Android Studio project.

It is expected that you can solve build problems yourself, so there is no support on building. If you cannot build yourself, there are prebuilt versions of NetGuard available here.

Translating

  • Translations to other languages are welcomed
  • You can translate online here
  • If your language is not listed, please send a message to marcel(plus)netguard(at)faircode(dot)eu
  • You can see the status of all translations here.

Please note that you agree to the license below by contributing, including the copyright.

Attribution

NetGuard uses:

License

GNU General Public License version 3

Copyright (c) 2015-2016 Marcel Bokhorst (M66B)

All rights reserved

This file is part of NetGuard.

NetGuard is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your discretion) any later version.

NetGuard is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with NetGuard. If not, see http://www.gnu.org/licenses/.

Trademarks

Android is a trademark of Google Inc. Google Play is a trademark of Google Inc