Interface link state shows whether a Linux network interface has carrier and can actually transmit frames, making it the fastest way to separate physical/link problems from higher-layer issues during an outage.
Linux tracks both an administrative state and an operational state for each interface. The administrative state is toggled by configuration (up/down), while the operational state reflects driver readiness and carrier detection, exposed by ip as a state plus flags such as UP and LOWER_UP.
The carrier bit is also available in sysfs at /sys/class/net/<iface>/carrier as a simple 1 or 0, which helps confirm whether the link is physically (or logically) connected. Virtual interfaces such as bridge, bond, vlan, and veth inherit link state from underlying devices or peers, so the physical NIC may still need checking when troubleshooting.
Steps to check network interface link state with ip in Linux:
- List interfaces with their operational state.
$ ip -br link lo UNKNOWN 00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP> tunl0@NONE DOWN 0.0.0.0 <NOARP> gre0@NONE DOWN 0.0.0.0 <NOARP> gretap0@NONE DOWN 00:00:00:00:00:00 <BROADCAST,MULTICAST> erspan0@NONE DOWN 00:00:00:00:00:00 <BROADCAST,MULTICAST> ip_vti0@NONE DOWN 0.0.0.0 <NOARP> ip6_vti0@NONE DOWN :: <NOARP> sit0@NONE DOWN 0.0.0.0 <NOARP> ip6tnl0@NONE DOWN :: <NOARP> ip6gre0@NONE DOWN :: <NOARP> eth0 UP 3e:a8:03:62:2f:a8 <BROADCAST,MULTICAST,UP,LOWER_UP>
UNKNOWN is expected for lo on many systems.
- Inspect link flags for the target interface.
$ ip link show dev eth0 11: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 65535 qdisc noqueue state UP mode DEFAULT group default link/ether 3e:a8:03:62:2f:a8 brd ff:ff:ff:ff:ff:ff link-netnsid 0Flag LOWER_UP indicates carrier; missing LOWER_UP indicates no carrier while admin UP is set.
- Read the carrier value from sysfs for the interface.
$ cat /sys/class/net/eth0/carrier 1
Value 1 means carrier is detected; value 0 means no carrier.
- Show IP addresses assigned to the interface.
$ ip -br addr show dev eth0 eth0 UP 192.0.2.40/24
No address indicates missing static configuration or DHCP failure.
Related: How to check IP address in Linux
Mohd Shakir Zakaria is a cloud architect with deep roots in software development and open-source advocacy. Certified in AWS, Red Hat, VMware, ITIL, and Linux, he specializes in designing and managing robust cloud and on-premises infrastructures.
