Skip to Content

Step by Step Guide to troubleshoot network issue in Linux

Troubleshooting a problem related to Linux networking can be a challenging experience, but it doesn’t have to be.

By understanding the basic principles of Linux networking and having an organized approach, you can quickly identify and resolve any issue that arises.

In this article, we will dive into this issue using the following commands.

  1. Network Configuration:
    • ifconfig or ip command: Check network interface configuration, IP addresses, subnet masks, and other network details.
  2. Network Connectivity:
    • ping command: Test network connectivity by sending ICMP echo request packets to a specified IP address or hostname.
    • route command: View and manipulate the kernel routing table to examine or modify network routing information.
  3. Network Connection Status:
    • netstat command: Display active network connections, open ports, listening services, and network statistics.
  4. Capturing Network Packets:
    • Sniffing Tools (e.g., tcpdump, Wireshark): Capture and analyze network packets to troubleshoot network issues, monitor traffic, or perform detailed packet analysis.


This article is part of the following series.


Check network configuration with ifconfig or ip command in Linux

The first step in troubleshooting a network issue is to verify the system’s configuration by running the “ifconfig” command.

This will provide you with a list of all the interfaces configured on your system, as well as their IP addresses, subnet masks, and other important information.

If you’re trying to determine why your system can’t connect to a particular network, the ifconfig command is useful for verifying that the correct IP address and subnet mask are configured.

If you need to troubleshoot a connection, it can be helpful to check whether the interface is up and running.

For example, if you run the “ifconfig” command and see that the IP address is incorrectly configured, this could be an indication of a problem.

In this case, you would need to use the “ifconfig eth0 up” command to set the correct settings and bring the interface up.

You can refer to this post to fix ifconfig command not found.

If you need more detailed information about your network configuration, you can use the ip command to view more detailed information about each interface, including its MAC address and other settings.

Check network connectivity with ping and route command in Linux

The next step to troubleshooting networking issues is using ping, which sends a small piece of data to a remote computer and waits for a response.

If the destination system is not responding, it can indicate an issue with the connection or firewall rules.

If you need to verify that a connection between two systems is working, the ping command can be used to quickly identify any problems.

Additionally, if you’re trying to troubleshoot a slow connection, ping can be used to identify whether the network is experiencing latency or packet loss.

For example, if you are pinging a remote server and the response time is much higher than expected (200 ms or more), this could indicate high latency in your network.

In such cases, it might be necessary to investigate further by using a tool like traceroute to determine where the bottleneck is occurring.

Another useful tool in troubleshooting any Linux networking issue is using traceroute to pinpoint where the problem is occurring.

This will provide you with a list of all the hops between your system and the remote host, along with information about latency and packet loss at each hop.

For example, if you run the “traceroute” command and see that the latency is increasing at each hop, this could indicate an issue with one of the network routers or switches.

In such cases, it might be necessary to contact your network administrator in order to resolve the issue.

Check network connection status with netstat command in Linux

Once you have verified the network connectivity, you can investigate further by using the netstat command to view active network connections.

This will tell you which ports are currently in use and if there is any unexpected traffic coming into or out of your system.

The netstat command is very useful for identifying any network connections that are established to the remote host.

For example, if you run “netstat” and the output includes a connection with a status of “SYN_SENT”, this indicates that the connection is stuck in the process of being established. This could be caused by an incorrect configuration or a problem with the remote host’s firewall.

Capture network packets with sniffing tools in Linux

Finally, if you still cannot resolve the issue after checking all of the above, you can use network sniffing tools like tcpdump or Wireshark to capture and analyze packets on your network. This will allow you to identify the exact source of any problem, as well as give you a better understanding of how traffic is being routed between different computers and networks.

In conclusion, there are a variety of tools available for troubleshooting Linux networking issues.

It’s important to have a basic understanding of these commands and how to use them in order to effectively diagnose and resolve any connectivity issues.

By following these steps in an organized fashion, you can quickly troubleshoot most Linux networking issues without having to resort to drastic measures like rebooting your system or reconfiguring the network.

With a little knowledge and patience, the troubleshooting process can be an engaging and rewarding experience.