In Linux, network interfaces are software-based configuration which can be activated or deactivated, while network devices are physical networking card or adapter connected to the system. All network communications occur between configured network interfaces and physical network devices before the data packets are sent or transmitted.

System administrators may occasionally want to display or get a list of all network interfaces and/or network devices in Linux operating system. There are plenty of ways to retrieve network interfaces and network devices information in Linux or Unix system, the most common of it is “ifconfig”.

ifconfig command is useful for administrator who only want to know which network interfaces, e.g. eth0, eth1, lo, wlan0, venet0, venet1 or rausb0, that are currently configured. To use ifconfig command to display network interfaces, just type ifconfig into the console or command-line shell.

An output that similar to format below with configuration details, IP address, MAC address and other information, including ip-aliasing.

eth0      Link encap:Ethernet  HWaddr 00:1E:FF:FF:FF:FF  
          inet addr:10.1.1.1  Bcast:10.1.1.254  Mask:255.255.255.0
          inet6 addr: fe80::21e:2aff:8888:8888/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:105 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3817 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:6318 (6.1 KiB)  TX bytes:234216 (228.7 KiB)
          Interrupt:177 Base address:0xe000 

eth1      Link encap:Ethernet  HWaddr 00:1C:FF:FF:FF:FF  
          inet addr:188.8.8.1  Bcast:188.8.8.254  Mask:255.255.255.0
          inet6 addr: fe80::21c:c0ff:8888:8888/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:747061040 errors:0 dropped:0 overruns:0 frame:0
          TX packets:947783149 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:3475826459 (3.2 GiB)  TX bytes:2684871507 (2.5 GiB)
          Memory:e0400000-e0420000 

Linux can support multiple physical network devices, compounding multiple network interfaces that can be configured for each network cards. For user who wants to view information about physical network devices, a tool named “lshw” can be used. lshw (Hardware Lister) is a small tool to provide detailed information on the hardware configuration of the machine. On some flavors or distributions of Linux, lshw is installed by default, or can be downloaded or installed easily with command such as “yum install lshw”.

Once lshw is enabled on the system, just enter the following command into the console to get a list of all attached physical network devices on the system.

lshw -class network

Example of output are:

*-network
       description: Ethernet interface
       product: VT6105 [Rhine-III]
       vendor: VIA Technologies, Inc.
       physical id: 7
       bus info: pci@03:07.0
       logical name: eth0
       version: 9a
       serial: 00:88:88
       width: 32 bits
       clock: 33MHz
       capabilities: bus_master cap_list ethernet physical
       configuration: broadcast=yes driver=via-rhine driverversion=2.6.22-14-generic latency=32 maxlatency=8 mingnt=3 multicast=yes
       resources: ioport=d300-d3ff iomemory:d8883888-d88838ff