Linux/unix主機環回地址的一些功用
不管是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服務正常。
-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
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就不會發生這種情況。