NetworkManager: Difference between revisions
m (Add todo item for autoconnect of wifi network on boot) |
Prabuanand (talk | contribs) (fixed links, moved Todo related to KDE plasma to bottom of the page) |
||
Line 1: | Line 1: | ||
[https://networkmanager.dev/ NetworkManager] is | [https://networkmanager.dev/ NetworkManager] is the standard Linux network configuration tool suite. [[NetworkManager]] supports both wireless daemons i.e [[#iwd_backend|iwd]] and [[#wpa_supplicant_backend|wpa_supplicant]]. Using both may lead to conflicts. | ||
== Installation == | == Installation == | ||
{{Cmd|# apk add {{Pkg|networkmanager}}}} | {{Cmd|# apk add {{Pkg|networkmanager}}}} | ||
<br> | <br> | ||
{{Note| Networkmanager needs to have [[eudev|udev]] to be setup properly. Otherwise your network devices can be listed as (strictly-)unmanaged. The busybox implementation mdev is not sufficient. You can set up proper udev with: | |||
{{Note| | {{Cmd|# setup-devd udev}}}} | ||
Networkmanager needs to have [[eudev|udev]] to be setup properly. The busybox implementation mdev is not sufficient. You can set up proper udev with: | |||
{{Cmd|# setup-devd udev}} | |||
}} | |||
There are multiple interfaces available for NetworkManager: | There are multiple interfaces available for NetworkManager: | ||
Line 20: | Line 14: | ||
* GUI: {{Pkg|plasma-nm}} for Plasma integration and applet | * GUI: {{Pkg|plasma-nm}} for Plasma integration and applet | ||
* GUI: {{Pkg|network-manager-applet}} for a GTK system tray applet | * GUI: {{Pkg|network-manager-applet}} for a GTK system tray applet | ||
For the list of all NetworkManager packages refer {{pkg|networkmanager-*}} | |||
<br> | <br> | ||
You will need to install an additional package if you want NetworkManager to connect to wifi: | You will need to install an additional package if you want NetworkManager to connect to wifi: | ||
{{Cmd|# apk add {{Pkg|networkmanager-wifi}}}} | {{Cmd|# apk add {{Pkg|networkmanager-wifi}}}} | ||
<br> | <br> | ||
Line 32: | Line 25: | ||
<br> | <br> | ||
Then set it to autostart the service on boot: | Then set it to autostart the service on boot: | ||
{{Cmd|# rc-update add networkmanager default}} | {{Cmd|# rc-update add networkmanager default}} | ||
<br> | <br> | ||
Line 42: | Line 33: | ||
{{Note|you will need to log out for the new group to take effect}} | {{Note|you will need to log out for the new group to take effect}} | ||
<br> | <br> | ||
Line 49: | Line 39: | ||
If wired networks do not appear or you get an error message like "Could not activate connection: Connection 'Ethernet connection 1' is not available on device eth0 because device is strictly unmanaged", add the following to {{path|/etc/NetworkManager/NetworkManager.conf}}: | If wired networks do not appear or you get an error message like "Could not activate connection: Connection 'Ethernet connection 1' is not available on device eth0 because device is strictly unmanaged", add the following to {{path|/etc/NetworkManager/NetworkManager.conf}}: | ||
{{Cat|/etc/NetworkManager/NetworkManager.conf|[ifupdown] | |||
[ifupdown] | managed{{=}}true | ||
managed=true | }} | ||
<br> | <br> | ||
Line 60: | Line 48: | ||
==== wpa_supplicant backend ==== | ==== wpa_supplicant backend ==== | ||
Refer the sections [[Wi-Fi#wpa supplicant|wpa supplicant]] and [[Wi-Fi#Automatic Configuration on System Boot|Automatic Configuration on System Boot]]. {{Pkg|wpa_supplicant}} configuration might not be required, if it isn't it may be a good idea to have it setup just as a fallback. | |||
Now open {{path|/etc/NetworkManager/NetworkManager.conf}} in a text editor and change it to something like this: | Now open {{path|/etc/NetworkManager/NetworkManager.conf}} in a text editor and change it to something like this: | ||
Line 81: | Line 63: | ||
wifi.backend=wpa_supplicant</nowiki>}} | wifi.backend=wpa_supplicant</nowiki>}} | ||
{{Note|if these options dont work on your system you can change them as necessary}} | {{Note|if these options dont work on your system you can change them as necessary.}} | ||
<br> | <br> | ||
Line 97: | Line 79: | ||
<br> | <br> | ||
Now connect to a network using one of the interfaces mentioned in [[NetworkManager#Installation|Installation]] | Now connect to a network using one of the interfaces mentioned in [[NetworkManager#Installation|Installation]] | ||
<br> | <br> | ||
Line 111: | Line 91: | ||
==== iwd backend ==== | ==== iwd backend ==== | ||
{{Seealso|iwd}} | |||
NetworkManager supports wireless networks through {{Pkg|iwd}}, however, consider [https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues?scope=all&utf8=%E2%9C%93&state=opened&search=iwd existing issues] before using it. After installation, enable the server and restart NetworkManager: | NetworkManager supports wireless networks through {{Pkg|iwd}}, however, consider [https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues?scope=all&utf8=%E2%9C%93&state=opened&search=iwd existing issues] before using it. After installation, enable the server and restart NetworkManager: | ||
<pre> | <pre> | ||
Line 133: | Line 113: | ||
* {{Pkg|networkmanager-openvpn}} for OpenVPN | * {{Pkg|networkmanager-openvpn}} for OpenVPN | ||
== | == Troubleshooting == | ||
=== not authorized to control networking === | === nm-applet not authorized to control networking === | ||
You can enable all users to edit connections without adding polkit. | You can enable all users to edit connections without adding polkit. | ||
Line 152: | Line 132: | ||
{{Cmd|# rc-service networkmanager restart}} | {{Cmd|# rc-service networkmanager restart}} | ||
{{Todo|([[KDE|KDE Plasma]] Desktop) find out if it is possible to prevent requesting the password for '''KDE Wallet''' on login}} | |||
{{Todo|([[KDE|KDE Plasma]] Desktop) for autoconnect to wifi network on start, it appears that the "all users may connect to this network" option must be selected in settings, as root is not a choice to allow. There are likely better workarounds}} | |||
[[Category:Networking]] | [[Category:Networking]] |
Latest revision as of 11:23, 18 October 2024
NetworkManager is the standard Linux network configuration tool suite. NetworkManager supports both wireless daemons i.e iwd and wpa_supplicant. Using both may lead to conflicts.
Installation
# apk add networkmanager
# setup-devd udev
There are multiple interfaces available for NetworkManager:
- TUI: networkmanager-tui, a curses-based interface (run
nmtui
) - Command line: networkmanager-cli (run
nmcli
) - GUI: plasma-nm for Plasma integration and applet
- GUI: network-manager-applet for a GTK system tray applet
For the list of all NetworkManager packages refer networkmanager-*
You will need to install an additional package if you want NetworkManager to connect to wifi:
# apk add networkmanager-wifi
After installation start NetworkManager:
# rc-service networkmanager start
Then set it to autostart the service on boot:
# rc-update add networkmanager default
Also your user needs to be in the plugdev
group:
# adduser <YourUsername> plugdev
Wired networks
If wired networks do not appear or you get an error message like "Could not activate connection: Connection 'Ethernet connection 1' is not available on device eth0 because device is strictly unmanaged", add the following to /etc/NetworkManager/NetworkManager.conf:
Contents of /etc/NetworkManager/NetworkManager.conf
Wireless networks
wpa_supplicant backend
Refer the sections wpa supplicant and Automatic Configuration on System Boot. wpa_supplicant configuration might not be required, if it isn't it may be a good idea to have it setup just as a fallback.
Now open /etc/NetworkManager/NetworkManager.conf in a text editor and change it to something like this:
Contents of /etc/NetworkManager/NetworkManager.conf
Now you need to stop conflicting services:
# rc-service networking stop
# rc-service wpa_supplicant stop
Now restart NetworkManager:
# rc-service networkmanager restart
Now connect to a network using one of the interfaces mentioned in Installation
If that connects and stays connected with no issues enable the networkmanager
service and disable the networking
and wpa_supplicant
boot services:
# rc-update add networkmanager
# rc-update del networking boot
# rc-update del wpa_supplicant boot
iwd backend
NetworkManager supports wireless networks through iwd, however, consider existing issues before using it. After installation, enable the server and restart NetworkManager:
rc-service iwd start rc-service networkmanager restart
To use iwd though, you've have to edit NetworkManager's configuration because it still defaults to wpa_supplicant instead. Add the following to /etc/NetworkManager/NetworkManager.conf:
[device] wifi.backend=iwd
VPN support
Since version 1.16, NetworkManager has support for Wireguard[1].
Support for other VPN types is provided by plugins. They are provided in the following packages:
- networkmanager-openvpn for OpenVPN
Troubleshooting
nm-applet not authorized to control networking
You can enable all users to edit connections without adding polkit.
First, make the conf.d
directory for networkmanager:
# mkdir -p /etc/NetworkManager/conf.d
Then, add following content to /etc/NetworkManager/conf.d/any-user.conf:
[main] auth-polkit=false
Finally, restart networkmanager:
# rc-service networkmanager restart