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
?
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
You can create a hotspot with:
nmcli dev wifi hotspot ifname wlp4s0 ssid test password "test1234"
where
wlp4s0
is the name of your Wifi interface.
Method 2
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:
- https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Networking_Guide/sec-Using_the_NetworkManager_Command_Line_Tool_nmcli.html
- https://www.hogarthuk.com/?q=node/8
Method 3
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:
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.
Method 4
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
Method 5
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 getIP 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)
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0