Most Linux distributions no longer install the net-tools package by default, which includes the legendary ifconfig and netstat commands. Why have these tools been sidelined, and which modern alternatives should you master to efficiently manage networks from the terminal?
System administration in Linux has undergone significant changes over the years. Tools that served as the foundation for network configuration for decades—such as ifconfig, netstat, or route—are quietly disappearing from the default installations of popular distributions. Today, their status as deprecated is a fact. While you can still install them manually, modern operating systems prioritize more advanced solutions. Why are these classics being phased out, and what should you use instead?
Why is net-tools considered deprecated?
The history of the net-tools package dates back to the 90s, when it became the standard for network management in Unix-like systems. However, more than a decade ago, discussions on Debian mailing lists and other distributions made it clear that these tools would no longer be actively developed. This decision was driven by specific technical limitations of the older package:
- Poor IPv6 support:
ifconfigdoes not handle IPv6 addresses well without additional parameters, whereas modern networks rely heavily on this protocol. Theiproute2package, the successor to the old suite, was designed with IPv6 in mind from the start. - Issues with virtual interfaces: In the era of containers, cloud, and virtualization,
ifconfigstruggles with handling VLANs, network bridges, or tunnels. Theip linktool from theiproute2package handles these with ease. - Performance and outdated architecture:
net-toolsqueries the kernel through older interfaces (such as files in/proc/net). In contrast,iproute2uses Netlink—a much faster and more flexible mechanism for communicating with the system kernel. - Lack of active development: The source code for
net-toolshas not seen any major structural changes in many years. This means no native support for new network technologies and a lack of optimization patches.
Of course, the deprecated status does not mean they have vanished entirely. They can still be installed manually (e.g., via apt install net-tools on Debian/Ubuntu or dnf install net-tools on Fedora), but in daily operations, this is counterproductive.
Which distributions have dropped net-tools?
The process of removing net-tools from default packages took years, but today it is effectively complete. Let's look at when individual systems stopped installing it by default:
- Fedora: Since version 18 (early 2013).
- RHEL/CentOS: Since version 7 (mid-2014).
- Debian: Since version 9 "Stretch" (mid-2017).
- Ubuntu: Since version 18.04 LTS (spring 2018).
- Arch Linux: Since around 2013.
- openSUSE: Since version Leap 15.0 (2018).
Exceptions include a few very conservative distributions or older systems with long-term support, where these packages were kept for backward compatibility.
Modern alternatives: iproute2 in practice
The iproute2 package is not just a simple replacement, but a completely new approach to the subject. At its heart is the ip command, which takes over the tasks of most old commands. Here is how the direct equivalents look in daily practice:
Basic commands: ifconfig → IP addr
Instead of ifconfig for viewing and configuring interfaces, we use ip addr (or the shortened version: ip a):
# Stare:
ifconfig eth0
# Nowe:
ip addr show eth0
# lub krócej:
ip a show eth0
The differences are immediately apparent:
ip addrdisplays IPv4 and IPv6 addresses clearly by default.- Information about interface status or MTU is presented in a more structured way.
- The syntax is consistent with the rest of the commands in the package.
Changing an IP address has also become simpler and more logical:
# Stare:
ifconfig eth0 192.168.1.100 netmask 255.255.255.0
ifconfig eth0 del 192.168.1.100
# Nowe:
ip addr add 192.168.1.100/24 dev eth0
ip addr del 192.168.1.100/24 dev eth0
Routing: route → IP route
To manage the routing table, instead of the route command, we use ip route:
# Stare:
route -n
route add default gw 192.168.1.1
# Nowe:
ip route
ip route add default via 192.168.1.1
The new command provides much greater control, allowing for easy management of multiple routing tables or advanced policies.
Network statistics: netstat → ss
To check open ports and active network connections, instead of netstat, we use the ss (socket statistics) tool:
# Stare:
netstat -tuln
netstat -r
netstat -i
# Nowe:
ss -tuln
ip route # zamiast netstat -r
ip -s link # zamiast netstat -i
The ss tool works instantly because it retrieves data directly from the kernel instead of slowly parsing text files in the /proc directory.
ARP table: Arp → IP neigh
To view the ARP table, we now use the ip neigh (short for neighbour) command:
# Stare:
arp -n
# Nowe:
ip neigh
It displays both ARP entries for IPv4 and data from the Neighbour Discovery (ND) protocol for IPv6.
Full comparison: net-tools vs iproute2
The table below makes it easy to quickly find modern equivalents for the most popular commands:
| Legacy command | Modern equivalent | Notes |
|---|---|---|
ifconfig |
ip addr or ip a |
ip addr displays more information (e.g., IPv6 addresses, MTU). |
ifconfig -a |
ip link or ip -br a |
ip -br a (brief) displays a shortened list of interfaces. |
ifconfig eth0 up/down |
ip link set eth0 up/down |
Used to bring interfaces up or down. |
route |
ip route |
ip route supports advanced routing options. |
route add default gw 1.2.3.4 |
ip route add default via 1.2.3.4 |
Setting the default gateway. |
netstat -tuln |
ss -tuln |
ss is significantly faster and more accurate. |
netstat -r |
ip route |
Viewing the routing table. |
netstat -i |
ip -s link |
Displays packet statistics on interfaces. |
arp |
ip neigh |
ip neigh supports ARP and IPv6 Neighbour Discovery. |
iptables |
nftables |
Modern packet filtering system in Linux. |
brctl |
ip link + bridge |
Tools for configuring network bridges. |
Do we lose anything by abandoning net-tools?
Switching to iproute2 brings only benefits, although changing habits and old scripts may require some attention at first. What should you watch out for?
1. Different output format
- MAC addresses: The classic
ifconfigprovided MAC addresses asHWaddr. Inip addr, you will find them under the labellink/ether. If you filter this data in scripts, you must adjust the commands, for example:ip -o link | awk '{print $2, $17}' - Process identification: The equivalent of
netstat -p(showing process PIDs) in the new version is:ss -tulnp
2. Syntax differences
The new syntax is more logical but requires rewriting old automation scripts. A simple example of extracting an IP address:
# Stare:
ifconfig eth0 | grep "inet addr" | awk '{print $2}' | cut -d: -f2
# Nowe:
ip -4 addr show eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'
3. Older software
Sometimes older monitoring tools or third-party scripts strictly refer to ifconfig. In such situations, it is best to:
- Check if the vendor has released an update supporting newer standards.
- Manually replace the calls in scripts with commands from the
iproute2package. - As a last resort, install
net-toolsas a temporary solution.
How to safely migrate to iproute2?
Moving to new tools does not have to be difficult. Here are a few simple steps to facilitate the process:
1. Get comfortable with the new syntax
You don't have to remove old packages immediately. Start by using the new commands during your daily work. A good starting point is the official system manual (man IP).
2. Use ready-made helper scripts
In the project's GitHub repository, you will find simple tools to facilitate migration:
if2ip– helps translateifconfigsyntax toip.netstat2ss– facilitates the switch fromnetstattoss.
3. Test changes locally
Before updating scripts on production servers, test them in a staging environment or a container. This will help you avoid unpleasant surprises.
4. Update internal documentation
If you work in a team, ensure that your internal guides and procedures no longer perpetuate old habits.
What's next for Linux network tools?
The iproute2 package is only part of larger changes in the Linux networking stack. It is worth keeping an eye on other modern solutions:
nftables: The modern successor to the agingiptables. It is faster, has simpler syntax, and handles packet filtering better. Details can be found on the official project wiki.nmcli/nmtui: Console tools for NetworkManager that allow for instant connection configuration without manually editing configuration files.systemd-networkd: A lightweight network daemon integrated with systemd, increasingly preferred in server and cloud environments.ethtool: An essential tool for checking and changing physical network card parameters (e.g., speed or duplex mode).
The iproute2 project itself is constantly evolving. Developers are currently focusing on better integration with technologies like eBPF, simplifying support for modern VPNs (e.g., WireGuard), and more efficient network management in containerized environments. Progress can be tracked directly in the repository on GitHub.
Summary: Time to say goodbye to net-tools?
Although the sentiment toward ifconfig or netstat remains strong among many administrators, it is time to move forward. Using old tools is simply impractical today—most modern systems do not provide them, and their technical limitations hinder work in contemporary networks.
Mastering iproute2 requires a bit of practice, but the investment pays off quickly. The new commands are faster, more consistent, and offer much greater capabilities. It is time to change your habits and get well-acquainted with ip addr, ss, and ip route.
Want to learn more? Check the system documentation (man IP) or use free materials on the Linux Foundation platform. It is also worth following community discussions on Unix & Linux Stack Exchange.
And if you are looking for modern ways to monitor your system's health, read our article on Mission Center in 2026, where we show how to conveniently track resource usage in real-time.
Sources
- https://www.tecmint.com/deprecated-linux-commands/
- https://lists.debian.org/debian-devel/2011/03/msg00658.html
- https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/7.0_release_notes/chap-red_hat_enterprise_linux-7.0_release_notes-deprecated_functionality
- https://wiki.debian.org/NetworkConfiguration#net-tools
- https://wiki.ubuntu.com/BionicBeaver/ReleaseNotes
- https://wiki.archlinux.org/title/Network_configuration#net-tools
- https://sourceforge.net/projects/net-tools/
- https://man7.org/linux/man-pages/man8/ip-address.8.html
- https://www.kernel.org/doc/html/latest/userspace-api/netlink/intro.html
- https://nvd.nist.gov/vuln/detail/CVE-2019-15903
- https://www.kernel.org/pub/linux/utils/net/iproute2/
- http://www.slackware.com/
- https://man7.org/linux/man-pages/man8/ip.8.html
Comments