Skip to main content

Devices

  • ethX: Ethernet devices.
  • wlanX: Wireless devices.
  • brX: Bridge interfaces
  • vmnetZ: virtual devices

Configuring and Controlling Devices

ip utility is used to configure, control and query interface parameters and routing. It replaced the ifconfig as it's faster and more versatile. Settings changed using ip are not persistent.

Format:

ip [options] object {command | help}

# for reading commands from file
ip [-force] -batch /path/to/file

Popular object:

  • address: ipv4/6 protocol device address.
  • link: network devices
  • maddress: multicast address
  • monitor: watch for netlink messages
  • route: routing table entry
  • rule: rule in routing policy db
  • tunnel: tunnel over ip

Examples:

# show info for all interfaces
ip link show

# show stats (rx/tx) about eth0
ip -s link show eth0
# OR
cat /proc/net/dev

# set ip address
sudo ip addr add 192.168.1.7 dev eth0

# take down interface
sudo ip link set eth0 down

# set mtu to 1480 bytes
sudo ip link set eth0 mtu 1480

# set networking route
sudo ip route add 172.16.1.0/24 via 192.168.1.5

The device configuration, information and statistics are held in the following filesystem locations:

less /proc/net/dev

head -n 4 /proc/net/dev
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
califf0535d9c94: 98940135 518876 0 0 0 0 0 0 60376340 463276 0 0 0 0 0 0
calie8c5a45cbcd: 2673411 33886 0 0 0 0 0 0 2801482 20678 0 0 0 0 0 0

Device configuration and statistics can be found in:

cat /sys/class/net/docker0/statistics/rx_missed_errors
0

Each distro has it's own set of files that include persistent network device configuration (NIC).

  • RedHat:
    • /etc/sysconfig/network
    • /etc/sysconfig/network-scripts/ifcfg-ethX
    • /etc/sysconfig/network-scripts/ifcfg-ethX:Y
    • /etc/sysconfig/network-scripts/route-ethX
  • Debian:
    • /etc/network/interfaces
  • SUSE:
    • /etc/sysconfig/network

Network Manager

The preferred/modern method to interact with network devices is using the Network Manager.

We can change the network configuration using nmcli.

Installation and enablement:

sudo apt install network-manager
sudo /etc/init.d/network-manager start
# contains many useful examples
man nmcli-examples

# see list of wifi APs
nmcli device wifi list