Linux/unix主机环回地址的一些功用

Linux/unix主机环回地址的一些功用

  作者:田逸 sery@163.com

  不管是linux、unix还是windows系统,都有一个为127.0.0.1这样的ip地址。这是一个特殊的ip地址,称为主机环回地址。打开文件/etc/hosts,至少有127.0.0.1这一行。在日常工作中极有可能使用环回地址来完成某种任务,但关于环回地址127.0.0.1用途的文章还是相当的少,我在此行文一篇,权作抛砖引玉。

  测试功能

  127.0.0.1常用来在本机测试各种网络服务,下面列举一些事例:

  1、测试sshd服务是否正常。在控制台上运行命令 ssh 127.0.0.1如果出现要求输入密码则表明sshd服务正常。

  2、测试ftp服务。在控制台运行命令 ftp 127.0.0.1 ,某个控制台的输出入下:

    -bash-3.00# ftp 127.0.0.1
    ftp: connect: Connection refused
    ftp>

  这个输出表明ftpd服务不正常,正常提供网络服务的ftp输出应该是这样的:

    -bash-3.00# ftp 127.0.0.1
    Connected to 127.0.0.1.
    220 (vsFTPd 2.0.5)
    Name (127.0.0.1:root):

  3、测试邮件服务。控制台执行命令 telnet 127.0.0.1 25 和 telnet 127.0.0.1 110即可判断邮件服务器的运行状态。

  4、查看系统都开放了那些端口。Nmap工具是个非常好的选择,输出结果远比netstat 直观。

    [root@netmonitor ~]# nmap 127.0.0.1

    Starting nmap 3.70 ( http://www.insecure.org/nmap/ ) at 2007-05-15 18:05 CST
    Interesting ports on localhost.localdomain (127.0.0.1):
    (The 1656 ports scanned but not shown below are in state: closed)
    PORT   STATE SERVICE
    21/tcp open  ftp
    22/tcp open  ssh
    25/tcp open  smtp
    80/tcp open  http

    Nmap run completed -- 1 IP address (1 host up) scanned in 0.224 seconds

  本地应用程序连接

  象apache+php+mysql这样的应用环境,应用程序与mysql数据库同时存在于同一个系统上面,常用环回地址127.0.0.1做套接字的ip地址。

  在这里可能有人会质疑:不用环回地址可不可以?答案是肯定的,用主机某个网络接口的ip就可以代替这个环回地址。那这里为什么还要强调这个环回地址呢?主要的原因是方便和稳定。网络接口的地址可能因为某种原因被更改(如服务器搬迁到别的地理位置),或者应用被迁移到另外的系统,象前面描述的apache+php+mysql 环境,由于使用了环回地址127.0.0.1,就不会受ip地址改变的影响,反之亦然。有的网络服务,对它自身所监听的网络接口---如把apache的监听设置成 “Listen 192.168.27.201:80”—依赖性比较高,一旦网络接口中断(down),服务本身也可能停止,如果采用默认的监听地址127.0.0.1就不会发生这种情况。