Ubuntu 22.04 automatically connects to known Wi-Fi networks by default, which can be undesirable in secure or shared environments. You can prevent this behavior by modifying the connection profile using nmtui or nmcli to disable autoconnect. This ensures the system only joins networks when explicitly requested by the user.
Understanding Autoconnect Behavior
NetworkManager, the service responsible for managing network connections on Ubuntu, maintains a database of known Wi-Fi profiles. By default, theconnection.autoconnect property is set to true for these profiles. When the system detects an available network with a matching SSID and security key, it attempts to join immediately. This feature is convenient for home users but poses risks in public spaces or when traveling, where unintended connections might expose sensitive data or consume bandwidth.
Disabling this feature does not delete the saved credentials. Instead, it tells NetworkManager to treat the profile as "manual." The network will remain in your list of known connections, allowing you to connect later if needed, but it will no longer trigger an automatic handshake upon boot or when the network comes into range.
Method 1: Using the Terminal Command Line Interface
The most reliable way to manage these settings is through the command line toolnmcli. This method provides precise control over individual profiles and is ideal for scripting or remote administration.
First, identify the name of the Wi-Fi connection you wish to modify. Run the following command to list all active and stored connections:
nmcli connection show
Look for entries under the TYPE column labeled 802-11-wireless. Note the exact name in the NAME column. For example, if your network is called "Office-WiFi", use that string.
Next, update the connection profile to disable autoconnect. Replace ConnectionName with the actual name from the previous step:
nmcli connection modify "ConnectionName" 802-11-wireless.autoconnect no
This command changes the internal flag within the configuration file located in /etc/NetworkManager/system-connections/. To verify the change, check the specific property:
nmcli connection show "ConnectionName" | grep autoconnect
The output should display autoconnect: no. If you have multiple networks to disable, repeat this process for each relevant profile. After making changes, restart the NetworkManager service to ensure the new settings are applied without requiring a full reboot:
sudo systemctl restart NetworkManager
Method 2: Using the Text User Interface (TUI)
For users who prefer a visual interface but still want terminal-based control,nmtui offers a menu-driven approach. This tool is pre-installed on Ubuntu Server editions and standard desktop installations.
Launch the utility by typing nmtui in your terminal. Select the option Edit a connection and press Enter. You will see a scrollable list of all saved network profiles. Use the arrow keys to navigate to the Wi-Fi network you want to restrict.
Once highlighted, press Enter to open the editing screen. Navigate down to the Autoconnect field. Toggle this setting from Yes to No using the spacebar. It is crucial to distinguish this from the general system autoconnect toggle; here we are targeting a specific SSID.
After changing the value, move the cursor to OK and press Enter. The tool will save the configuration immediately. Return to the main menu and select Quit. As with the CLI method, restarting NetworkManager ensures the changes take effect instantly:
sudo systemctl restart NetworkManager
Verifying and Troubleshooting
After applying either method, test the configuration by moving away from the target network's range or turning off the router, then rebooting your machine. Upon startup, check the status bar icon. If configured correctly, the Wi-Fi icon should indicate that you are disconnected, even if the network is visible in the scan results. If the system still attempts to connect, check for conflicting rules. Sometimes, VPN configurations or systemd-networkd overrides can interfere with NetworkManager's decisions. Ensure that no other service is forcing a connection. Additionally, verify that the802-11-wireless.autoconnect property remains set to false after a reboot, as some updates may reset custom profiles.
For related issues regarding hardware stability, such as adapters disabling themselves unexpectedly, you may find Ubuntu Wi-Fi Adapter Disables Automatically After System Reboot helpful.
Frequently Asked Questions
Does disabling autoconnect remove the saved password?
No, disabling autoconnect only changes the connection behavior. Your credentials remain securely stored in the system keyring. You can manually reconnect to the network at any time through the settings menu or command line without re-entering the password.How do I re-enable autoconnect for a specific network?
To revert the change, use the same command used to disable it, but set the value to yes. Runnmcli connection modify "ConnectionName" 802-11-wireless.autoconnect yes followed by restarting the NetworkManager service.
Will this affect Bluetooth tethering connections?
No, Wi-Fi autoconnect settings are distinct from PAN (Personal Area Network) or Bluetooth tethering profiles. Modifying802-11-wireless.autoconnect only impacts standard Wi-Fi interfaces and does not alter how your system handles USB or Bluetooth network shares.
Can I disable autoconnect globally for all new networks?
You can set a global default in NetworkManager's main configuration file (/etc/NetworkManager/NetworkManager.conf), but this affects all future connections rather than existing ones. For specific control over current networks, per-profile modification via nmcli is the recommended approach.