How to Troubleshoot Network Connectivity Issues to Your Linux VPS

How to Troubleshoot Network Connectivity Issues to Your Linux VPS

Introduction

In a fast-moving world, with high-end technology and mobile devices, many businesses rely heavily on websites which are hosted on web servers. This makes it very critical to maintain the web servers to be up all the time.

One of the main reasons a web server is down is network connectivity issues. There are many factors that could hinder network connection. Finding the root cause of the problem could prove challenging. Hence, in this article, we focus on how to troubleshoot and resolve network connectivity issues on Linux web server.

Pre-requisites

  • Linux VPS Setup – any Linux flavor, e.g. Ubuntu, Centos, Fedora, e.t.c
  • Access to ssh and sudo privileges
  • Basic Linux command and networking skills

1.
Check if the Network Interface Is Up

$ ip address show eth0
[linuxuser@centos7-hostadvice ~]$ ip address show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1460 qdisc pfifo_fast state UP group default qlen 1000
  link/ether 42:01:0a:80:00:08 brd ff:ff:ff:ff:ff:ff
  inet 35.202.119.51/32 brd 35.202.119.255 scope global noprefixroute dynamic eth0
   valid_lft 85814sec preferred_lft 85814sec
  inet6 fe80::4001:aff:fe80:8/64 scope link
   valid_lft forever preferred_lft forever

Check for the following features:

UP: The network interface is enabled. If the interface is DOWN, run the command below to bring it up.

$ ip link set eth0 up

LOWER_UP: This indicates that the network signal is active.

The second line shows the ip address 35.202.119.51 ; network bit "32" which translates to subnet mask 255.255.255.255 ;  broadcast address 35.202.119.255. Ensure you have the correct ip address and subnet mask.

2.
Check if you can reach the ip address of the web server

Ping using the ip address of the web server

$ ping -c 4 35.202.119.51
[linuxuser@centos7-hostadvice ~]$ ping -c 4 35.202.119.51
PING 35.202.119.51 (35.202.119.51) 56(84) bytes of data.
64 bytes from 35.202.119.51: icmp_seq=1 ttl=64 time=0.043 ms
64 bytes from 35.202.119.51: icmp_seq=2 ttl=64 time=0.061 ms
64 bytes from 35.202.119.51: icmp_seq=3 ttl=64 time=0.060 ms
64 bytes from 35.202.119.51: icmp_seq=4 ttl=64 time=0.063 ms
 
--- 35.202.119.51 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.043/0.056/0.063/0.012 ms

Ping using the hostname or domain of the web server

$ ping -c 4 centos7-hostadvice
[linuxuser@centos7-hostadvice ~]$ ping -c 4 centos7-hostadvice
PING centos7-hostadvice.c.sound-bay-179819.internal (35.202.119.51) 56(84) bytes of data.
64 bytes from centos7-hostadvice.c.sound-bay-179819.internal (35.202.119.51): icmp_seq=1 ttl=64 time=0.041 ms
64 bytes from centos7-hostadvice.c.sound-bay-179819.internal (35.202.119.51): icmp_seq=2 ttl=64 time=0.061 ms
64 bytes from centos7-hostadvice.c.sound-bay-179819.internal (35.202.119.51): icmp_seq=3 ttl=64 time=0.067 ms
64 bytes from centos7-hostadvice.c.sound-bay-179819.internal (35.202.119.51): icmp_seq=4 ttl=64 time=0.063 ms
 
--- centos7-hostadvice.c.sound-bay-179819.internal ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.041/0.058/0.067/0.010 ms

If ping reports no connectivity, then the issue could be firewall which has blocked ICMP requests.

Also, try to ping the server from a remote machine or through a different network. If it reports no network connectivity. Then use traceroute to check the path to the network and see at which point/hop exactly the server is down.

$ traceroute 35.202.119.51

3.
Check name resolution

If ping by IP address works but ping by hostname fails, then you have name resolution problems:

To resolve this:

Ensure you have correct IP address entries for DNS nameservers in the file “/etc.resolv.conf”

$ sudo vim /etc/resolv.conf

Check name resolution

$ dig centos7-hostadvice
 
[linuxuser@centos7-hostadvice ~]$ dig centos7-hostadvice
 
; <<>> DiG 9.9.4-RedHat-9.9.4-51.el7_4.2 <<>> centos7-hostadvice
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18106
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
 
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
;centos7-hostadvice.       IN  A
 
;; ANSWER SECTION:
centos7-hostadvice.    3600IN  A       35.202.119.51
 
;; Query time: 299 msec
;; SERVER: 35.202.119.51#53(209.126.212.51)
;; WHEN: Wed Jun 13 09:30:52 PDT 2018
;; MSG SIZE  rcvd: 64

Note: the answer section should map the hostname to the ip address of the web server. If you don’t receive the answer section, then there is an issue with the dns servers – Check the /etc/resolv.conf entries.

$ host centos7-hostadvice
[linuxuser@centos7-hostadvice ~]$ host centos7-hostadvice
centos7-hostadvice has address 35.202.119.51

Note: The output should map the hostname to the IP address of the web server. Also if you don’t get any output, then there is an issue with the DNS servers – Check the /etc/resolv.conf entries. If it maps to the wrong IP address, then you should edit the file /etc/hostsand add the correct IP address entry for your web server.

Sample /etc/hosts output

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1     localhost localhost.localdomain localhost6 localhost6.localdomain6
35.202.119.51 centos7-hostadvice centos7-hostadvice.c.sound-bay-179819.internal

4.
Check Route or Default Gateway Settings

If you cannot reach your gateway using traceroute command, then run:

$ route -n
[linuxuser@centos7-hostadvice ~]$ route -n
Kernel IP routing table
Destination     Gateway     Genmask     Flags Metric RefUse Iface
0.0.0.0         35.202.119.1  0.0.0.0     UG    100    0        0 eth0
10.128.0.0      0.0.0.0     255.255.255.0   U     0  0    0 tun0
10.128.0.1      0.0.0.0     255.255.255.255 UH1000        0 eth0
35.202.119.51      0.0.0.0     255.255.255.255 UH1000        0 eth0

Note: the gateway ip address above is in the first line: 35.202.119.1

If the gateway IP address is wrong, add the correct default gateway settings by:

$ route add default gw <router-gateway-ip-address> eth0

5.
Check for Incorrect Initialization of the System

Initialization refers to the processes run when the Linux machine is booting. The log output of all the processes run during the boot processes is saved in /var/log/messages.

$ sudo vim /var/log/messages

OR

$ dmesg | more

Check for any errors that could have caused network problems

6.
Check for security settings

$ sudo vim /etc/hosts.allow
$ sudo vim /etc/hosts.deny

Check if the web server has blocked or allowed access from specific clients.

Conclusion

The steps above are the basic tools you can use to diagnose and resolve network issues. All VPS web hosting customers should know networking basics, including these tools to diagnose and resolve network issues.

If these steps don’t resolve the issues, contact your web hosting service. If these issues persist, and your web hosting service’s support is unable to resolve them, you should consider switching to another Web host. Consult HostAdvice to find the Best VPS hosting services.

 

Check out these top 3 VPS services:

Kamatera
$4.00 /mo
Starting price
Visit Kamatera
Rating based on expert review
  • User Friendly
    3.5
  • Support
    3.0
  • Features
    3.9
  • Reliability
    4.0
  • Pricing
    4.3
Hostinger
$2.99 /mo
Starting price
Visit Hostinger
Rating based on expert review
  • User Friendly
    4.7
  • Support
    4.7
  • Features
    4.8
  • Reliability
    4.8
  • Pricing
    4.7
Webdock
$0.95 /mo
Starting price
Visit Webdock
Rating based on expert review
  • User Friendly
    3.8
  • Support
    4.5
  • Features
    4.5
  • Reliability
    4.3
  • Pricing
    4.3
  • Click here to know more about the Best website hosting.

How to Install WordPress with Nginx & Redis on a CentOS VPS or Dedicated Server

This is an easy-to-follow guide written to help you learn how to install WordPre
less than a minute
Eliran Ouzan
Eliran Ouzan
Web Designer & Hosting Expert

How to harden Nginx Web Server on an Ubuntu 18.04 VPS or Dedicated Server

Nginx is one of the most popular web servers which is vulnerable to hacking atta
less than a minute
Max Ostryzhko
Max Ostryzhko
Senior Web Developer, HostAdvice CTO

How to Change Common PHP Settings on an Ubuntu 18.04 VPS or Dedicated Server

This article shows you how to change PHP settings on your Linux Ubuntu 18.04 vir
less than a minute
Idan Cohen
Idan Cohen
Marketing Expert

How to Install WordPress with Nginx & Redis

This is an easy-to-follow guide written to help you learn how to install WordPre
less than a minute
Max Ostryzhko
Max Ostryzhko
Senior Web Developer, HostAdvice CTO
HostAdvice.com provides professional web hosting reviews fully independent of any other entity. Our reviews are unbiased, honest, and apply the same evaluation standards to all those reviewed. While monetary compensation is received from a few of the companies listed on this site, compensation of services and products have no influence on the direction or conclusions of our reviews. Nor does the compensation influence our rankings for certain host companies. This compensation covers account purchasing costs, testing costs and royalties paid to reviewers.
Click to go to the top of the page
Go To Top