1、什么是LO接口?

在LINUX系统中,除了网络接口eth0,还可以有别的接口,比如lo(本地环路接口)。

环回地址lo是主机用于向自身发送通信的一个特殊地址(也就是一个特殊的目的地址)。

本地回环地址指的是以127开头的地址(127.0.0.1 – 127.255.255.254),通常用127.0.0.1来表示。

127.0.0.1,通常被称为本地回环地址(Loop back address),不属于任何一个有类别地址类。它代表设备的本地虚拟接口,所以默认被看作是永远不会宕掉的接口。

在windows操作系统中也有相似的定义。

2、LO接口的作用是什么?

其主要作用有两个:

(1)、通常在不安装网卡前就可以ping通这个本地回环地址???。一般都会用来检查本地网络协议、基本数据接口等是否正常的。

(2)、测试本机的网络配置,能PING通127.0.0.1说明本机的网卡和IP协议安装都没有问题。
(3)、 提供一个回环接口,很多需要网络的程序(比如mpd,xmms2),需要这个接口来通信。

Q: 本机和本机Socket通信会走网卡吗?

A: 不走网卡,不走物理设备,但是走虚拟设备,loopback device环回. 本机发给本机的数据,在网络层就可以判别是本机,不需要往外转发。
在Linux服务器抓包的时候,本机间程序的通信监听lo网卡的数据包即可获取相应的数据。

假如包是由一个本地进程为另一个本地进程产生的, 它们将通过外出链的’lo’接口,然后返回进入链的’lo’接口.具体参考包过滤器的相关内容。

实验:

  本地一个进程发起连接,到一个本地的daemon监听的内网IP地址(eth1: 10.1.1.1)的端口(8085),此时在eth1上是抓不到包的,在 lo 上抓到,说明使用的是本地回环接口lo,而网络层的IP地址则是内网IP地址。