$ ip addr
$ ip route
$ sudo ip addr add 192.168.2.5/29 dev eno1
$ sudo ip link set eno1 up/down
$ sudo ip route add default via 192.168.2.1
List all PCI devices
$ lspci
$ lspci -vvv
Display Available Network Interfaces
$ ls /sys/class/net
NetworkManager or networkd?
$ sudo service systemd-networkd status # Ubuntu V20.04
$ sudo service network-manager status # before Ubuntu V21.10
$ sudo service NetworkManager status # after Ubuntu V21.10
$ netplan status
Online state: online
DNS Addresses: 127.0.0.53 (stub)
DNS Search: <redacted>
● 1: lo ethernet UNKNOWN/UP (unmanaged)
MAC Address: 00:00:00:00:00:00
Addresses: 127.0.0.1/8
::1/128
Routes: ::1 metric 256
● 2: enp0s1 ethernet UP (networkd: enp0s1)
MAC Address: <redacted> (<redacted>)
Addresses: 192.168.64.2/24 (dhcp)
fd88:4b93:b031:f03e:80f0:d4ff:fe4f:15d3/64
fe80::80f0:d4ff:fe4f:15d3/64 (link)
DNS Addresses: 192.168.64.1
fe80::6c7e:67ff:fe8c:8364
DNS Search: <redacted>
Routes: default via 192.168.64.1 from 192.168.64.2 metric 100 (dhcp)
192.168.64.0/24 from 192.168.64.2 metric 100 (link)
192.168.64.1 from 192.168.64.2 metric 100 (dhcp, link)
fd88:4b93:b031:f03e::/64 metric 100 (ra)
fe80::/64 metric 256
You can see that the main NIC enp0s1 is being managed by networkd.
After installing the network-manager package and setting the default renderer to NetworkManager, this is the only line that makes a difference in netplan status:
● 2: enp0s1 ethernet UP (unmanaged)
The main NIC enp0s1 is being managed by NetworkManager now.
$ sudo cat /run/systemd/network/10-netplan-enp0s3.network
ifconfig
$ sudo apt install net-tools
$ ifconfig
$ sudo ifconfig ens35 up/down
iwconfig
$ sudo apt install wireless-tools
$ iwconfig
$ sudo ifconfig wls34 up/down
$ sudo iwlist wls34 scan | grep ESSID
$ sudo apt install wpasupplicant
$ wpa_passphrase "ssid_name" "******" | sudo tee /etc/wpa_supplicant.conf
$ sudo wpa_supplicant -c /etc/wpa_supplicant.conf -i wls34
resolvectl
$ sudo resolvectl flush-caches
nmcli
$ sudo apt network-mamager
$ nmcli -v
$ nmcli d
$ sudo nmcli connection up/down ens33
$ sudo nmcli connection reload
$ sudo nmcli device show/status
$ sudo nmcli c / nmcli connection show
$ sudo nmcli c show --active
networkctl
$ networkctl
$ networkctl status
$ networkctl list
netplan
$ netplan status
$ sudo netplan generate # Generating network configuration files.
$ sudo netplan --debug generate
$ sudo netplan apply
$ sudo netplan --debug apply
$ sudo netplan try # Failure to roll back the previous configuration.
Ubuntu 22.04 LTS
$ sudo vim /etc/network/00-installer-config.yaml
$ sudo vim /etc/netplan/01-network-manager-all.yaml
network:
ethernets:
ens35:
dhcp4: true
version: 2
wifis:
wls34:
dhcp4: true
access-points:
"ssid_name":
password: "******"
network:
version: 2
renderer: networkd
ethernets:
ens35:
dhcp4: no
dhcp6: no
optional: true
addresses: [192.168.2.4/29]
routes:
- to: default
via: 192.168.2.1
metric: 50
nameservers:
addresses: [1.1.1.1,45.90.28.0]
wifis:
wls34:
dhcp4: no
dhcp6: no
optional: true
addresses: [192.168.3.34/24]
routes:
- to: default
via: 192.168.3.1
metric: 100
nameservers:
addresses: [1.1.1.1,45.90.28.0]
access-points:
"ssid_name":
password: "******"
Ubuntu 24.04 LTS
$ sudo vim /etc/netplan/50-cloud-init.yaml
Notes
WARNING
Permissions for /etc/netplan/00-installer-config.yaml are too open. Netplan configuration should NOT be accessible by others.
$ sudo chmod 600 /etc/netplan/your_config_file.yaml
YAML file
There's a good reference full of practical examples
One other tip, yamllint can save you a lot of trouble.
$ sudo apt install yamllint
$ sudo dnf install yamllint
$ sudo pacman -S yamllint
$ yamllint /etc/netplan/01-netplan.yaml