localhost、127.0.0.1 和 本机IP 三者的区别

本文涉及的产品
.cn 域名,1个 12个月
简介: 问: 是不是localhost就等于本地的IP啊? 答:不是,localhost等于127.0.0.1。问:是不是以后所有访问localhost的都可以换成127.0.0.1 ?答:是的,本机的ip内网都可以访问,127.0.01只能本机访问。问:你说的内网 就是我们用的同一条宽带,同一个宽带账号的人吗 ?答:是的。所以,大佬们说的内网访问。我们只要在同一局域网之内,都能通过IP去访问。

问: 是不是localhost就等于本地的IP啊?

答:不是,localhost等于127.0.0.1。

问:是不是以后所有访问localhost的都可以换成127.0.0.1 ?

答:是的,本机的ip内网都可以访问,127.0.01只能本机访问。

问:你说的内网 就是我们用的同一条宽带,同一个宽带账号的人吗 ?

答:是的。

所以,大佬们说的内网访问。我们只要在同一局域网之内,都能通过IP去访问。


--------------------------------拓展--------------------------------

介绍下localhost、127.0.0.1 和 本机IP 三者的区别?


1、localhost:

首先 localhost 是一个域名,在过去它指向 127.0.0.1 这个IP地址。在操作系统支持 ipv6 后,它同时还指向ipv6 的地址 [::1]


在 Windows 中,这个域名是预定义的,从 hosts 文件中可以看出:

而在 Linux 中,其定义位于 /etc/hosts 中:


127.0.0.1    localhost


注意这个值是可修改的,比如把它改成


192.068.206.1    localhost


然后再去 ping localhost,提示就变成了

PING localhost (192.168.206.1) 56(84) bytes of data.


2、127.0.0.1


127.0.0.1 这个地址通常分配给 loopback 接口。loopback 是一个特殊的网络接口(可理解成虚拟网卡),用于本机中各个应用之间的网络交互。只要操作系统的网络组件是正常的,loopback 就能工作。Windows 中看不到这个接口,Linux中这个接口叫 lo:


#ifconfig
eth0    Link encap:Ethernet hwaddr 00:00:00:00:00:00
            inet addr :192.168.0.1 Bcase:192.168.0.255 Mask:255.255.255.0
           ......
lo        Link encap:Local Loopback
           inetaddr: 127.0.0.1 Mask: 255.0.0.0
           ......


可以看出 lo 接口的地址是 127.0.0.1。事实上整个 127.* 网段都算能够使用,比如你 ping 127.0.0.2 也是通的。

但是使用127.0.0.1作为loopback接口的默认地址只是一个惯例,比如下面这样:


#ifconfig lo 192.168.128.1
#ping localhost   #糟糕,ping不通了
#ping 192.128.128.1  # 可以通
#ifconfig lo
lo        Link encap:Local Loopback
           inetaddr: 192.168.128.1 Mask: 255.255.255.0
           ......


如果随便改这些配置,可能导致很多只认 127.0.0.1 的软件挂掉。


3、本机IP

确切地说,“本机地址”并不是一个规范的名词。通常情况下,指的是“本机物理网卡所绑定的网络协议地址”。由于目前常用网络协议只剩下了IPV4,IPX/Apple Tak消失了,IPV6还没普及,所以通常仅指IP地址甚至ipv4地址。一般情况下,并不会把 127.0.0.1当作本机地址——因为没必要特别说明,大家都知道。


本机地址是与具体的网络接口绑定的。比如以太网卡、无线网卡或者PPP/PPPoE拨号网络的虚拟网卡,想要正常工作都要绑定一个地址,否则其他设备就不知道如何访问它。


● localhost 是个域名,不是地址,它可以被配置为任意的 IP 地址,不过通常情况下都指向 127.0.0.1(ipv4)和 ::1

● 整个127.* 网段通常被用作 loopback 网络接口的默认地址,按惯例通常设置为 127.0.0.1。这个地址在其他计算机上不能访问,就算你想访问,访问的也是自己,因为每台带有TCP/IP协议栈的设备基本上都有 localhost/127.0.0.1。

● 本机地址通常指的是绑定在物理或虚拟网络接口上的IP地址,可供其他设备访问到。

● 最后,从开发度来看

○ localhost是个域名,性质跟 “www.baidu.com” 差不多。不能直接绑定套接字,必须先gethostbyname转成IP才能绑定。

○ 127.0.0.1 是绑定在 loopback 接口上的地址,如果服务端套接字绑定在它上面,你的客户端程序就只能在本机访问。



目录
相关文章
|
4月前
|
Ubuntu 网络协议 开发工具
在 Ubuntu Server 上配置静态 IP 地址
在 Ubuntu Server 上配置静态 IP 地址
340 0
|
5月前
|
网络协议 Linux
云服务器内部端口占用,9090端口已经存在了,如何关闭,Linux查询端口,查看端口,端口查询,关闭端口写法-netstat -tuln,​fuser -k 3306/tcp​
云服务器内部端口占用,9090端口已经存在了,如何关闭,Linux查询端口,查看端口,端口查询,关闭端口写法-netstat -tuln,​fuser -k 3306/tcp​
|
5月前
|
域名解析 网络协议 Linux
linux网络-- 手动配置ip地址
linux网络-- 手动配置ip地址
|
7月前
|
安全 网络安全 数据安全/隐私保护
80端口和443端口的概念与区别
总之,80端口和443端口都是用于网络通信的端口号,但它们在安全性和用途上有明显的区别,443端口提供了更高的数据安全性。
972 0
|
7月前
|
网络协议 Ubuntu 网络安全
127.0.0.1、0.0.0.0和本机ip地址的区别
127.0.0.1、0.0.0.0和本机ip地址的区别
|
域名解析 存储 负载均衡
实现服务器多IP的实现方法
实现服务器多IP的实现方法
400 1
|
Shell 开发工具
写一个脚本/root/bin/hostping.sh,接受一个主机的IPv4地址做为参数,测试是否可连通。如果能ping通,则提示用户“该IP地址可访问”;如果不可ping通,则提示用户“该IP地址不可访问
写一个脚本/root/bin/hostping.sh,接受一个主机的IPv4地址做为参数,测试是否可连通。如果能ping通,则提示用户“该IP地址可访问”;如果不可ping通,则提示用户“该IP地址不可访问
117 0
|
Kubernetes 网络安全 数据安全/隐私保护
K8S 集群部署_主机准备_IP 设置及主机名解释 | 学习笔记
快速学习 K8S 集群部署_主机准备_IP 设置及主机名解释
530 0
K8S 集群部署_主机准备_IP 设置及主机名解释 | 学习笔记
|
网络协议 Linux 测试技术
聊一聊localhost,127.0.0.1和本机IP
聊一聊localhost,127.0.0.1和本机IP
460 0