Skip to main content

Disable connectivity checks (breaks Captive Portal detection)

Overview

About this script

This script improves your privacy on Linux.

These changes use Linux system commands to update your settings.

NetworkManager can try to reach a web server after connecting to a network in order to determine if it is, e.g., behind a captive portal 1.

Disabling connectivity protects against privacy leaks 1, but breaks captive portal detection.

Connectivity URLs differ depending on the Linux distribution, e.g.:

  • Arch Linux: http://ping.archlinux.org/nm-check.txt (in /usr/lib/NetworkManager/conf.d/20-connectivity.conf) 1.
  • Ubuntu: http://connectivity-check.ubuntu.com 2 (in /usr/lib/NetworkManager/conf.d/20-connectivity-ubuntu.conf 3).
  • Pop!_OS: http://204.pop-os.org/ in 20-connectivity-pop.conf 4.
  • Fedora: http://fedoraproject.org/static/hotspot.txt 5 in /usr/lib/NetworkManager/conf.d/20-connectivity-fedora.conf 6.

This script disables connectivity checks by adding a global rule that will override Linux distribution-specific configuration. This is the recommended way to disable connectivity checks 1.

This script uses Bash (Shell script) scripting language.

Not Advised

This script should only be used by advanced users. This script is not recommended for daily use as it breaks important functionality. Do not run it without having backups and system snapshots.

Implementation Details
  • Language: bash

  • Required Privileges: Root/sudo access

  • Compatibility: Linux only

  • Reversibility: Can be undone using provided revert script

Explore Categories

This action belongs to Disable OS data collection category. All operating systems collect data. This is part of their work. Sometimes, this data has high privacy implications, especially when it is submitted to third parties. Some Linux distributions come with out-of-the-box data collection and submission. Most of the time, this data collection is... Read more on category page ▶

Apply now

Choose one of three ways to apply:

  1. Automatically via privacy.sexy: The easiest and safest option.
  2. Manually by downloading: Requires downloading a file.
  3. Manually by copying: Advanced flexibility.

Alternative 1. Apply with Privacy.sexy

privacy.sexy is free and open-source application that lets securely apply this action easily.

Open privacy.sexy

You can fully restore this action (revert back to the original behavior) using the application.

privacy.sexy instructions
  1. Open or download the desktop application
  2. Search for the script name: Disable connectivity checks (breaks Captive Portal detection).
  3. Check the script by clicking on the checkbox.
  4. Click on Run button at the bottom of the page.

Alternative 2. Download

Irreversible Changes

This script is irreversible, meaning there is no straightforward method to restore changes once applied. Exercise caution before running, restoring it may not be possible.

  1. Download the script file by clicking on the button below:

    Download script

  2. Run the script file by clicking on it.

Download revert script

This file restores your system to its original state, before this script is applied.

Download restore script

Alternative 3. Copy

This is for advanced users. Consider automatically applying or downloading the script for simpler way.

  1. Open Terminal

  2. Copy the following code:

Code to apply changes
if ! command -v '/usr/sbin/NetworkManager' &> /dev/null; then
echo 'Skipping because "/usr/sbin/NetworkManager" is not found.'
else
file='/etc/NetworkManager/conf.d/20-disable-connectivity-privacy-sexy.conf'
content=$'# Created by privacy.sexy\n[connectivity]\nenabled=false'
directory="${file%/*}"
mkdir -p "$directory"
if [ -f "$file" ]; then
echo "Skipping, connectivity checks are already disabled through $file."
else
echo -n "$content" | sudo tee "$file" > /dev/null
echo 'Successfully disabled connectivity checks.'
fi
if command -v 'nmcli' &> /dev/null; then
sudo nmcli general reload
echo 'Successfully reloaded configuration.'
else
echo 'It will take effect after reboot.'
fi
fi
  1. Paste the code into terminal.
  2. Press Enter to apply the code.

Some scripts requires restarting your computer to take affect.

Copy restore code

Copy and run the following code to restore changes:

Revert code
if ! command -v '/usr/sbin/NetworkManager' &> /dev/null; then
>&2 echo 'Cannot revert because "/usr/sbin/NetworkManager" is not found.'
else
if [ ! -f "$file" ]; then
echo 'Skipping, connectivity checks are not disabled.'
else
sudo rm -fv "$file"
echo 'Successfully restored connectivity checks.'
fi
if command -v 'nmcli' &> /dev/null; then
sudo nmcli general reload
echo 'Successfully reloaded configuration.'
else
echo 'It will take effect after reboot.'
fi
fi

Support

This website relies on your support.

Support now

Your donation helps keep the project alive and improves its content ❤️.

Share this page: