Openai/6934a187-1310-8008-b3e5-5172fc2150b5
This conversation was exported from ChatGPT[1]
gpt-5-1 edit
User: How to connect to WiFi on Linux using nmcli edit
How to connect to WiFi on Linux using nmcli
Assistant: Here’s a simple, clean guide on how to connect to Wi-Fi using nmcli on Linux. edit
Here’s a simple, clean guide on how to connect to Wi-Fi using nmcli on Linux.
### edit
nmcli device wifi list
This scans and displays nearby access points.
Most systems use wlan0, wlp2s0, or similar. Check with: edit
nmcli device status
Look for the device listed as wifi under TYPE.
If the network is a typical WPA/WPA2/WPA3 network: edit
nmcli device wifi connect "SSID" password "your_password"
Example:
nmcli device wifi connect "HomeNetwork" password "mypassword123"
nmcli will automatically create a connection profile.
If you have multiple Wi-Fi adapters: edit
nmcli device wifi connect "SSID" password "your_password" ifname wlan0
=====
nmcli device wifi connect "SSID" =====
=====
nmcli connection show --active =====
=====
nmcli device disconnect wlan0 =====
=====
nmcli connection up "SSID" =====
If you want, I can also show you how to create a persistent Wi-Fi profile manually, edit it, delete it, or troubleshoot connection issues.
User: This doesn’t return anything edit
This doesn’t return anything
Assistant: If nmcli device wifi list returns nothing at all, it usually means one of these: edit
If nmcli device wifi list returns nothing at all, it usually means one of these:
Check if it’s blocked: edit
nmcli radio wifi
If it says disabled, enable it:
nmcli radio wifi on
Or:
rfkill unblock wifi
Then try scanning again:
nmcli device wifi rescan
nmcli device wifi list
Check the device list: edit
nmcli device status
Look for a line like:
| | | | | --- | --- | --- | | | | |
If the TYPE isn’t "wifi" or the device shows "unavailable":
- Driver problem
- Interface is down
- Interface not managed by NetworkManager
Bring it up manually: edit
sudo ip link set wlan0 up
(Replace wlan0 with your actual Wi-Fi interface from nmcli device status.)
Then rescan:
nmcli device wifi rescan
Run: edit
ip a
Or:
lsusb
lspci
If no wireless interface exists, the driver may be missing (common on VMs, Raspberry Pi images with broken firmware, etc.).
===
nmcli device status ===and I can tell you exactly what’s wrong.
gpt-5-mini edit
edit
It says “scanning not allowed while unavailable”
edit
Ah, that message “scanning not allowed while unavailable” means your Wi-Fi interface exists but NetworkManager considers it “unavailable”, so it won’t let you scan for networks yet. This usually happens if the interface is down, blocked, or not managed.
Here’s how to fix it:
=====
nmcli device status =====
You’ll see something like:
| | | | | --- | --- | --- | | | | |
=====
nmcli radio wifi on =====
Check again with:
nmcli device status
Some devices are soft-blocked (software block) or hard-blocked (hardware switch): edit
rfkill list
If you see Soft blocked: yes or Hard blocked: yes on your Wi-Fi device:
- Unblock soft block:
sudo rfkill unblock wifi
- Hard block means a physical switch or function key is disabling Wi-Fi. Turn it on.
=====
sudo ip link set wlan0 up =====
(Replace wlan0 with your interface name.)
=====
nmcli device wifi rescan =====
nmcli device wifi list
After this, nmcli device wifi list should show available networks.
If you want, I can give a single set of commands that usually fixes the “unavailable” Wi-Fi on Linux in one go. It’s a neat shortcut. Do you want me to do that?
User: Okay so nmcli device status returns a loopback device connected externally, and wlan0 which says unmanaged edit
Okay so nmcli device status returns a loopback device connected externally, and wlan0 which says unmanaged
Nmcli radio WiFi returns enabled
Rfkill list returns no on everything
Sudo ip link set wlan0 up runs with no errors
Then nmcli device WiFi rescan still gives the same error that scanning isn’t allowed while unavailable
Assistant: Ah — now it’s clear: your Wi-Fi interface wlan0 is “unmanaged” by NetworkManager, which is why nmcli refuses to scan or… edit
Ah — now it’s clear: your Wi-Fi interface (wlan0) is “unmanaged” by NetworkManager, which is why nmcli refuses to scan or connect. This is not a hardware or rfkill problem — NetworkManager is simply ignoring the device.
Here’s how to fix it.
- NetworkManager only manages interfaces that are not listed as unmanaged in its configuration. edit
- Some Linux distros (especially minimal ones, Raspbian/Kali, or VM images) leave interfaces unmanaged by default, expecting you to use /etc/network/interfaces or other tools.
### edit
sudo cat /etc/NetworkManager/NetworkManager.conf
You might see a section like:
[ifupdown]
managed=false- If managed=false, NetworkManager will ignore interfaces defined in /etc/network/interfaces.
=====
sudo nano /etc/NetworkManager/NetworkManager.conf =====
Change (or add) this section:
[ifupdown]
managed=trueSave the file.
=====
sudo systemctl restart NetworkManager =====
=====
nmcli device status =====
- wlan0 should now appear as disconnected, not unmanaged.
=====
nmcli device wifi rescan =====
nmcli device wifi list
nmcli device wifi connect "SSID" password "your_password"
💡 Tip: After this, NetworkManager should automatically manage your Wi-Fi on boot.
If you want, I can also show a quick temporary way to force nmcli to manage wlan0 without editing config — useful if you just want to get online right now. Do you want me to show that?
User: It still says unmanaged edit
It still says unmanaged
Assistant: Ah, focusing on the nmcli device status output — the key point is that wlan0 showing as “unmanaged” means NetworkManage… edit
Ah, focusing on the nmcli device status output — the key point is that wlan0 showing as “unmanaged” means NetworkManager is deliberately ignoring it, so nmcli won’t let you scan or connect.
Here’s what that line really tells you:
| | | | --- | --- | | | | | | | | | |
When STATE is unmanaged:
- nmcli device wifi list will not work.
- You cannot use NetworkManager to connect.
- The interface may still work manually via wpa_supplicant or ip commands, but NetworkManager won’t touch it.
Common causes for “unmanaged”:
- NetworkManager config (/etc/NetworkManager/NetworkManager.conf) has [ifupdown] managed=false.
- The interface is listed in /etc/network/interfaces or another network config, so NM ignores it.
- Some minimal Linux distros (like Kali Lite or Raspbian minimal) mark Wi-Fi devices as unmanaged by default.
Next step: You need to either make NetworkManager manage wlan0, or use manual wpa_supplicant + dhclient commands to connect.
If you want, I can give a step-by-step method to make wlan0 managed on systems where editing NetworkManager.conf didn’t work — this usually fixes the “unmanaged” issue for good. Do you want me to do that?
User: Yes edit
Yes
Assistant: Perfect — let’s fix this “unmanaged” Wi-Fi issue step by step. edit
Perfect — let’s fix this “unmanaged” Wi-Fi issue step by step. Since editing NetworkManager.conf didn’t work, we’ll explicitly tell NetworkManager to manage wlan0.
NetworkManager won’t manage any interface defined in /etc/network/interfaces. Run: edit
cat /etc/network/interfaces
If you see something like:
auto wlan0
iface wlan0 inet dhcpthen NetworkManager will ignore it.
✅ Fix: Comment out or remove wlan0 from this file:
sudo nano /etc/network/interfaces
Change to:
#auto wlan0
#iface wlan0 inet dhcp
Save and exit.
Check /etc/NetworkManager/NetworkManager.conf again: edit
sudo nano /etc/NetworkManager/NetworkManager.conf
Make sure you have:
[ifupdown]
managed=trueIf you added it before, leave it.
====
sudo systemctl restart NetworkManager ====
====
nmcli device status ====
- wlan0 should now appear as disconnected, not unmanaged.
====
sudo ip link set wlan0 up ====
====
nmcli device wifi rescan ====
nmcli device wifi list
You should now see your networks.
If you just want to get online without changing config files, you can manually create a NetworkManager connection: edit
sudo nmcli dev set wlan0 managed yes
Then try scanning again:
nmcli device wifi rescan
nmcli device wifi list
This command forces NM to manage wlan0 for the current session.
If you want, I can give a full one-shot set of commands that usually fixes “unmanaged” Wi-Fi permanently on Kali, Raspbian, or similar minimal distros. It’s like a shortcut that gets you online fast.
Do you want me to do that?
User: It says edit
It says
auto lo
Iface lo inet loopback
Assistant: Ah, that part I mentioned auto wlan0 / iface wlan0 inet dhcp is what NetworkManager looks for when deciding whether to … edit
Ah, that part I mentioned (auto wlan0 / iface wlan0 inet dhcp) is what NetworkManager looks for when deciding whether to manage an interface. Let me clarify:
auto wlan0This tells the system to automatically bring up the wlan0 interface at boot.iface wlan0 inet dhcpThis defines the interface configuration. inet dhcp means it will use DHCP to get an IP address automatically.
💡 Why it matters for NetworkManager:
If your /etc/network/interfaces file contains a configuration like this for wlan0, NetworkManager will ignore that interface by default. It assumes the system’s “classic” networking tools are managing it.
In your case, your /etc/network/interfaces only has:
auto lo
iface lo inet loopback- lo is the loopback interface (127.0.0.1)
- There’s no entry for wlan0, which means NM should be able to manage it.
So the “unmanaged” state is not caused by /etc/network/interfaces, and we need to look elsewhere — like whether NM is ignoring the device due to udev rules, missing drivers, or it being marked unmanaged elsewhere.
If you want, I can give a precise method to force NetworkManager to manage wlan0 even when it’s stubbornly showing as unmanaged. This usually works on minimal Linux installs like yours. Do you want me to do that?
User: Yes edit
Yes
Assistant: Perfect — let’s force NetworkManager to manage your wlan0. edit
Perfect — let’s force NetworkManager to manage your wlan0. This works even on minimal Linux setups (Kali, Raspbian Lite, etc.) where wlan0 stubbornly stays unmanaged.
1. Open a new file for custom rules: edit
sudo nano /etc/NetworkManager/conf.d/10-wlan0.conf
- Add the following:
[keyfile]
unmanaged-devices=none- This tells NetworkManager: don’t treat any device as unmanaged.
Save and exit (Ctrl+O, Enter, Ctrl+X).
====
sudo systemctl restart NetworkManager ====
====
sudo nmcli device set wlan0 managed yes ====
- This explicitly tells NM to manage wlan0 for the current session.
====
nmcli device status ====
- wlan0 should now show disconnected, not unmanaged.
====
sudo ip link set wlan0 up ====
====
nmcli device wifi rescan ====
nmcli device wifi list
nmcli device wifi connect "SSID" password "your_password"
✅ At this point, you should be able to see Wi-Fi networks and connect using nmcli.
If this still doesn’t work, the next step is usually checking whether the Wi-Fi driver or firmware is missing, which is common on minimal installs — I can guide you through that too.
Do you want me to check the driver/firmware next?
User: How to connect to WiFi with iw edit
How to connect to WiFi with iw
Assistant: Ah, since nmcli is refusing to manage your Wi-Fi unmanaged, you can use iw + wpasupplicant + dhclient to connect manual… edit
Ah, since nmcli is refusing to manage your Wi-Fi (unmanaged), you can use iw + wpa_supplicant + dhclient to connect manually. This bypasses NetworkManager completely.
Here’s a step-by-step guide:
1. Identify your Wi-Fi interface edit
ip link
Look for the interface name, e.g., wlan0.
2. Bring the interface up edit
sudo ip link set wlan0 up
3. Scan for available networks edit
sudo iw dev wlan0 scan | grep SSID
This will list all visible SSIDs.
4. Create a WPA/WPA2 configuration edit
Create a temporary wpa_supplicant config file:
sudo nano /tmp/wpa.conf
Add:
network={
ssid="YOUR_SSID"
psk="YOUR_PASSWORD"
}Replace YOUR_SSID and YOUR_PASSWORD with your Wi-Fi credentials. Save and exit.
5. Connect using wpa_supplicant edit
sudo wpa_supplicant -B -i wlan0 -c /tmp/wpa.conf
- -B → run in the background
- -i wlan0 → your interface
- -c /tmp/wpa.conf → configuration file
This establishes the Wi-Fi connection.
6. Get an IP address edit
sudo dhclient wlan0
- This asks the router for an IP via DHCP.
7. Verify connection edit
ip a show wlan0
ping 8.8.8.8
- If you see an IP address on wlan0 and ping works, you’re online.
8. Optional: Disconnect edit
sudo killall wpa_supplicant
sudo dhclient -r wlan0
💡 Tip: You can make this persistent by saving the wpa_supplicant configuration in /etc/wpa_supplicant/wpa_supplicant.conf and enabling the service.
If you want, I can write a one-liner command that scans and connects using iw + wpa_supplicant without touching NetworkManager, which is handy for minimal distros. Do you want me to do that?
References edit
- ↑ "Connect WiFi with nmcli". ChatGPT. Retrieved 2025-12-07.