Nmcli
Network Manager Command Line - is used for controlling NetworkManager and reporting network status.
Check connection status of interfaces
nmcli dev status
# nmcli dev status DEVICE TYPE STATE CONNECTION docker0 bridge connected docker0 virbr0 bridge connected virbr0 enp0s3 ethernet connected enp0s3 virbr0-nic ethernet disconnected -- lo loopback unmanaged --
Turn Connection Up or Down
nmcli connection down <interface> or nmcli connection up <interface>
# nmcli connection down ens192 Connection 'ens192' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/1)
# nmcli connection up ens192 Connection 'ens192' successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2)
Turn Networking Up or Down
nmcli networking off nmcli networking on
Turn Autoconnect On/Off
Turn on:
# nmcli connection modify ens192 connection.autoconnect "yes"
Turn of:
# nmcli connection modify ens192 connection.autoconnect "no"
For changes to take effect, turn the interface down and up (in some cases, this works better than restarting NetworkManager):
# nmcli con down ens192 # nmcli con up ens192
Error: unknown connection when adding secondary NIC
If you tried adding a secondary NIC and you see it there in ip a command output, but you are getting the error: "Error: unknown connection <interface>", that can be because NetworkManager is unable to recognize or find the specified connection. This can happen due to various reasons such as incorrect configuration files, missing connections, or permission issues.
# nmcli connection up enp0s8 Error: unknown connection 'enp0s8'.
Ensure that the connection file is correctly configured and placed in the appropriate directory. The file should be located in /etc/NetworkManager/system-connections/ and have the correct permissions. Example:
$ sudo cat /etc/NetworkManager/system-connections/ens3.nmconnection [sudo] password for cisadmin: [connection] id=ens3 uuid=761c9d6a-3e4d-47a3-8c0d-f5ce612ee301 type=ethernet interface-name=ens3 [ethernet] [ipv4] method=auto [ipv6] addr-gen-mode=eui64 method=auto [proxy]
If the interface configuration file for the secondary NIC is not there, then you can add it using the following nmcli command (You would usually have to do this when adding a secondary NIC):
$ nmcli con add con-name <connection name> type ethernet ifname <interface> ipv4.method auto
Example:
$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 50:6b:8d:ff:d5:66 brd ff:ff:ff:ff:ff:ff altname enp0s3 inet 10.240.4.64/23 brd 10.240.5.255 scope global dynamic noprefixroute ens3 valid_lft 604083sec preferred_lft 604083sec inet6 fe80::526b:8dff:feff:d566/64 scope link noprefixroute valid_lft forever preferred_lft forever 3: ens7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 50:6b:8d:e9:2c:b4 brd ff:ff:ff:ff:ff:ff altname enp0s7 $ nmcli con add con-name secondarynic type ethernet ifname ens7 ipv4.method auto $ sudo ls -al /etc/NetworkManager/system-connections/ total 8 drwxr-xr-x. 2 root root 64 Jul 15 14:41 . drwxr-xr-x. 7 root root 134 May 7 04:12 .. -rw-------. 1 root root 178 Jun 24 12:33 ens3.nmconnection -rw-------. 1 root root 188 Jul 15 14:41 secondarynic.nmconnection $ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 50:6b:8d:ff:d5:66 brd ff:ff:ff:ff:ff:ff altname enp0s3 inet 10.240.4.64/23 brd 10.240.5.255 scope global dynamic noprefixroute ens3 valid_lft 604083sec preferred_lft 604083sec inet6 fe80::526b:8dff:feff:d566/64 scope link noprefixroute valid_lft forever preferred_lft forever 3: ens7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 50:6b:8d:e9:2c:b4 brd ff:ff:ff:ff:ff:ff altname enp0s7 inet 10.240.4.13/23 brd 10.240.5.255 scope global dynamic noprefixroute ens7 valid_lft 3130sec preferred_lft 3130sec inet6 fe80::a399:ff76:4216:9916/64 scope link noprefixroute valid_lft forever preferred_lft forever