什么是环回设备以及如何使用它?

Eli*_*gan 169 networking localhost

什么是环回本地主机

它们为什么存在,它们的用途是什么,我将如何使用它们?

Eli*_*gan 240

回环设备是一种特殊的,虚拟 的网络接口,你的计算机使用与自己沟通。它主要用于诊断和故障排除,以及连接到本地机器上运行的服务器。

环回的目的

当网络接口断开连接时——例如,当以太网端口被拔掉或Wi-Fi关闭或未与接入点关联时——无法在该接口上进行通信,甚至无法在计算机与自身之间进行通信。环回接口并不代表任何实际的硬件,但它的存在是为了让您计算机上运行的应用程序始终可以连接到同一台机器上的服务器。

这对于故障排除很重要(可以将其比作照镜子)。环回设备有时被解释为纯粹的诊断工具。但是,当提供您需要的资源的服务器在您自己的机器上运行时,它也很有帮助。

例如,如果您运行一个 Web 服务器,则您拥有所有的 Web 文档,并且可以逐个文件地检查它们。您也可以在浏览器中加载文件,尽管使用服务器端活动内容,当有人正常访问它时,它不会像它那样工作。

所以如果你想体验别人做的同一个站点,最好的办法通常是连接到你自己的服务器。环回接口促进了这一点。

环回地址

对于IPv4,环回接口分配了地址块中的所有IP。也就是说,通过所有代表您的计算机。但是,对于大多数用途,只需要使用一个 IP 地址,即. 这个IP有主机名的映射到它。127.0.0.0/8 127.0.0.1127.255.255.254 127.0.0.1localhost

因此,要bob通过SSH登录到在您自己的机器上运行的 SSH 服务器,您可以使用:

ssh bob@localhost
Run Code Online (Sandbox Code Playgroud)

与其他网络适配器一样,环回设备显示在ifconfig. 它的名字是lo

ek@Del:~$ ifconfig lo
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:50121 errors:0 dropped:0 overruns:0 frame:0
          TX packets:50121 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:4381349 (4.3 MB)  TX bytes:4381349 (4.3 MB)
Run Code Online (Sandbox Code Playgroud)

示例:CUPS

localhost在 Ubuntu 上的一种常见的生产(即,不仅仅是诊断)用途是执行高级打印机配置。在 Web 浏览器中,转到:

http://localhost:631
Run Code Online (Sandbox Code Playgroud)

CUPS在端口 631 上运行 Web 服务器,这可用于配置打印,无论您正在运行什么 GUI(或者即使您根本没有运行 GUI)。

在 Web 浏览器中显示 CUPS 的屏幕截图

如果您尝试连接到http://127.0.0.1:631,这也将起作用。但是,如果您尝试连接到http://127.0.0.2,则不会。所有127.*.*.*地址都在环回接口上标识您的计算机,但服务器程序可以决定只绑定到特定的 IP 地址。

与 Windows 的显着区别

如果您来自 Windows 背景,您可能希望loopback它自己是 的同义词localhost(因此能够 ping loopback、连接到 上的服务器loopback,等等)。这种行为是 Windows 特有的。

“环回”的其他含义

环回的一般概念是一种机制,消息或信号通过该机制结束(或循环)回到它开始的位置。

因此,在 Ubuntu 中还有其他一些使用环回的方式,不应与网络中的环回设备混淆。

环形支架

要在 Ubuntu 中挂载磁盘映像,您可以运行:

sudo mount -o loop image.iso /media/label
Run Code Online (Sandbox Code Playgroud)

这通常称为循环设备(而不是环回设备),但有时会使用术语环回文件接口

这与网络中的环回设备无关。

声音

Pulseaudio 和其他音响系统提供了一种将线路输入“连接”到线路输出的机制,以便音频输入回声到您的扬声器/耳机。Pulseaudio 的环回模块有助于实现这一点。

在这里,使用术语loopback正确的,但与循环挂载一样,这也与网络中的环回设备无关。(也与循环安装无关。)

进一步阅读

  • 为什么 127.0.0.0/8 映射到 127.0.0.1 到 127.255.255.254 而不是 127.0.0.0 到 127.255.255.255?(对不起,如果这被认为是劫持。) (8认同)
  • 他只提到了可用的主机地址,排除了网络和广播地址。你说它应该是 127.0.0.0-127.255.255.255 是正确的,但第一个和最后一个有其他目的。 (7认同)
  • @MAChitgarha 子网中的第一个IP地址是网络标识地址,最后一个IP地址是广播地址。默认情况下,这些都不能分配给主机。广播地址用于寻址网络中的每台主机,网络地址用于标识网络本身。请参阅:https://en.wikipedia.org/wiki/IP_address (5认同)
  • @Eliah,“localhost”必须指向“127.0.0.1”吗?或者它也可以指向另一个环回地址,例如`127.0.0.2`? (2认同)
  • @GabrielSamfira,那么为什么当我尝试使用 SSH 连接到这两个 IP 地址时(例如通过运行 `ssh 127.0.0.0`),它会说“网络无法访问”而不是“连接被拒绝”? (2认同)