45

How can I create a Wi-Fi hotspot with the command line tool nmcli and share/bridge the ethernet internet connection with the wireless access point? Furthermore, how can I start this automatically at boot?

Is this possible with nmcli?

3

6 Answers 6

44

You can create a hotspot with the following:

nmcli dev wifi hotspot ifname wlp4s0 ssid test password "test1234"

(where wlp4s0 is the name of your Wifi interface).

Reference: https://wiki.debian.org/WiFi/HowToUse#Troubleshooting_.26_Tips_for_NetworkManager

9
  • 1
    Simplest answer, yet so effective. Thank you.
    – oidualc
    Apr 27, 2018 at 9:31
  • 1
    Thank you so much for this answer, amazingly simple and works great.
    – Guido
    Sep 15, 2018 at 9:55
  • 3
    Does not work: Error: Connection activation failed: (5) IP configuration could not be reserved (no available address, timeout, etc.). Sep 15, 2020 at 8:46
  • 1
    FYI this answer is linked at wiki.debian.org/WiFi/HowToUse
    – Criggie
    Dec 26, 2020 at 12:49
  • 3
    I can't connect to the hotspot resulting from executing this
    – m4l490n
    Jun 18, 2021 at 22:10
11

On a Centos 7 it looks like this.

Check if AP is possible at all:

iw list | less

and search for "AP" among supported interface modes.

Browse your devices to find the name:

nmcli d

And setup and start your hotspot.

Mind that wifi-device, connection-name and hotspot-ssid are specific to your system.

nmcli c add type wifi ifname wifi-device con-name connection-name autoconnect no ssid hotspot-ssid
nmcli connection modify connection-name 802-11-wireless.mode ap 802-11-wireless.band bg ipv4.method shared
nmcli connection modify connection-name wifi-sec.key-mgmt wpa-psk
nmcli connection modify connection-name wifi-sec.psk "le password"
nmcli connection up connection-name

Check also:

9

I created a Hotspot with the GNOME Network-Manager. The problem was, that I can not configure the SSID and password in GUI. If you create the Hotspot with the Network-Manager GUI, it creates the file /etc/NetworkManager/system-connections/Hotspot. In that file it is possible to edit the SSID and the password.

sudo vim /etc/NetworkManager/system-connections/Hotspot

The content of the file looks like this:

[connection]
id=Hotspot
uuid=0bf627gd-8e34-48c6-865a-06f898b4y1hb
type=wifi
autoconnect=true
permissions=
secondaries=

[wifi]
hidden=false
mac-address=YOUR_WIFI_INTERFACE_MAC_ADDRESS
mac-address-blacklist=
mode=ap
seen-bssids=
ssid=SSID_NAME

[wifi-security]
group=ccmp;
key-mgmt=wpa-psk
pairwise=ccmp;
proto=rsn;
psk=YOUR_WIFI_AP_PASSWORD

[ipv4]
dns-search=
method=shared

[ipv6]
dns-search=
method=auto

I changed the ssid and the psk properties to my needs. To enable autostart you have to set the parameter autoconnect to true. Then I restarted my computer because the command: sudo systemctl restart NetworkManager for network restart seems not to work correctly, because in the Network-Manager GUI:

wireless settings gone

I have no wireless network settings anymore and also the following command worked not before the restart. After restart you can use the nmcli command to start the access point.

nmcli con up Hotspot ifname YOUR_WIFI_INTERFACE

YOUR_WIFI_INTERFACE you can find out with the command iwconfig.

I used Antergos / Arch Linux for the above solution and found the hint to this at the ask.fedoraproject.org site.

7

I know this is an old question, but thought I would add my comments as this may help someone in the future.

The whole process is just three commands as @Dzik has correctly mentioned.

nmcli connection add type wifi ifname wlan0 con-name local-ap autoconnect yes ssid test-ap mode ap
nmcli connection modify con-name 802-11-wireless.mode ap 802-11-wireless-security.key-mgmt wpa-psk ipv4.method shared 802-11-wireless-security.psk 'PASSWORD'
nmcli connection up con-name

This will start an AP for you.

To verify, we can use:

nmcli dev wifi list
2
  • 1
    This worked for me (when the accepted answer did not) on Ubuntu 20.04. Unfortunately some additional setup is apparently required for the machine with the access point to also share its internet.
    – zrajm
    Jul 21, 2021 at 12:23
  • When I use 802-11-wireless-security.key-mgmt wpa-psk the clients complain that the connection uses WPA, which is not secure, and that I should switch to WPA2/WPA3. When I read the manual for this property it says that wpa-psk means WPA2/WPA3. What's going on here?
    – Andreas
    Sep 26, 2022 at 16:44
4

Just

nmcli dev wifi hotspot

will generate a password and start a hotspot with SSID Hotspot-<YOUR_HOSTNAME> on the default wifi interface.

To show the Wi-Fi name and password (and a QR code):

nmcli dev wifi show-password

From nmcli dev wifi --help:

ARGUMENTS := hotspot [ifname <ifname>] [con-name <name>] [ssid <SSID>]
                                         [band a|bg] [channel <channel>] [password <password>]

Create a Wi-Fi hotspot. Use 'connection down' or 'device disconnect'
to stop the hotspot.
Parameters of the hotspot can be influenced by the optional parameters:
ifname - Wi-Fi device to use
con-name - name of the created hotspot connection profile
ssid - SSID of the hotspot
band - Wi-Fi band to use
channel - Wi-Fi channel to use
password - password to use for the hotspot

Note: You need a DHCP server installed (e.g. dnsmasq), or you'll get

IP configuration could not be reserved (no available address, timeout, etc.).

For the "start on boot" part: see Autostarting page in ArchWiki for an overview.

(The first command here was intended as a comment to ysdx's answer, but I don't have enough rep)

1
  • You shouldn't use the hotspot option unless you want the hotspot device to also be the DHCP server. Feb 8 at 6:27
0

Anyone have an answer how to do it when the driver does NOT support AP-mode?

Mine only supports managed and IBSS (eg "Ad-Hoc")
(it's a Broadcom proprietary driver broadcom-sta-dkms)

I would also like to use another DHCPD to handout IP's instead of the one used by NetworkManager...

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .