[email protected]Office hours: Mon – Fri 9:00AM – 5:00PMLinkedInXFacebook
NexonHost
Netherlands Dedicated ServersAmsterdam · Equinix AM6Germany Dedicated ServersFrankfurt · Equinix FR4Romania Dedicated ServersBucharest · VoxilityAustria Dedicated ServersVienna · Interxion VIEBulgaria Dedicated ServersSofia · TelepointFrance Dedicated ServersParis · Interxion PAR — Marseille · Digital Realty MRS3Ireland Dedicated ServersDublin · Equinix DB2Italy Dedicated ServersMilan · Irideos AvalonPoland Dedicated ServersWarsawSpain Dedicated ServersMadrid · Equinix MD2United States Dedicated ServersAshburn · Equinix DC
All articles
Getting startedAugust 14, 2023

What is localhost?

What is localhost?

Computer machines are identified by their hostname [name of the host machine] and IP address.

The below diagram briefly illustrates it.

Likewise, we also have a common name for all the computer systems that used to call itself is known as localhost. Here, the term “localhost” is associated with the context of computer networking. It plays a vital role during our journey as a developer or system administrator. There are many use cases for the “localhost,” such as application testing, documentation, network performance testing, and site blocking.

What is Localhost?

Localhost is a hostname that refers to the computer system on which the calling program is running, which means the machine will talk to itself when we call localhost.

It helps us to check the network services in the machine, even during network hardware failures. When using “localhost” the network services are accessed through the logical network interface called loopback. The IP address of the loopback interface is 127.0.0.1. Thus, the localhost resolves to 127.0.0.1 as part of the name resolution.

What is a Loopback Address?

Loopback is a logical network interface present in all operating systems. The packets transmitted through this interface are returned (looped) back to the same interface in the same machine. Hence, the interface is called a loopback.
According to the IETF Standards for IPv4 addressing, the entire block of 127.0.0.0/8 is allocated for network loopback purposes. As the default behavior, a loopback interface gets configured after every server installation.

Let’s have a look at the below snippet.

ip a show lo
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 76238871 bytes 6955286874 (6.9 GB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 76238871 bytes 6955286874 (6.9 GB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
sudo cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 sandbox1

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback

Loopback Packet Processing Internals

Generally, Loopback packets are distinguished from the other IP packets by their addresses. The processing of loopback packets with the loopback address happens at the link layer of the TCP/IP Stack. This traffic will be passing inside the computer systems itself. It will not hit the Hardware NIC Cards like other IP packets. Additionally, there exists a rule that the routers should not route the loopback IP address.

For instance, when we request for 127.0.0.1 address. The request will not forward to the internet because of the first octet (127). Here, the TCP/IP stack recognizes the request and routes it back to the same machine.

A quick illustration of the packet flow walkthrough for localhost and other IP packets is below.

ping -c 4 localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from liviu.test (127.0.0.1): icmp_seq=1 ttl=64 time=0.101 ms
64 bytes from liviu.test (127.0.0.1): icmp_seq=2 ttl=64 time=0.091 ms
64 bytes from liviu.test (127.0.0.1): icmp_seq=3 ttl=64 time=0.076 ms
64 bytes from liviu.test (127.0.0.1): icmp_seq=4 ttl=64 time=0.069 ms

--- localhost ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.069/0.084/0.101/0.014 ms
ping -c 4 staging.nexonhost.com/
PING staging.nexonhost.com/ (89.45.12.91) 56(84) bytes of data.
64 bytes from 89.45.12.91 (89.45.12.91): icmp_seq=1 ttl=63 time=0.565 ms
64 bytes from 89.45.12.91 (89.45.12.91): icmp_seq=2 ttl=63 time=0.589 ms
64 bytes from 89.45.12.91 (89.45.12.91): icmp_seq=3 ttl=63 time=0.609 ms
64 bytes from 89.45.12.91 (89.45.12.91): icmp_seq=4 ttl=63 time=0.633 ms

--- staging.nexonhost.com/ ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 0.565/0.599/0.633/0.025 ms

Application Testing Using Localhost

The accessibility of the application service first happens through the network interface. If the application service is mapped with a physical interface, it can be accessible from the outside world. Likewise, if the application is mapped with a logical loopback interface, it can be accessed only from that specific computer system and cannot be accessible from the outside world.

It is always easy to develop and test the code from the local server than from another remote host. To achieve that, we map our production domain name with a new loopback address (127.0.1.100) in the /etc/hosts file. Entries in the /etc/hosts have precedence over DNS.

ping -c 4 staging.nexonhost.com/
PING staging.nexonhost.com/ (89.45.12.91) 56(84) bytes of data.
64 bytes from 89.45.12.91 (89.45.12.91): icmp_seq=1 ttl=63 time=0.640 ms
64 bytes from 89.45.12.91 (89.45.12.91): icmp_seq=2 ttl=63 time=0.757 ms
64 bytes from 89.45.12.91 (89.45.12.91): icmp_seq=3 ttl=63 time=0.634 ms
64 bytes from 89.45.12.91 (89.45.12.91): icmp_seq=4 ttl=63 time=0.668 ms

--- staging.nexonhost.com/ ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 0.634/0.674/0.757/0.058 ms
sudo cat /etc/hosts
127.0.0.1 liviu.test
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
ping -c 4 staging.nexonhost.com/
PING staging.nexonhost.com/ (89.45.12.91) 56(84) bytes of data.
64 bytes from 89.45.12.91 (89.45.12.91): icmp_seq=1 ttl=63 time=0.482 ms
64 bytes from 89.45.12.91 (89.45.12.91): icmp_seq=2 ttl=63 time=0.595 ms
64 bytes from 89.45.12.91 (89.45.12.91): icmp_seq=3 ttl=63 time=0.837 ms
64 bytes from 89.45.12.91 (89.45.12.91): icmp_seq=4 ttl=63 time=0.607 ms

--- staging.nexonhost.com/ ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 0.482/0.630/0.837/0.130 ms

Conclusion

Localhost is the default name of the system where our program runs that helps us test applications and troubleshoot network issues. It is achieved using a local loop mechanism through the loopback network interface. It helps us testing software without network hardware configuration dependencies. As a computer user, it is essential to have a basic understanding of the terms localhost and loopback network interfaces.

Keep reading
How to Implement Network Segmentation and Resource Isolation in Linux.
February 6, 2024

How to Implement Network Segmentation and Resource Isolation in Linux.

How to Implement Network Segmentation and Resource Isolation in Linux. Securing and managing networks in a Linux environment involves advanced practices like network segmentation and resource isolation. This guide explores these concepts, providing detailed instructions and examples for…

Read article
How to open or close ports in Linux.
February 6, 2024

How to open or close ports in Linux.

How to open or close ports in Linux. Effectively managing ports on your Linux system is crucial for both security and service accessibility. This comprehensive guide will provide a detailed walkthrough on opening and closing ports using the robust tools iptables and ufw. Understanding these…

Read article
How to use ypdomainname command.
January 23, 2024

How to use ypdomainname command.

How to use ypdomainname command. In the realm of Linux networking, the ypdomainname command plays a crucial role in the context of the Network Information Service (NIS). NIS, formerly known as Yellow Pages, is a distributed database service that facilitates the sharing of network configuration and…

Read article
Get in Touch

Together, Let’s Build a Faster, Safer Internet.

Build scalable infrastructure with NexonHost — high-performance dedicated servers, VPS hosting, colocation, and DDoS protection across Europe.

Get Started →Contact Us
[email protected]Office hours: Mon – Fri 9:00AM – 5:00PM