什么是端口
在網(wǎng)絡(luò)技術(shù)中,端口(Port)有好幾種意思。集線器、交換機、路由器的端口指的是連接其他網(wǎng)絡(luò)設(shè)備的接口,如RJ-45端口、Serial端口等。我們這里所指的端口不是指物理意義上的端口,而是特指TCP/IP協(xié)議中的端口,是邏輯意義上的端口。
那么TCP/IP協(xié)議中的端口指的是什么呢?如果把IP地址比作一間房子,端口就是出入這間房子的門。真正的房子只有幾個門,但是一個IP地址的端口可以有65536個之多!端口是通過端口號來標記的,端口號只有整數(shù),范圍是從0到65535。
端口有什么用呢?我們知道,一臺擁有IP地址的主機可以提供許多服務(wù),比如Web服務(wù)、FTP服務(wù)、SMTP服務(wù)等,這些服務(wù)完全可以通過1個IP地址來實現(xiàn)。那么,主機是怎樣區(qū)分不同的網(wǎng)絡(luò)服務(wù)呢?顯然不能只靠IP地址,因為IP地址與網(wǎng)絡(luò)服務(wù)的關(guān)系是一對多的關(guān)系。實際上是通過“IP地址+端口號”來區(qū)分不同的服務(wù)的。
需要注意的是,端口并不是一一對應(yīng)的。比如你的電腦作為客戶機訪問一臺WWW服務(wù)器時,WWW服務(wù)器使用“80”端口與你的電腦通信,但你的電腦則可能使用“3457”這樣的端口,如圖1所示。
按對應(yīng)的協(xié)議類型,端口有兩種:TCP端口和UDP端口。由于TCP和UDP兩個協(xié)議是獨立的,因此各自的端口號也相互獨立,比如TCP有235端口,UDP也可以有235端口,兩者并不沖突。
端口是怎樣分配的
與IP地址一樣,端口號也不是隨意使用的,而是按照一定的規(guī)定進行分配。端口的分類標準有好幾種,我們這里不做詳細講解,只介紹一下周知端口和動態(tài)端口。
1.周知端口(Well Known Ports)
周知端口是眾所周知的端口號,范圍從0到1023,其中80端口分配給WWW服務(wù),21端口分配給FTP服務(wù)等。我們在IE的地址欄里輸入一個網(wǎng)址的時候(比如www.cce.com.cn)是不必指定端口號的,因為在默認情況下WWW服務(wù)的端口號是“80”。
網(wǎng)絡(luò)服務(wù)是可以使用其他端口號的,如果不是默認的端口號則應(yīng)該在地址欄上指定端口號,方法是在地址后面加上冒號“:”(半角),再加上端口號。比如使用“8080”作為WWW服務(wù)的端口,則需要在地址欄里輸入“www.cce.com.cn:8080”。
但是有些系統(tǒng)協(xié)議使用固定的端口號,它是不能被改變的,比如139端口專門用于NetBIOS與TCP/IP之間的通信,不能手動改變。
2.動態(tài)端口(Dynamic Ports)
動態(tài)端口的范圍是從1024到65535。之所以稱為動態(tài)端口,是因為它一般不固定分配某種服務(wù),而是動態(tài)分配。動態(tài)分配是指當一個系統(tǒng)進程或應(yīng)用程序進程需要網(wǎng)絡(luò)通信時,它向主機申請一個端口,主機從可用的端口號中分配一個供它使用。當這個進程關(guān)閉時,同時也就釋放了所占用的端口號。
怎樣查看端口
一臺服務(wù)器有大量的端口在使用,怎么來查看端口呢?有兩種方式:一種是利用系統(tǒng)內(nèi)置的命令,一種是利用第三方端口掃描軟件。
1.用“netstat -an”查看端口狀態(tài)
在Windows 2000/XP中,可以在命令提示符下使用“netstat -an”查看系統(tǒng)端口狀態(tài),可以列出系統(tǒng)正在開放的端口號及其狀態(tài),如圖2所示。
圖5是瑞星個人防火墻的端口管理界面。如果你想關(guān)閉本機的TCP或UDP端口,在“操作”項中選擇“禁止”,在“方向”中選擇“雙向”(如果只想禁止接收功能,則選擇“接收”;只想禁止發(fā)送,則選擇“發(fā)送”),在“協(xié)議”中選擇“TCP”或“UDP”。
選擇上述參數(shù)后,在“目的端口設(shè)置”中進行設(shè)置:如果只想關(guān)閉一個端口,就選擇“一個端口”,然后在列表中輸入端口號;如果想關(guān)閉一定范圍內(nèi)的連續(xù)端口,就在“起始端口號”輸入起始端口,在“終止端口號”中輸入終止端口;如果想關(guān)閉不連續(xù)的多個端口,就選擇“端口列表”;而選擇“任何端口”就是禁止所有端口。
千萬注意:如果不理解參數(shù)的意思,切勿自行修改!否則可能會在系統(tǒng)中增加漏洞,或者導致系統(tǒng)無法進行正常通信。