4.3 KiB
obj |
---|
application |
#refactor
NetworkManager
NetworkManager is a program for providing detection and configuration for systems to automatically connect to networks. NetworkManager's functionality can be useful for both wireless and wired networks. For wireless networks, NetworkManager prefers known wireless networks and has the ability to switch to the most reliable network. NetworkManager-aware applications can switch from online and offline mode. NetworkManager also prefers wired connections over wireless ones, has support for modem connections and certain types of VPN. NetworkManager was originally developed by Red Hat and now is hosted by the GNOME project.
After installation, you should start/enable NetworkManager.service
. Once the NetworkManager daemon is started, it will automatically connect to any available "system connections" that have already been configured. Any "user connections" or unconfigured connections will need nmcli or an applet to configure and connect.
Usage
NetworkManager comes with nmcli and nmtui.
nmcli examples
List nearby Wi-Fi networks:
nmcli device wifi list
Connect to a Wi-Fi network:
nmcli device wifi connect SSIDorBSSID password password
Connect to a hidden Wi-Fi network:
nmcli device wifi connect SSID_or_BSSID password password hidden yes
Connect to a Wi-Fi on the wlan1
interface:
nmcli device wifi connect SSID_or_BSSID password password ifname wlan1 profile_name
Disconnect an interface:
nmcli device disconnect ifname eth0
Get a list of connections with their names, UUIDs, types and backing devices:
nmcli connection show
Activate a connection (i.e. connect to a network with an existing profile):
nmcli connection up name_or_uuid
Delete a connection:
nmcli connection delete name_or_uuid
See a list of network devices and their state:
nmcli device
Turn off Wi-Fi:
nmcli radio wifi off
Edit a connection
For a comprehensive list of settings, see nm-settings(5).
Firstly you need to get list of connections:
nmcli connection
NAME UUID TYPE DEVICE
Wired connection 2 e7054040-a421-3bef-965d-bb7d60b7cecf ethernet enp5s0
Wired connection 1 997f2782-f0fc-301d-bfba-15421a2735d8 ethernet enp0s25
MY-HOME-WIFI-5G 92a0f7b3-2eba-49ab-a899-24d83978f308 wifi
Here you can use the first column as connection-id used later. In this example we pick Wired connection 2
as a connection-id.
You have three methods to configure a connection Wired connection 2
after it has been created:
nmcli interactive editor
nmcli connection edit 'Wired connection 2'
.
Usage is well documented from the editor.
nmcli command line interface
nmcli connection modify 'Wired connection 2' setting.property value
. See nmcli(1) for usage. For example you can change its IPv4 route metric to 200 using nmcli connection modify 'Wired connection 2' ipv4.route-metric 200
command.
To remove a setting pass an empty field ("") to it like this:
nmcli connection modify 'Wired connection 2' setting.property ""
Connection file
In /etc/NetworkManager/system-connections/
, modify the corresponding Wired connection 2.nmconnection
file .
Do not forget to reload the configuration file with nmcli connection reload
.
Configuration
NetworkManager will require some additional steps to be able run properly. Make sure you have configured /etc/hosts
.
NetworkManager has a global configuration file at /etc/NetworkManager/NetworkManager.conf
. Additional configuration files can be placed in /etc/NetworkManager/conf.d/
. Usually no configuration needs to be done to the global defaults.
After editing a configuration file, the changes can be applied by running:
nmcli general reload
DNS
Note: If
/etc/resolv.conf
is a symlink to/run/systemd/resolve/stub-resolv.conf
,/run/systemd/resolve/resolv.conf
,/lib/systemd/resolv.conf
or/usr/lib/systemd/resolv.conf
, NetworkManager will choose systemd-resolved automatically. To use dnsmasq, you must first remove that symlink, then restart NetworkManager.
VPN
WireGuard is natively supported. To import a WireGuard Config File as a connection:
nmcli connection import type wireguard file <conf_file>