Linux/unix主機環回地址的一些功用

作者:田逸([email]sery@163.com[/email])發表於[url]http://network.51cto.com/art/200705/47670.htm[/url]

 

不管是linuxunix還是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 ( [url]http://www.insecure.org/nmap/[/url] ) 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就不會發生這種情況。

 

                                  2007-5-16