在开发或调试过程中,我们经常需要与本地服务器通信。例如启动nginx后,在浏览器中输入lcoalhost或127.0.0.1,即可访问本机的http服务。Linux如何访问本机IP?大多数操作系统在网络层实现环回功能,通常使用虚拟环回网络接口。这个虚拟环回网络接口看起来像一个真正的网卡。其实就是操作系统用软件模拟出来的。它可以通过TCP/IP与同一主机上的其他服务通信。127开头的IPv4地址是为它预留的,主流的Linux操作系统给loopback网卡分配的地址是127.0.0.1,hostname是localhost。loopback网口之所以叫loopback网口,是因为从本机发往本机任意IP的数据包,在网络层都会交给loopback网口,而不会发往数据链路。层进行处理,环回网络接口直接回传给网络层,最后交由应用层软件程序进行处理。这种方法对于性能测试非常有用,因为节省了硬件的开销,可以直接测试协议栈软件所需的时间。环回网络接口如何判断目的IP是否为本机地址?答案是网络层在路由转发时会先查本地路由表,发现是本地IP再交给loopback网络接口。查看本地路由表的命令如下:iprouteshowtablelocal输出如下:broadcast10.141.128.0deveth0protokernelscopelinksrc10.141.155.131local10.141.155.131deveth0protokernelscopehostsrc10.141。141.155.135dev135broadeth0protokernelscopelinksrc10.141.155.131broadcast127.0.0.0devloprotokernelscopelinksrc127.0.0.1local127.0.0.0/8devloprotokernelscopehostsrc127.0.0.1local127.0.0.0sclopeproto.1127.0.0.1其中local开头是本机IP,后面的dev是网卡名称。查看本地路由表后,我们再查看主路由表,也就是我们经常操作的路由表。iprouteshowtablemain的输出如下defaultvia10.141.128.1deveth0protostaticmetric10010.141.128.0/18deveth0protokernelscopelinksrc10.141.155.131metric100loopbacknetworkinterface现在让我们看看loopback网络接口ifconfiglooutputlo:flags=73
