NIC (NIC)
A NIC is what lets a computer join a network. It might be a separate card, a chip built into the motherboard, or a Wi-Fi adapter. It turns your data into signals on a cable or radio waves and back again. Every NIC has its own hardware address so the network knows where to deliver traffic.
A Network Interface Card (NIC), also called a network adapter, implements the physical and data link layers (OSI layers 1 and 2). Each port has a MAC address.
Types:
- Onboard Ethernet: 1 GbE or 2.5 GbE chips on most boards (Intel I226-V, Realtek RTL8125)
- PCIe cards: 10/25/40/100 GbE, SFP+ or RJ45 (Intel X710, Mellanox ConnectX)
- Wi-Fi: M.2 or USB adapters
- Virtual NICs: VMs get emulated (e1000) or paravirtual (virtio-net, vmxnet3) adapters
Linux naming: predictable names based on location, such as enp3s0 (Ethernet, PCI bus 3, slot 0), eno1 (onboard), wlp2s0 (wireless). Older systems used eth0.
Features that matter on servers: offloads (checksum, TSO, GRO), multiple queues (RSS) spread across CPU cores, SR-IOV virtual functions for VMs, VLAN tagging, and Wake-on-LAN.
Bonding and bridging: multiple NICs can be bonded for redundancy or throughput, and bridged so VMs share the host’s network (Proxmox uses vmbr0).
Source: ethtool(8) Linux manual page
Inspecting network interfaces
# Interfaces, state, and MAC addresses
$ ip -br link
lo UNKNOWN 00:00:00:00:00:00
enp0s3 UP 08:00:27:4e:66:a1
# Addresses
$ ip -br addr
# Hardware and driver
$ lspci -k | grep -A2 -i ethernet
$ sudo ethtool -i enp0s3
driver: e1000
# Negotiated speed and link
$ sudo ethtool enp0s3 | grep -E "Speed|Duplex|Link detected"
Speed: 1000Mb/s
Link detected: yes When the network is down, check the NIC before anything else: is the link up, at what speed, and is a driver bound? ethtool showing 100 Mb/s on a gigabit port usually means a bad cable. Realtek chips sometimes need a newer driver; Intel chips are the safe pick for servers and pfSense or OPNsense boxes. In VMs, choose virtio or vmxnet3 adapters for better performance than emulated ones.