networkctl – Query the Status of Network Links in Linux

Networkctl is a command line utility for viewing a summary of network devices and their connection status. It allows you to query and control the Linux networking subsystem. It is one of the new commands in the new release of systemd which is present in Ubuntu 18.04. It displays the state of the network links as seen by systemd-networkd.

Read Also: A Linux Sysadmin’s Guide to Network Management, Troubleshooting and Debugging

Note: Before running networkctl, ensure that systemd-networkd is running, otherwise you will get incomplete output indicated by the following error.

WARNING: systemd-networkd is not running, output will be incomplete.

You can check the status of systemd-networkd by running the following systemctl command.

$ sudo systemctl status systemd-networkd

 systemd-networkd.service - Network Service
   Loaded: loaded (/lib/systemd/system/systemd-networkd.service; disabled; vendor preset: enabled)
   Active: active (running) since Tue 2018-07-31 11:38:52 IST; 1s ago
     Docs: man:systemd-networkd.service(8)
 Main PID: 13682 (systemd-network)
   Status: "Processing requests..."
   CGroup: /system.slice/systemd-networkd.service
           └─13682 /lib/systemd/systemd-networkd

Jul 31 11:38:52 TecMint systemd[1]: Starting Network Service...
Jul 31 11:38:52 TecMint systemd-networkd[13682]: vmnet8: Gained IPv6LL
Jul 31 11:38:52 TecMint systemd-networkd[13682]: vmnet1: Gained IPv6LL
Jul 31 11:38:52 TecMint systemd-networkd[13682]: enp1s0: Gained IPv6LL
Jul 31 11:38:52 TecMint systemd-networkd[13682]: Enumeration completed
Jul 31 11:38:52 TecMint systemd[1]: Started Network Service.

If systemd-networkd is not running, you can start and enable it to start at boot time using following commands.

$ sudo systemctl start systemd-networkd
$ sudo systemctlenable systemd-networkd

To get the status information about your network links, run the following networkctl command without any argument.

$ networkctl

IDX LINK             TYPE               OPERATIONAL SETUP     
  1 lo               loopback           carrier     unmanaged 
  2 enp1s0           ether              routable    unmanaged 
  3 wlp2s0           wlan               off         unmanaged 
  4 vmnet1           ether              routable    unmanaged 
  5 vmnet8           ether              routable    unmanaged 

5 links listed.

To display all network links and their status, use the -a flag.

$ networkctl -a

IDX LINK             TYPE               OPERATIONAL SETUP     
  1 lo               loopback           carrier     unmanaged 
  2 enp1s0           ether              routable    unmanaged 
  3 wlp2s0           wlan               off         unmanaged 
  4 vmnet1           ether              routable    unmanaged 
  5 vmnet8           ether              routable    unmanaged 

5 links listed.

To get a list of existing links and their status, use the list command (equivalent to using the -a flag) as shown.

$ networkctl list

IDX LINK             TYPE               OPERATIONAL SETUP     
  1 lo               loopback           carrier     unmanaged 
  2 enp1s0           ether              routable    unmanaged 
  3 wlp2s0           wlan               off         unmanaged 
  4 vmnet1           ether              routable    unmanaged 
  5 vmnet8           ether              routable    unmanaged 

5 links listed.

To display information about the specified links, such as type, state, kernel module driver, hardware and IP address, configured DNS, server and more, use the status command. If you don’t specify any links, routable links are shown by default.

$ networkctl status 

        State: routable
       Address: 192.168.0.103 on enp1s0
                172.16.236.1 on vmnet1
                192.168.167.1 on vmnet8
                fe80::8f0c:7825:8057:5eec on enp1s0
                fe80::250:56ff:fec0:1 on vmnet1
                fe80::250:56ff:fec0:8 on vmnet8
       Gateway: 192.168.0.1 (TP-LINK TECHNOLOGIES CO.,LTD.) on enp1s0

OR

$ networkctl status enp1s0

 2: enp1s0
       Link File: /lib/systemd/network/99-default.link
    Network File: n/a
            Type: ether
           State: routable (unmanaged)
            Path: pci-0000:01:00.0
          Driver: r8169
          Vendor: Realtek Semiconductor Co., Ltd.
           Model: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
      HW Address: 28:d2:44:eb:bd:98 (LCFC(HeFei) Electronics Technology Co., Ltd.)
         Address: 192.168.0.103
                  fe80::8f0c:7825:8057:5eec
         Gateway: 192.168.0.1 (TP-LINK TECHNOLOGIES CO.,LTD.)

To show LLDP (Link Layer Discovery Protocol) status, use the lldp command.

$ networkctl lldp

By default, the output of networkctl is piped into a pager, you can prevent this by adding the –no-pager flag.

$ networkctl --no-pager

You can also print output without column headers and the footer using the --no-legend option.

$ networkctl --no-legend

To view its help message, use the -h flag or check out its man page for more information.

$ networkctl -h
OR
$ man networkctl 

You will also find the following Linux networking guides useful:

  1. nload – Monitor Linux Network Bandwidth Usage in Real Time
  2. 10 Useful “IP” Commands to Configure Network Interfaces
  3. 15 Useful “ifconfig” Commands to Configure Network Interface in Linux
  4. 12 Tcpdump Commands – A Network Sniffer Tool

That’s all! In this article, we have explained how to use networkctl command for viewing a summary of network devices attached to a Linux system. Use the feedback form below to share your thoughts or ask any questions.

Aaron Kili
Aaron Kili is a Linux and F.O.S.S enthusiast, an upcoming Linux SysAdmin, web developer, and currently a content creator for TecMint who loves working with computers and strongly believes in sharing knowledge.

Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.

Join the TecMint Weekly Newsletter (More Than 156,129 Linux Enthusiasts Have Subscribed)
Was this article helpful? Please add a comment or buy me a coffee to show your appreciation.

Got something to say? Join the discussion.

Thank you for taking the time to share your thoughts with us. We appreciate your decision to leave a comment and value your contribution to the discussion. It's important to note that we moderate all comments in accordance with our comment policy to ensure a respectful and constructive conversation.

Rest assured that your email address will remain private and will not be published or shared with anyone. We prioritize the privacy and security of our users.