端口号

端口号

區分服務器端應用程序的定義
在網絡技術中,端口(Port)大緻有兩種意思:一是物理意義上的端口,比如,ADSL Modem、集線器、交換機、路由器用于連接其他網絡設備的接口,如RJ-45端口、SC端口等等。二是邏輯意義上的端口,一般是指TCP/IP協議中的端口,端口号的範圍從0到65535,比如用于浏覽網頁服務的80端口,用于FTP服務的21端口等等。我們這裡将要介紹的就是邏輯意義上的端口。
    中文名:端口号 外文名:port number 所屬學科: 發布屬性:網絡技術軟件 端口分類:知名端口 動态端口 保留端

概念

在網絡技術中,端口(Port)大緻有兩種意思:一是物理意義上的端口,比如,ADSL Modem、集線器、交換機、路由器用于連接其他網絡設備的接口,如RJ-45端口、SC端口等等。二是邏輯意義上的端口,一般是指TCP/IP協議中的端口,端口号的範圍從0到65535,比如用于浏覽網頁服務的80端口,用于FTP服務的21端口等等。我們這裡将要介紹的就是邏輯意義上的端口。

端口号

那麼TCP/IP協議中的端口指的是什麼呢?如果把IP地址比作一間房子,端口就是出入這間房子的門。真正的房子隻有幾個門,但是一個IP地址的端口可以有65536個之多!端口是通過端口号來标記的,端口号隻有整數,範圍是從0到65535。

端口有什麼用呢?我們知道,一台擁有IP地址的主機可以提供許多服務,比如Web服務、FTP服務、SMTP服務等,這些服務完全可以通過1個IP地址來實現。那麼,主機是怎樣區分不同的網絡服務呢?顯然不能隻靠IP地址,因為IP地址與網絡服務的關系是一對多的關系。實際上是通過“IP地址+端口号”來區分不同的服務的。

服務器一般都是通過知名端口号來識别的。例如,對于每個TCP/IP實現來說,FTP服務器的TCP端口号都是21,每個Telnet服務器的TCP端口号都是23,每個TFTP(簡單文件傳送協議)服務器的UDP端口号都是69。任何TCP/IP實現所提供的服務都用知名的1~1023之間的端口号。這些知名端口号由Internet号分配機構(InternetAssignedNumbersAuthority,IANA)來管理

到1992年為止,知名端口号介于1~255之間。256~1023之間的端口号通常都是由Unix系統占用,以提供一些特定的Unix服務—也就是說,提供一些隻有Unix系統才有的、而其他操作系統可能不提供的服務。現在IANA管理1~1023之間所有的端口号。

Internet擴展服務與Unix特定服務之間的一個差别就是Telnet和Rlogin。它們二者都允許通過計算機網絡登錄到其他主機上。Telnet是采用端口号為23的TCP/IP标準且幾乎可以在所有操作系統上進行實現。相反,Rlogin最開始時隻是為Unix系統設計的(盡管許多非Unix系統現在也提供該服務),因此在80年代初,它的有名端口号為513。

客戶端通常對它所使用的端口号并不關心,隻需保證該端口号在本機上是唯一的就可以了。客戶端口号又稱作臨時端口号(即存在時間很短暫)。這是因為它通常隻是在用戶運行該客戶程序時才存在,而服務器則隻要主機開着的,其服務就運行。

大多數TCP/IP實現給臨時端口分配1024~5000之間的端口号。大于5000的端口号是為其他服務器預留的(Internet上并不常用的服務)。我們可以在後面看見許多這樣的給臨時端口分

配端口号的例子。

Solaris2.2是一個很有名的例外。通常TCP和UDP的缺省臨時端口号從32768開始。

使用規定

TCP與UDP段結構中端口地址都是16比特,可以有在0---65535範圍内的端口号。對于這65536個端口号有以下的使用規定: 

(1)端口号小于256的定義為常用端口,服務器一般都是通過常用端口号來識别的。任何TCP/IP實現所提供的服務都用1---1023之間的端口号,是由IANA來管理的;

(2)客戶端隻需保證該端口号在本機上是惟一的就可以了。客戶端口号因存在時間很短暫又稱臨時端口号;

(3)大多數TCP/IP實現給臨時端口号分配1024---5000之間的端口号。大于5000的端口号是為其他服務器預留的。

端口分類

邏輯意義上的端口有多種分類标準,下面将介紹常見的按端口号分布的分類:

(1)知名端口(Well-Known Ports)

知名端口即衆所周知的端口号,範圍從0到1023,這些端口号一般固定分配給一些服務。比如21端口分配給FTP(文件傳輸協議)服務,25端口分配給SMTP(簡單郵件傳輸協議)服務,80端口分配給HTTP服務,135端口分配給RPC(遠程過程調用)服務等等。

網絡服務是可以使用其他端口号的,如果不是默認的端口号則應該在地址欄上指定端口号,方法是在地址後面加上冒号“:”(半角),再加上端口号。比如使用“8080”作為WWW服務的端口,則需要在地址欄裡輸入“www.cce.com.cn:8080”。

但是有些系統協議使用固定的端口号,它是不能被改變的,比如139端口專門用于NetBIOS與TCP/IP之間的通信,不能手動改變。

(2)動态端口(Dynamic Ports)

動态端口的範圍從1024到65535,這些端口号一般不固定分配給某個服務,也就是說許多服務都可以使用這些端口。隻要運行的程序向系統提出訪問網絡的申請,那麼系統就可以從這些端口号中分配一個供該程序使用。比如1024端口就是分配給第一個向系統發出申請的程序。在關閉程序進程後,就會釋放所占用的端口号。

不過,動态端口也常常被病毒木馬程序所利用,如冰河默認連接端口是7626、WAY2.4是8011、Netspy3.0是7306、YAI病毒是1024等。

(3)保留端口号

Unix系統有保留端口号的概念。隻有具有超級用戶特權的進程才允許給它自己分配一個保留端口号。

這些端口号介于1~1023之間,一些應用程序(如有名的Rlogin,26.2節)将它作為客戶與服務器之間身份認證的一部分。

知名端口号

TCP 1=TCP Port Service Multiplexer

TCP 2=Death

TCP 5=Remote Job Entry,yoyo

TCP 7=Echo

TCP 11=Skun

TCP 12=Bomber

TCP 16=Skun

TCP 17=Skun

TCP 18=消息傳輸協議,skun

TCP 19=Skun

TCP 20=FTP Data,Amanda

TCP 21=文件傳輸,Back Construction,Blade Runner,Doly Trojan,Fore,FTP trojan,Invisible FTP,Larva, WebEx,WinCrash

TCP 22=遠程登錄協議

TCP 23=遠程登錄(Telnet),Tiny Telnet Server (= TTS)

TCP 25=電子郵件(SMTP),Ajan,Antigen,Email Password Sender,Happy 99,Kuang2,Promail trojan,Shtrilitz,Stealth,Tapiras,Terminator,WinPC,WinSpy,Haebu Coceda

TCP 27=Assasin

TCP 28=Amanda

TCP 29=MSG ICP

TCP 30=Agent 40421

TCP 31=Agent 31,Hackers Paradise,Masters Paradise,Agent 40421

TCP 37=Time,ADM worm

TCP 39=SubSARI

TCP 41=DeepThroat,foreplay

TCP 42=Host Name Server

TCP 43=WHOIS

TCP 44=Arctic

TCP 48=drat

TCP 49=主機登錄協議

UDP 1=Sockets des Troie

UDP 9=CHARGEN

UDP 19=Chargen

UDP 69=Pasana

UDP 80=Penrox

UDP 371=ClearCase版本管理軟件

UDP 445=公共Internet文件系統(CIFS)

UDP 500=Internet密鑰交換

UDP 1025=Maverick's Matrix 1.2 - 2.0

UDP 1026=Remote Explorer 2000

UDP 1027=HP服務,UC聊天軟件,Trojan.Huigezi.e

UDP 1028=應用層網關服務,KiLo,SubSARI

如何查看

一台服務器有大量的端口在使用,怎麼來查看端口呢?有兩種方式:種是利用系統内置的命令,一種是利用第三方端口掃描軟件。

1.用“netstat-an”查看端口狀态

在Windows000/XP中,可以在命令提示符下使用“netstat-an”查看系統端口狀态,可以列出系統正在開放的端口号及其狀态.

2.用第三方端口掃描軟件

第三方端口掃描軟件有許多,界面雖然千差萬别,但是功能卻是類似。這裡以“fport”為例講解。“Fport”在命令提示符下使用,運行結果與“netstat-an”相似,但是它不僅能夠列出正在使用的端口号及類型,還可以列出端口被哪個應用程序使用。

3.用“netstat-n”命令,以數字格式顯示地址和端口信息。

原因

如果仔細檢查這些标準的簡單服務以及其他标準的TCP/IP服務(如Telnet、FTP、SMTP等)的端口号時,我們發現它們都是奇數。這是有曆史原因的,因為這些端口号都是從NCP端口号派生出來的(NCP,即網絡控制協議,是ARPANET的運輸層協議,是TCP的前身)。NCP是半雙工的,不是全雙工的,因此每個應用程序需要兩個連接,需預留一對奇數和偶數端口号。當TCP和UDP成為标準的運輸層協議時,每個應用程序隻需要一個端口号,因此就使用了NCP中的奇數。

相關詞條

相關搜索

其它詞條