问题描述
什么是回送和本地主机?
它们为什么存在,它们用于什么,以及如何使用它们?
最佳解决方案
loopback device是您计算机用于与自己进行通信的特殊virtual network interface。它主要用于诊断和故障排除,并连接到本地机器上运行的服务器。
环回的目的
当网络接口断开连接时 – 例如,拔下Ethernet端口或关闭Wi-Fi或关闭Wi-Fi或不与access point关联时 – 无法在该接口上进行通信,甚至无法与计算机进行通信。回送接口并不代表任何实际的硬件,但存在于您的计算机上运行的应用程序始终可以连接到同一台计算机上的服务器。
这对于故障排除非常重要(可以将其与查看镜像进行比较)。环回设备有时被解释为纯粹的诊断工具。但是当提供所需资源的服务器在您自己的机器上运行时,这也很有帮助。
例如,如果您运行的是Web服务器,则您拥有所有Web文档并可逐个文件地检查它们。您可能也能够在浏览器中加载文件,但使用server-side有效内容时,当有人正常访问它时,它将无法正常工作。
所以如果你想体验别人做的同一网站,最好的方法通常是连接到你自己的服务器。环回接口有利于这一点。
环回地址
对于IPv4,环回接口分配了127.0.0.0/8
address block中的所有IPs。也就是说,127.0.0.1
到127.255.255.254
都代表你的电脑。但是,对于大多数用途而言,只需要使用一个IP地址,即127.0.0.1
。该IP具有映射到它的localhost
的hostname。
因此,要通过SSH以bob
身份登录到在您的计算机上运行的SSH服务器,您可以使用:
ssh bob@localhost
像其他网络适配器一样,环回设备显示在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)
一个例子:CUPS
在Ubuntu上使用localhost
的一个常见生产(即不仅仅是诊断)是执行高级打印机配置。在网络浏览器中,转到:
http://localhost:631
CUPS在端口631上运行Web服务器,无论您正在运行何种GUI(或者即使您根本没有运行GUI),也可以使用此服务器来配置打印。
如果您尝试连接到http://127.0.0.1:631
,这也会起作用。但是,如果您尝试连接到http://127.0.0.2
,则不会。所有127.*.*.*
地址都可以在回送接口上识别您的计算机,但服务器程序可以决定只绑定到特定的IP地址。
与Windows有明显区别
如果您来自Windows后台,您可能会认为loopback
本身就是localhost
的同义词(因此可以ping通loopback
,连接到loopback
上的服务器等等)。这种行为是Windows特有的。
-
但是,您可以将包含
loopback
的add any name添加到您的/etc/hosts
文件中,并将127.0.0.1
作为其地址,并且其行为与localhost
相同。
其他含义”Loopback”
loopback的一般概念是一种消息或信号结束(或循环)回到开始位置的机制。
因此,在Ubuntu中使用loopback的其他一些方法不应与网络中的环回设备混淆。
循环坐骑
要在Ubuntu中安装磁盘映像,您可以运行:
sudo mount -o loop image.iso /media/label
这通常称为loop device(而不是回送设备),但偶尔会使用术语回送文件接口。
这与网络环回设备无关。
Sound
Pulseaudio和其他音响系统为”connect” line-in提供一种机制至line-out,以便将音频输入回送至您的扬声器/耳机。 Pulseaudio的loopback module为此提供了便利。
在这里,使用术语loopback是正确的,但像循环安装一样,这也与网络中的环回设备无关。 (而且与循环坐骑无关。)