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


51CTO.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就不会发生这种情况。

相关内容