howtouselinux

Troubleshoot network issues with ifconfig command in Linux

Table of Contents

Network issues can be frustrating and difficult to troubleshoot. In this blog post, we will discuss one command-line tool that can help you identify and solve network problems: ifconfig. Ifconfig is used to display information about a network interface. Let’s take a closer look at how this tool can help you troubleshoot your network!

understanding ifconfig command in Linux

Ifconfig is a command-line tool that can be used to display information about a network interface. To use ifconfig, simply type the following into your terminal: $ ifconfig. This will return a list of all of the available network interfaces on your system, as well as their corresponding IP addresses.

Example: ifconfig 

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 9001
inet 10.1.0.17 netmask 255.255.255.0 broadcast 10.1.0.255
ether 02:4b:3b:79:a1:95 txqueuelen 1000 (Ethernet)
RX packets 117321 bytes 34602342 (32.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 110819 bytes 19586497 (18.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Ifconfig can also be used to display information about specific network interfaces. To do this, simply specify the interface you want to view after the ifconfig command. For example, to view information about eth0, you would type the following into your terminal: $ ifconfig eth0

This will return information such as the IP address, MAC address, netmask, and broadcast address of eth0.

check network interface status using ifconfig command in Linux

To check the network interface status using ifconfig, you can use the following command: $ ifconfig eth0

This will return a list of information about eth0, including its status (UP or DOWN), MAC address, and IP address.

Example:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 9001
inet 10.1.0.17 netmask 255.255.255.0 broadcast 10.1.0.255
ether 02:4b:3b:79:a1:95 txqueuelen 1000 (Ethernet)
RX packets 117321 bytes 34602342 (32.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 110819 bytes 19586497 (18.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

From the output of ifconfig command, we can see that the network interface eth0 is up and running. If the interface is down, you can use the following command to bring it up: $ sudo ifconfig eth0 up. This will bring eth0 up and make it available for use.

check network packets loss using ifconfig command in Linux

You can use the ifconfig command to troubleshoot the network packet loss issue. To do this, type the following into your terminal: $ ifconfig eth0 | grep -i “dropped”

This will return a list of all of the packets that have been dropped on eth0.

Example:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 9001 inet 10.1.0.17 netmask 255.255.255.0 broadcast 10.1.0.255
ether 02:4b:3b:79:a1:95 txqueuelen 1000 (Ethernet)
RX packets 117321 bytes 34602342 (32.9 MiB) RX errors 0 dropped 9072 overruns 0 frame 0
TX packets 110819 bytes 19586497 (18.6 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

From the output above, we can see that there have been 9072 dropped packets on eth0. This may be indicative of a networking issue that needs to be troubleshooted.

There are several steps that you can take to fix packet drop in linux:

  • Check your cables and connections. Make sure that all of your cables are plugged in properly and that there are no physical problems with your network hardware.
  • Check your network settings. Make sure that your IP addresses are set correctly and that your network is configured properly. Check this post on how to change IP address in Linux.
  • Contact your network administrator or ISP for assistance if the problem persists.

 

check MTU size using ifconfig command in Linux

The maximum transmission unit (MTU) size is the largest size that a packet can be transmitted on a network. A larger MTU size can help to improve network performance, but it can also cause problems if the MTU size is too large for the network equipment.

You can use the ifconfig command to check the MTU size of your network interfaces. To do this, type the following into your terminal: $ ifconfig <interface> | grep -i “mtu”

This will return a list of all of the interfaces with their corresponding MTU sizes.

Example:
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 9001
inet 10.1.0.17 netmask 255.255.255.0 broadcast 10.1.0.255
ether 02:4b:3b:79:a1:95 txqueuelen 1000 (Ethernet)
RX packets 117321 bytes 34602342 (32.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 110819 bytes 19586497 (18.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

From the output above, we can see that the interface eth0 has a MTU size of 9001 bytes. The best practice for MTU size in Linux is to set the MTU size to the same size as the largest packet size that your network can handle. This will help to ensure that packets are not dropped due to being too large.

You can use the ping command to test the MTU size of your network. To do this, type the following into your terminal: $ ping -M do -s 1472 -c 100 google.com

Replace “google.com” with the URL of the website that you want to test. The “-s” flag is used to set the packet size and the “-c” flag is used to set the number of packets that will be sent.If you see “packet needs to be fragmented but DF set”, then this means that the MTU size is too large and needs to be reduced.

You can use the following command to reduce the MTU size: $ ifconfig eth0 mtu 1400 . This will set the MTU size of eth0 to 1400 bytes.

Change IP address using ifconfig command in Linux

If you see an interface that is not configured correctly, you can use ifconfig to change its settings. For example, to change the IP address of eth0 to 192.168.0.100, you would type the following into your terminal:

ifconfig eth0 192.168.0.100 netmask 255.255.255.0

 

David Cao
David Cao

Hey there! I am David, a Cloud & DevOps Enthusiast and 18 years of experience as a Linux engineer. I work with AWS, Git & GitHub, Linux, Python, Ansible, and Bash. I am a technical blogger and a Software Engineer, enjoy sharing my learning and contributing to open-source.