当前位置: 首页 > news >正文

127.0.0.1和0.0.0.0的区别

网络小白,首先明白监听的概念:

监听(listen) 是指服务器或应用程序等待客户端连接或数据请求的过程。服务器通过在某个特定的端口上“监听”,来接收来自客户端的请求。当客户端发起连接时,服务器接收到请求并进行处理。

就是主动准备接受xx发送的请求。

具体含义:

  1. 服务器监听端口

    • 服务器会在某个端口上进行监听,准备接受来自客户端的连接请求。每个端口对应着一个网络服务,例如HTTP的80端口或HTTPS的443端口。当客户端请求服务器时,服务器“监听”到请求并作出响应。

    示例

    • 一个Web服务器监听在80端口,当有人通过浏览器访问网站时,服务器监听到该请求,并返回网页数据。
  2. 监听地址和接口

    • 服务器可以监听特定的IP地址或所有可用的IP地址。常见的有:
      • 监听0.0.0.0:监听所有网络接口上的连接请求。
      • 监听127.0.0.1:仅监听本地主机(即本机上的程序可以访问,但外部网络的请求无法到达)。
      • 监听某个特定IP地址:服务器只监听特定网络接口的请求。
  3. 套接字监听

    • 在编程中,监听的概念与网络套接字(socket)紧密相关。服务器创建一个套接字,并将其绑定到特定的IP地址和端口上,开始监听连接。客户端连接到这个套接字后,服务器可以接收并处理数据。

监听的工作流程:

  1. 服务器启动,选择一个IP地址(或所有可用地址)和端口,开始监听。
  2. 客户端发起连接请求,向服务器的IP地址和端口发送数据包。
  3. 服务器收到请求并接受连接,开始与客户端进行通信。

监听就是服务器或应用程序“等待”网络连接或数据请求的过程,类似于接听电话。通过监听,服务器能够主动接受并响应客户端发来的连接请求或数据包。

 

0.0.0.0

0.0.0.0 是一个特殊的IP地址,它有多种用途,取决于上下文。以下是主要的含义和用途:

  1. 表示所有IPv4地址

    • 当一个服务器或网络服务监听在 0.0.0.0 上时,意味着它将监听(本机)所有可用的网络接口(即所有配置的IP地址)。例如,如果一台主机有多个网卡或IP地址,服务监听在 0.0.0.0 上,就会接受来自任何网络接口的请求。

    示例

    • 一个Web服务器绑定 0.0.0.0:80,意味着它会监听该主机的所有IP地址上的80端口(HTTP请求)。(别的主机的无法主动监听,除非别的主机主动发送请求到本机)
    • 如果一个主机有两个IP地址,192.168.1.1 和 10.1.2.1,并且该主机上的一个服务监听的地址是0.0.0.0,那么通过两个ip地址都能够访问该服务;
  2. 默认路由地址

    • 在路由表中,0.0.0.0 代表默认路由(即匹配所有目标地址的路由)。当主机没有明确的路由时,它会通过默认路由发送数据包。

    示例

    • 在路由器配置中,0.0.0.0/0 通常表示默认网关,意味着所有不匹配特定网络的流量都会通过这个路由发送出去。
  3. 表示无效的、未知的或未指定的IP地址

    • 在某些上下文中,0.0.0.0 表示没有具体的IP地址。例如,设备启动时还没有分配IP地址时,可能显示为 0.0.0.0

    示例

    • 当一个网络设备等待DHCP分配地址时,它可能会暂时使用 0.0.0.0

 

127.0.0.1

127.0.0.1属于{127,}集合中的一个,而所有网络号为127的地址都被称之为回环地址,所以回环地址不等于127.0.0.1,它们是包含关系,即回环地址包含127.0.0.1。

回环地址的定义:

所有发往该类地址的数据包都应该被loop back。

主要用途:

  • 1)回环测试:通过使用ping 127.0.0.1 测试某台机器上的网络设备,操作系统或者TCP/IP实现是否工作正常;
  • 2)DDos攻击防御:网站收到DDos攻击之后,将域名A记录到127.0.0.1,即让攻击者自己攻击自己;
  • 3)程序测试:大部分Web容器测试的时候绑定的本机地址。

主要区别

特性127.0.0.1 (localhost)0.0.0.0
作用回环地址,只用于本机之间的通信通配符地址,表示所有网络接口或未指定地址
通信范围仅限本地计算机在服务器中用于监听来自所有网络接口的连接
外部可访问性外部设备无法访问,完全本地通信可以通过绑定监听外部网络接口来接受外部连接请求
典型应用场景用于测试或开发环境中的本地通信服务器监听所有IP地址;默认路由配置
例子localhost:8080 表示本机通信0.0.0.0:8080 表示监听所有网络接口上的8080端口

 

看到这里,我还是疑问,为什么0.0.0.0允许外部网络连接?

示例说明:

假设有一台服务器A,配置如下:

  • 局域网IP地址:192.168.1.10
  • 外网IP地址:203.0.113.1
场景1:服务器监听 0.0.0.0:80
  • 服务器A将监听所有网络接口上的80端口(HTTP端口)。
  • 局域网设备:如果局域网中的另一台设备 192.168.1.20 访问 http://192.168.1.10:80,它可以与服务器A通信。
  • 互联网设备:如果外部网络中的设备访问 http://203.0.113.1:80,它同样可以与服务器A通信。
  • 服务器通过绑定 0.0.0.0:80,接受来自局域网和互联网的请求。
场景2:服务器监听 127.0.0.1:80
  • 服务器A将仅监听回环地址(localhost)上的80端口。
  • 局域网或互联网设备:无法通过 192.168.1.10203.0.113.1 访问服务器,外部设备无法建立连接。
  • 本地主机:只有服务器A自身可以通过 http://127.0.0.1:80 访问服务。

所以,0.0.0.0 允许外部网络连接的意思是,服务器会监听所有网络接口的某个端口,接受来自任何IP地址的连接请求。不管请求来自局域网或互联网,只要能够通过网络路由到服务器的IP地址并访问该端口,服务器都会响应这些请求。


http://www.mrgr.cn/news/34285.html

相关文章:

  • Windows本地部署开源趣味画风白板手绘工具Excalidraw并实现远程操作
  • Git 命令宝典,这篇就够了~
  • 优可测一键闪测仪:实现冲压端子的快速精准尺寸检测
  • (附源码)基于django的电力工程作业现场物资管理系统的设计与实现-计算机毕设 22067
  • Qt之QFuture理解
  • 统信服务器操作系统ade版【iostat】命令详解
  • 2024年倒计时提醒软件哪个好?倒计时提醒app
  • 寄大件快递用什么物流更便宜,寄20-200公斤大件价格对比
  • C++ 异步编程中:future与promise、packaged_task、async
  • Android对象池的深入理解和使用
  • gif怎么压缩变小一点?6种方法你快速压缩gif
  • 一文读懂HPA弹性扩展自定义指标和缩放策略
  • 【数据结构-栈】力扣844. 比较含退格的字符串
  • 更新gitignore后如何使其生效
  • 如何高效绘制ER图?
  • 2024.09.14 校招 实习 内推 面经
  • 稳定为恒定功率负载供电的 DC/DC 转换器
  • 海外博主大力推荐 Navicat Premium Lite 免费版
  • 【每天学个新注解】Day 3 Lombok注解简解(二)—@Log
  • Redis简单介绍与安装应用