windows的139埠和445埠的區別

alone_map發表於2016-07-07
session 1 139和445埠的使用背景
SMB(Server Message Block)協議在NT/2000中用來作檔案共享,在Win-NT中,SMB執行於NBT(NetBIOS over TCP/IP)上,使用137,139(UDP),139(TCP)埠。 

在win2000級以上版本中,SMB可以直接執行在tcp/ip上,而沒有額外的NBT層,使用TCP 445埠。

session 2 兩個埠的使用情況
可以在“網路連線/屬性/TCPIP協議/屬性/高階/WINS中設定啟用或者禁用NBT(NetBIOS over TCP/IP)。 
當計算機同時支援NTB和TCP/IP兩種協議的時候,就面臨著選擇139或者445埠了。下面的情況確定會話使用的埠: 
1、如果客戶端啟用了NBT,那麼連線的時候將同時訪問139和445埠,如果從445埠得到回應,那麼客戶端將傳送RST到139埠,終止這個埠的連線,接著就從445埠進行SMB的會話了;如果沒有從445埠而是從139得到回應,那麼就從139埠進行會話;如果沒有得到任何回應,那麼SMB會話失敗。 

2、如果客戶端禁用了NBT,他就將只從445埠進行連線。

3、如果伺服器端啟用NBT,那麼就同時監聽UDP 137、138埠和TCP139,445埠。如果禁用NBT,那麼就只監聽445埠了。 

總結一下:139埠是在NBT協議基礎上的,關閉NBT協議139就廢了。而445埠是在TCP/IP協議基礎上,現在網路中應該很少有不使用TCP/IP協議的了。最後如果主機兩種協議同時支援的話(比如windowsxp以後的作業系統)那麼共享訪問時候的埠使用優先順序為:445>139,所以現在UNC路徑訪問ip地址都是使用445埠,而訪問主機名形式是使用139埠(現在基本不用了)。
關閉139埠的方法:“網路連線/屬性/TCPIP協議/屬性/高階/WINS中設定啟用或者禁用NBT(NetBIOS over TCP/IP)

關閉445埠的方法:防火牆阻塞445埠或者禁用server服務都可以。


相關文章