Top 15 Linux Networking tools that you should know!

's avatar
Server Enthusiast ・March 1, 2021
5 minute read ・Updated March 1, 2021
Top 15 Linux Networking tools that you should know!


Linux is one of the most widely used operating systems out there. The Linux Kernel is also the larges open source project. As a developer, it is more likely than not that you would have to work in one way or another with a Linux based system.

As a person who works in any IT related job, the following Linux networking commands could help you with your day to day tasks in order to analyze, maintain and troubleshoot different problems with your servers, network infrastructure, and even your domain names.

Top 15 Linux Networking tools

Here is a list of my personal top 15 Linux networking tools with examples!


The ping command, might be one of the most frequently used commands by sysadmins, it uses ICMP packages to check if two machines are connected.



You could also ping a domain name in order to find out what IP it resolves to:



The traceroute command shows you the path from your current machine to your remote server/system and each hope along the way.



The output of the above command would look like this:

Checkout our latest product - the ultimate tailwindcss page creator 🚀
 1 (  1.081 ms  1.064 ms  1.056 ms
 2 (  1.382 ms (  11.573 ms (  1.054 ms
 3 (  0.981 ms (  0.995 ms  0.980 ms
 4 (  2.513 ms  2.509 ms  2.501 ms
 5 (  1.331 ms  1.369 ms  1.359 ms

Essentially it is similar to ping but it shows you each step from your server to your remote host.

By using traceroute you will be able to tell if the connection from one machine to another is failing and where exactly the connection is lost.


The mtr command, is kind of a combination between traceroute and ping, it is used to check if there is any packet lost in your network.




The curl command is probably my personal favorite! You can use it to make HTTP requests.



There are many useful arguments that you could use, for example, if you add the -IL arguments you would get the headers of your domain:

curl -IL

You can also use curl to download files:

curl http://some.url/ --output


The wget command is quite similar to curl but has fewer options

I often use it to just download a file:



The dig command is a great tool for troubleshooting different DNS problems. It is used for DNS lookups, for example, if you wanted to know the A record fo your domain name you would have to run the following command:

dig a

And in case you are not receiving emails, the first thing that you would check is if your MX record is correct:

dig mx


The whois command is used to get the information related to a domain name.



As a response, you would get useful information like when the domain was registered, the expiration date, the current nameservers, and the registrar information.


SSH stands for secure shell and runs on port 22. It is a secure way of connecting to a remote server.



In case that your SSH service is listening on a different port, you can use the -P argument to specify a custom port.

scp and rsync

I'm putting scp and rsync commands as one, as they have quite similar functions. Both commands are used to securely copy files from one server to another over SSH.


  • To copy a file from one server to another using scp you would need to use the following syntax:
scp yourfile.txt

The above command would copy the yourfile.txt from your machine to your remote server.

  • To do the same thing with rsync you would use the following command:
 rsync -avz

Some of the benefits of the rsync command are that it makes the operation a lot faster, and also if the transfer fails for whatever reason, you could restore the process.

The scp command on the other side, does a linear copy, but one of the benefits over rsync is that you could copy files with scp from one remote system to another remote system without first downloading them to your local machine.


The ifconfig command is used to inspect the current network configuration on your server. It can show you information like:

  • Your IP address
  • Your MAC address
  • All other interfaces attached to your current machine

I'm a big fan of the ifconfig command as I really like the output and I'm used to it, but you need to keep in mind that the ifconfig command is now deprecated and you should be using the ip command instead.


The ip command is quite similar to the ifconfig command and can be considered as the newer version.


ip addr

Or use the following for short:

ip a

Similar to ifconfig the ip a command gives you information for all of the available interfaces.


Before there was SSH, telnet was the go-to protocol for connecting from one server to another.

However as telnet is insecure, nobody nowadays should use telnet for connections.

However, you might still use the telnet client to test the connectivity from your local machine to a remote server on a specific port.

For example, if you wanted to check if port 80 on a remote server is open, you could run the following command:

telnet 80


The nc command, or netcat is used to read from and write to network connections using TCP or UDP.

As an example, you could start listening on a port with the following command:

nc -l 1234

The above command would start listening on port 1234 and if you open a second terminal and use telnet to connect on that port, then start typing, you will be able to see the input from your second terminal directly on your first terminal that you've started the nc command on. You should give this a try, it's pretty cool!


The nmap command is an open-source tool, used for scanning networks.

The command is used to discover other hosts on a specific network by sending packets and then analyzing the response. For example, you could use nmap to run a port scan on a specific host and find out what ports are being used:



As a system administrator, I use the netstat command super often! It shows you the network statistics on your machine, for example, if you wanted to see all of the connections port 80, you could just run the following command:

netstat -plant | grep 80

You could also use netstat to see what services are running and listening on your machine as well.

netstat -plant | grep LISTEN

As much as I love the netstat command it is now being replaced with the ss command. It is faster and provides more information.


ss -lt


Learning the above commands will make your life a lot easier in case you are facing any issues with your website or server.

Of course, there are a lot more commands out there but those are my top 15, I encourage you to go out there and explore the power of Linux! It is just amazing, it can be used as a desktop, web server, and even a firewall!

Still have a question?

Get help or discuss anything development/design related.

Start a discussion