Skip to content

Instantly share code, notes, and snippets.

Last active March 24, 2023 10:08
What would you like to do?
Create Wi-Fi Hotspot on Linux using nmcli

Create a Wi-Fi hotspot on Linux using nmcli

Original post :

nmcli con add type wifi ifname wlan0 con-name Hostspot autoconnect yes ssid Hostspot
nmcli con modify Hostspot 802-11-wireless.mode ap bg ipv4.method shared
nmcli con modify Hostspot wifi-sec.key-mgmt wpa-psk
nmcli con modify Hostspot wifi-sec.psk "veryveryhardpassword1234"
nmcli con up Hostspot


If after reboot nmcli con up Hotspot doesn't work

Use this command instead to start Hotspot

UUID=$(grep uuid /etc/NetworkManager/system-connections/Hotspot | cut -d= -f2)
nmcli con up uuid $UUID
Copy link

Following these commands creates the wifi hotspot for me, but DHCP doesn't seem to work, even though I have dnsmasq installed. The clients are stuck on "self assigned ip". I'm on ubuntu server 22.04 on a raspberry pi w 2.

@groeneveld on Debian derivatives (ie Ubuntu, Raspian, etc) you need to install dnsmasq-base and not dnsmasq

Copy link

sp00ck commented Aug 28, 2022

this is wep (very weak encryptions)
how using WPA3 ?

Copy link

I never ran into any problems with Ubuntu on a Pi. This week I've been transitioning to an Asus Tinker board S R2.0 running Debian 10 kernel 4.4.194 and it has been frustrating.
wlan0 is up with the correct IP address:
Hotspot is up and SSID is there, advertised
Select SSID, try to login and then
Screen Shot 2022-09-16 at 5 20 02 PM

UUID is correct,... basically everything seems correct. I don't know what I am missing
Any help will be appreciated

Copy link

funnywwh commented Oct 5, 2022

In archlinux to share the wired internet via wifi, the dnsmasq packet is required for the network to lift properly.

It is also possible to create the network in a single command.

$ IFNAME="wlan0" && CON_NAME="MATARIFE" && PASSWD="password" && nmcli c add type wifi ifname $IFNAME con-name $CON_NAME autoconnect yes ssid $CON_NAME 802-11-wireless.mode ap bg ipv4.method shared wifi-sec.key-mgmt wpa-psk wifi-sec.psk "$PASSWD"

And then just lift the network.

$ nmcli con up $CON_NAME

We check that the wired network is sharing the internet via wifi.

$ nmcli d s | grep ^$IFNAME
wlan0          wifi      connected     MATARIFE

I also have a script that automates the procedure. For more information I also have a post on my Telegram channel dedicated to the topic.

greate on rk3568 debian

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment