localhost不是有效的主机名:电脑和服务器上的主机地址localhost到底有啥用
本头条号每天坚持更新原创干货技术文章,欢迎关注本头条号"Linux学习教程",公众号名称“Linux入门学习教程"。
如需学习视频,请复制以下信息到手机浏览器或电脑浏览器上:
zcwyou.com
1. 前言
本文主要讲解计算机的基础知识:什么是localhost?
计算机由它们的主机名[主机名]和IP地址标识。
下面的图表简要说明了这一点。
localhost的简要介绍
同样,我们也有一个用于调用自己的所有计算机系统的通用名称,即localhost。在本文中,术语“localhost”与计算机网络的上下文相关联。在我们作为开发人员或系统管理员的过程中,它扮演着至关重要的角色。对于“localhost”有很多用例,例如应用程序测试、文档、网络性能测试和站点阻塞。
让我们更深入地了解它的本质细节。
2. localhost是什么?localhost是一个主机名,它指的是运行调用程序的计算机系统,这意味着当我们调用localhost时,机器将与自己对话。
什么是localhost
它帮助我们检查机器中的网络服务,甚至在网络硬件故障时。当使用“localhost”时,通过称为Loopback的逻辑网络接口访问网络服务。loopback接口的IP地址为127.0.0.1。因此,localhost解析为127.0.0.1作为名称解析的一部分。
3. 什么是Loopback地址?Loopback环回地址是存在于所有操作系统中的逻辑网络接口。通过这个接口传输的数据包被返回(循环)到同一台机器上的同一接口。因此,该接口被称为环回。
根据IETF IPv4寻址标准,整个区块127.0.0.0/8被分配用于网络环回。作为默认行为,环回接口在每次服务器安装后都要配置。
让我们看一下下面的代码片段。
在Linux系统中执行以下指令:
ip a show lo
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
一般情况下,Loopback报文与其他IP报文的区别在于它们的地址。带有环回地址的环回报文的处理发生在TCP/IP堆栈的链路层。这些流量将通过计算机系统内部。它不会像其他IP报文一样经由物理网卡。此外,还存在一条规则,即路由器不能路由该loopback IP地址。
例如,当我们请求127.0.0.1地址时。这个目标地址的请求不会转发到互联网。在这里,TCP/IP堆栈识别请求并将其路由回同一台机器。
下面是本地主机和其他IP包的包流演练的快速演示。
环回接口的数据报文如何被内部处理
PING -c 4 localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.064 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.131 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.063 ms
应用程序服务的可访问性首先通过网络接口实现。如果应用程序服务被映射为物理接口,那么外部网络就可以访问它。同样,如果应用程序映射为逻辑环回接口,则只能从该特定的计算机系统访问它,而不能从外部网络访问它。
从本地服务器开发和测试代码总是比从另一个远程主机开发和测试代码容易。为了实现这一点,我们在/etc/hosts文件中将生产域名映射为一个新的环回地址(比如127.0.1.100)。/etc/hosts中的条目优先于DNS。比如把某个域名的IP指向127.0.0.1。
6. 结论通过本文,您应该可以了解到什么是localhost了吧?其实它就是代表本机网络接口地址,它可以帮助我们测试应用程序和排除网络问题。它是通过环回网络接口使用本地环回机制实现的。它帮助我们在没有网络物理硬件连接的情况下测试软件。作为计算机用户,有必要对localhost和环回网络接口有基本的了解。
如果喜欢本文,欢迎转发。本文已同步至博客站,尊重原创,转载时请在正文中附带以下链接:https://www.linuxrumen.com/rmxx/1996.html
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com