Below is a visual representation of how NetworkManager manages network configurations and how different files interact:

|
File/Command |
Purpose |
Managed By |
|
/etc/NetworkManager/system-connections/ |
Stores network profiles |
NetworkManager |
|
/etc/NetworkManager/NetworkManager.conf |
Controls NetworkManager behavior |
NetworkManager |
|
/etc/resolv.conf |
Stores DNS settings (dynamically managed) |
`systemd-resolved` or NetworkManager |
|
/var/lib/NetworkManager/ |
Stores runtime network data |
NetworkManager |
|
nmcli connection show |
Lists all configured network connections |
NetworkManager CLI |
|
nmcli device show |
Shows detailed information about interfaces |
NetworkManager CLI |
|
nmcli device status |
|
sudo nmcli con add type ethernet ifname eth0 con-name "MyEthernet" ipv4.addresses 192.168.100.51/24 ipv4.gateway 192.168.100.1 ipv4.dns "192.168.100.1" ipv4.method manual |
This command creates a new NetworkManager connection profile and stores it in:
/etc/NetworkManager/system-connections/MyEthernet.nmconnection
|
sudo nmcli connection up "MyEthernet" ip a show eth0 nmcli device status |
|
sudo nmcli connection modify "MyEthernet" connection.autoconnect yes |
Alternatives:
|
Command |
Effect |
Persistent? |
Managed By |
|
ip addr add |
Temporarily assigns an IP |
❌ No (resets on reboot) |
Linux Kernel |
|
nmcli connection modify |
Configures a persistent static IP |
✅ Yes (applies on reboot) |
NetworkManager |
|
Editing /etc/NetworkManager/system-connections/ |
Manually sets a static IP |
✅ Yes (if modified correctly) |
NetworkManag |
|
nmcli connection show "MyEthernet" ping -c 3 192.168.100.1 |
|
sudo nmcli device set eth0 managed yes sudo systemctl restart NetworkManager |
|
journalctl -u NetworkManager --no-pager | tail -n 20 |
Run the following commands after reboot:
|
sudo reboot ip a show eth0 ip route nmcli device status ping -c 3 192.168.100.1 |
|
Step |
Command |
|
Check interfaces |
nmcli device status |
|
Add Ethernet port |
sudo nmcli con add type ethernet ifname eth0 con-name "MyEthernet" ipv4.addresses 192.168.100.51/24 ipv4.gateway 192.168.100.1 ipv4.dns "192.168.100.1" ipv4.method manual |
|
Bring up connection |
sudo nmcli connection up "MyEthernet" |
|
Enable auto-connect |
sudo nmcli connection modify "MyEthernet" connection.autoconnect yes |
|
Verify settings |
nmcli connection show "MyEthernet" |
|
Check connection |
ip a show eth0 & ping -c 3 192.168.100.1 |